Java的两大类数据类型 :
基本数据类型(值类型)和包装类型(引用数据类型)
基本类型的每种类型的取值范围、默认值、包装类、高频区间数据缓存范围:
1. 整型:
byte:-2^7 ~ 2^7-1,即-128 ~ 127。1字节。
默认值:0 ;包装类:Byte ;高频区间:-128~127
short:-2^15 ~ 2^15-1,即-32768 ~ 32767。2字节。
默认值:0;包装类:Shor;高频区间:-128~127
int:-2^31 ~ 2^31-1,即-2147483648 ~ 2147483647。4字节。
默认值:0;包装类:Integer;高频区间:-128~127
long:-2^63 ~ 2^63-1,即-9223372036854774808 ~ 9223372036854774807。8字节。
默认值:0;包装类:Long;高频区间:-128~127
2. 浮点型:
float:4字节。
默认值:0;包装类:Float;无缓存
double:8字节。
默认值:0;包装类:Double;无缓存
3. 字符型:
char:2字节。
默认值:0;包装类:Character;高频区间:0~127
4. 布尔型:
boolean:取值为true/false
默认值:false;包装类:Boolean
注:Integer的高频区域为:-128~127即当在该区间建立的对象,只有第一次建立时是新的对象,其余均是该对象,没有新建。其它的数据类型也如此。
例:Integer i = 127;Integer l = 127;
System.out.println(i == l);输出结果就是true;
Integer i = 128;Integer l = 128;
System.out.println(i == l);输出结果就是false
Java在什么情况会发生整型溢出及其解决方案:
当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。想避免这种情况的发生,在程序中就必须加上数值范围的检查功能,或者使用较大的表示范围的数据类型,如长整型。
自动装箱、自动拆箱:
自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。例如:Integer i=10;即自动装箱,int j=i;即自动拆箱。
int与Integer的区别以及它们之间的相互转化:
区别:int是java的原始数据类型,Integer是int的封装类
转化:
int转换成integer
int x=1;
integer y=new integer(x);
或者inreger y=integer.valueOf(x);
integer转换成int
integer x=new integer(5);
int y=x.intValue();
逻辑运算符&和&&的区别、逻辑运算符&与位运算符&的区别:
&运算符就是只有计算完左右两边均为false,才结束是false,两边均是true才是true;
&&运算符有短路特性,当左边是false结束就是false,两边均是true才是true;
|运算符也只有计算完左右两边均是true,才结束是true,两边均是false才是false;
||运算符也有短路特性,当左边是true结束就是true,两边均是false才是false;
逻辑运算符& 和 |只能对布尔型(Boolean)数据进行运算。
而位运算符& 和 |既可以对布尔型(Boolean)数据运算,也可与对数值型数据运算。位运算符是先将数据转化为二进制补码形式,再逐位运算。
Java语言中可以采用什么语句跳出多重循环:
Java语言提供了4种转移语句:break,continue,return和throw。
break语句通常有下述不带标号和带标号的两种形式:
其中:break是关键字;lab是用户定义的标号。
break lab语句用在循环语句中,必须在外循环入口语句的前方写上lab标号,可以使程序流程退出标号所指明的外循环。
for(int j=0; j<10; j++) {
if (j >1) {
break lab;
}
System.out.println(“break");
}
}
输出结果:
break
break
for(int j=0; j<10; j++) {
if (j >1) {
continue lab;
}
System.out.println(“continue”);
}
System.out.println("************");
}
输出结果:
continue
continue
continue
continue