1、Java包含哪些数据类型?请举例说明
基本数据类型:
- 整数类型:byte, short, int, long;
- 浮点类型:float, double;
- 字符类型:char;
- 布尔类型:boolean;
复合数据类型:
- class(类);
- interface(接口);
- 数组。
2、Java基本数据类型转换包含哪两类?请举例说明
- 自动数据类型转换:整型、浮点、字符型数据混合运算时不同数据类型先从低级到高级转换为同一数据类型再进行运算
操作数1类型 | 操作数2类型 | 转换后数据类型 |
---|---|---|
byte, short, char | int | int |
byte, short, char, int | long | long |
byte, short, char, int, long | float | float |
byte, short, char, int, long, float | double | double |
Eg:
Type methodA(byte x, double y){
return (short) x / y * 2;
}
- 强制数据类型转换:高级数据转换成低级数据时需要使用强制类型转换
Eg:
int j;
byte m = (byte) j; /*把int型变量j强制转换为byte型*/
3、为什么要包装类?
- 基本数据类型不是对象,在一些场合不能直接使用,需要转化为对应的包装类对象才能继续使用;
- 包装类的一些静态方法可实现不同数据类型的转化,如将字符串类型的数字“123”专为整数类型,可以通过
int a = Interger.parseInt("123")
完成,而将整数转化为字符串使用,则要通过String c = String.valueOf(123)
来完成; - 包装类的静态属性中含有相应的数据类型的范围,如Integer.MIN_VALUE(int的最小值), Integer.MAX_VALUE(int的最大值), Double.NaN(非数类型), Double.NEGATIVE_INFINITY(负无穷), Double.POSITIVE_INFINITY(正无穷)。
4、int与Integer有什么区别,它们之间的相互转化是怎样的?
int属于基本数据类型,Integer是int所对应的包装类
转换方式如下:
Integer vari = new Integer(5)/*其中vari可通过调用intValue()方法得到一个int类型的值*/
5、逻辑运算符&和&&的区别是什么?逻辑运算符&与位与运算符&的区别什么?请分别举例说明
- &是与运算,x&y中x、y都为true时,结果为true,在执行操作时,运算符左右两边的表达式首先被执行,在对结果进行与运算;
Eg:
class TestLogicSymbole{
public static void main(String[] args){
int out = 10;
boolean b1 = false;
if((b1 == true) & (out += 10) == 20){
System.out.println("相等,out=" + out);
}
else{
System.out.println("不等,out=" + out);
}
}
}/*输出out结果为20*/
- &&是条件与运算,x&&y中x、y都为true时,结果为true,在执行操作时,如果左边的表达式中得到操作数能确定运算结果,则不再对右边的表达式进行运算。
Eg:
class TestLogicSymbole{
public static void main(String[] args){
int out = 10;
boolean b1 = false;
if((b1 == true) && (out += 10) == 20){
System.out.println("相等,out=" + out);
}
else{
System.out.println("不等,out=" + out);
}
}
}/*输出out结果为10*/
6、Java语言中可以采用什么语句跳出多重循环?请举例说明
方法:使用break lab
private static void outloopByBreakLab(){
flag:for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
System.out.println("j == " + j);
if(j == 2) break flag;
}
System.out.println("i == " + i);
}
System.out.println("已跳出循环!!!")
}
/*
输出结果:
j == 0
j == 1
j == 2
已跳出循环!!!
*/