我在一些matrials中看到了这句话:
"在Java中,简单的数据类型(如int和char)就像在C中一样运行."
我想知道它们在Java和C++中实际上是不同的吗?
在C++中,像Java中的原语这样的简单变量也被赋予了一个内存地址,因此C++中的这些原始类型也可以有一个指针.但是Java中的原语并没有分配像Objects这样的内存地址.
我对么?
谢谢!
分配值而不使用通常的表示法,例如"this.<Double> getAnything(int flag)"
private <T> T getAnything(int flag) {
Object o = null;
if (flag==0)
o=new String("NewString");
else if (flag==1)
o=new Double(0D);
return (T)o;
}
private void someMethod() {
String s = getAnything(0);
Double d = getAnything(1);
}
Run Code Online (Sandbox Code Playgroud)
在过去,只有方法上的返回对象和接收类型上的简单强制转换就足够了,因此在接收器对象上缺少通用符号,它更加相似和快速写入,还有其他任何提示吗?
有人可能解释为什么以下:
Integer[] arr1 = {1,2,3,4,5};
Collection<?> numbers = Arrays.asList(new Integer[]{1,2,3});
System.out.println(Arrays.asList(arr1).containsAll(numbers));
Run Code Online (Sandbox Code Playgroud)
打印"true",而如果我们像这样交换Integer:
int[] arr2 = {1,2,3,4,5};
Collection<?> numbers2 = Arrays.asList(new int[]{1,2,3});
System.out.println(Arrays.asList(arr2).containsAll(numbers2));
Run Code Online (Sandbox Code Playgroud)
打印"假"?
这是正确的(Integer) 1 == (Integer) 1,这似乎是合法的.
那么为什么它要进行(Integer) 222平等游览 呢?
该程序将使用for循环计算4个考试的平均成绩,方法是一次一个地提示用户输入考试成绩,然后计算平均值并显示结果.
public class ExamsFor4 {
public static void main(String[] arguments) {
int inputNumber; // One of the exams input by the user.
int sum = 0; // The sum of the exams.
int i; // Number of exams.
Double Avg; // The average of the exams.
TextIO.put("Please enter the first exam: "); // get the first exam.
inputNumber = TextIO.getlnInt();
for ( i = 1; i <= 4; i++ ) {
sum += inputNumber; // Add inputNumber to running sum. …Run Code Online (Sandbox Code Playgroud) 这是将已定义的int设置为null的最佳方法?
private int xy(){
int x = 5;
x = null; //-this is ERROR
return x;
}
Run Code Online (Sandbox Code Playgroud)
所以我选择这个
private int xy(){
Integer x = 5;
x = null; //-this is OK
return (int)x;
}
Run Code Online (Sandbox Code Playgroud)
然后我需要这样的东西:
if(xy() == null){
// do something
}
Run Code Online (Sandbox Code Playgroud)
我的第二个问题是否可以安全地将Integer转换为int?
谢谢你的回复.