1.Java包含哪两大类数据类型?其中基本类型的每种类型的取值范围和默认值分别是多少?请编程验
证。
public class TestJava3_4 { public static void main(String args[]) { int x = Java.lang.Integer.MAX_VALUE ; // 得到整型的最大值 int y=2147483647 ;//int类型的最大值 System.out.println("x = "+x); System.out.println("x+1 = "+(x+1)); System.out.println("x+2 = "+(x+2)); } } 输出结果 x = 2147483647 x+1 = -2147483648 x+2 = -2147483647
解决方案:改为取值范围更大的数据类型,如long
3.Java基本类型的包装类分别是哪些?其高频区间数据缓存范围分别是什么?请选择一种包装类型编程验证其数据缓存特性。
如果所使用的包装类的值在这个缓存区间内,就会直接复用已有对象,在缓存区间之外的数值会重新在堆上产生。所以在判断是否相等时不要用“==”,用equals
Integer i1 = 127; Integer i2 = 127; i1 == i2 ->true Integer i3 = 128; Integer i4 = 128; i3 == i4 ->false
4.什么是自动装箱,什么是自动拆箱,请举例说明。
装箱: 将基本类型用它们对应的引用类型包装起来
拆箱: 将包装类型转换为基本数据类型
Integer i = 10; //装箱 int t = i; //拆箱,实际上执行了 int t = i.intValue();
5.int与Integer有什么区别,它们之间的相互转化是怎样的?请通过JDK文档自主学习Integer类,对主要方法进行测试。
Integer是int的包装类;int是基本数据类型;
Integer变量必须实例化后才能使用;int变量不需要;
Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
Integer的默认值是null;int的默认值是0
6.逻辑运算符&和&&的区别是什么?逻辑运算符&与位运算符&的区别是什么?请分别举例说明
&和&&的区别
&既是逻辑运算符也是位运算符;&&只是逻辑运算符
&不具有短路效果,即左边false,右边还会执行;&&具有短路效果,左边为false,右边则不执行
逻辑运算符&与位运算符&的区别
逻辑运算符&
参与运算的都是布尔值
位运算符&
x&y,x,y按位进行与操作
7.Java语言中可以采用什么语句跳出多重循环?请举例说明
break;(跳出本层循环)
break lab; (跳出多重循环的外层循环)
lab: for(int i =0; i<2; i++) { for(int j=0; j<10; j++) { if (j >1) { break lab; } System.out.println(“break"); } }