1. Java包含哪两大类数据类型?其中基本类型的每种类型的取值范围和默认值分别是多少?请编程验证。
基本数据类型:
| 数据类型 | 大小(bit) | 默认值 | 范围 |
|---|---|---|---|
| byte | 8 | 0 | -128 ~ 127 |
| short | 16 | 0 | -32768 ~ 32767 |
| int | 32 | 0 | -2147483648 ~ 2147483647 |
| long | 64 | 0 | -9233372036854477808 ~ 9233372036854477807 |
| float | 32 | 0.0f | -3.40292347E+38 ~ 3.40292347E+38 |
| double | 64 | 0.0d | -1.79769313486231570E+308 ~ 1.79769313486231570E+308 |
| char | 16 | ‘u0000’ | ‘u0000’ ~ 'uffff ’ |
| boolean | 1 | false | true / false |
引用数据类型:类(class),接口(interface),数组(array)
2. Java在什么情况会发生整型溢出?请举例说明,并给出解决方案。
(int) 2147483647= (binary)011111111111111;
加1之后:1000000000000000 -> (int) -2147483648
解决方案:将数据转换到更大范围的类型比如long,或者高精度算法。
3. Java基本类型的包装类分别是哪些?其高频区间数据缓存范围分别是什么?请选择一种包装类型编程验证其数据缓存特性。
其中Double和Float没有缓存
Boolean:使用静态final,就会返回静态值
Byte:-128~127
Short:-128~127
Character:0~127
Long:-128~127
Integer:-128~127
Integer a = 100 ;//自动装箱 Integer b = Integer.valueOf(100); System.out.println(a==b);--------true Integer a = 1000 ; Integer b = Integer.valueOf(1000); System.out.println(a==b);--------false
4. 什么是自动装箱,什么是自动拆箱,请举例说明。
装箱:基本类型转变为包装器类型。
拆箱:包装器类型转变为基本类型。
更详细内容见:http://www.cnblogs.com/dolphin0520/
5. int与Integer有什么区别,它们之间的相互转化是怎样的?
int 属于普通数据类型,Integer是 int 所对应的包装类
①int转Integer
int a = 5;
Integer A = new Integer(a);或
Integer A = Integer.valueOf(a);
②Integer转int
Integer A = new Integer(5);
int a = A.intValue();
6. 逻辑运算符&和&&的区别是什么?逻辑运算符&与位运算符&的区别是什么?请分别举例说明
“&”和“|”在执行操作时,运算符左右两边的表达式首先被运算执行,再对两表达式的结果进行与、或运算。
而利用“&&”和“||”执行操作时,如果从左边的表达式中得到操作数能确定运算结果,则不再对右边的表达式进行运算。采用“&&”和“||”具有“短路”效应,目的是为了加快运算速度。
逻辑运算符和位运算符的&不能说没有关系,只能说毫不相关
7. Java语言中可以采用什么语句跳出多重循环?请举例说明
java中的break,continue语句除了类似c中的用法以外还有新的操作(?)
break < lab > :跳出多重循环的外层循环
continue < lab > : 继续多重循环的外层循环
lab: //这里的lab可以换成任意标志
for (int i=1;i<=4;i++){
for(int j=1;j<=2;j++){
System.out.println(“inner");
break lab;
}
System.out.println(“break out");
}
out: inner 跳出了循环1
lab: //这里的lab可以换成任意标志
for (int i=1;i<=4;i++){
for(int j=1;j<=2;j++){
System.out.println(“inner");
continue lab;
}
System.out.println(“break out");
}
out: 执行完输出后继续最外层循环
inner
inner
inner
inner
函数里还能直接return掉,也是一种方法捏 : D



