陈述题
1.Java包含哪两大类数据类型?其中基本类型的每种类型的取值范围和默认值分别是多少?请编程验
证。
- 数据类型可划分为基本数据类型和引用数据类型
- 基本数据类型的取值范围和默认值
2.Java在什么情况会发生整型溢出?请举例说明,并给出解决方案。- int型数据的最大值+1时会发生整型溢出
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基本类型的包装类分别是哪些?其高频区间数据缓存范围分别是什么?请选择一种包装类型编程验证其数据缓存特性。
- Java的基础数据类型的包装类:Integer,Long,Double,Float,Boolean,Byte,Short,Character
- 其中Double和Float没有缓存,其他类型都有高频缓存区间。其高频缓存区间的缓存范围是:
Boolean:使用静态final,就会返回静态值
Byte:-128~127
Short:-128~127
Character:0~127
Long:-128~127
Integer:-128~127
如果所使用的包装类的值在这个缓存区间内,就会直接复用已有对象,在缓存区间之外的数值会重新在堆上产生。所以在判断是否相等时不要用“==”,用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");
}
}