1. Java包含哪些数据类型?请举例说明
数据类型
byte (byte)1
short (short)1
int 1
long 2L
float 1.7f
double 1.7D
boolean true / false
char 'A', 'a'
class String类
interface CharSequence
数组 String[]
2. Java基本数据类型转换包含哪两类?请举例说明
自动类型转换,如在算术运算中,byte和short类型的数据相加自动提升为int类型的数据,另外,整型,实型,字符型数据混合运算时,根据优先级规则转换为同一类型的数据然后运算
强制类型转换,如 int x = 10, int y = (short)x 将int类型的值强制转换成short类型然后赋给变量y
3. 为什么需要包装类?
Java 是号称面向对象的语言,所有的类型都是引用类型。
Object 类是所有类的父类,而且是唯一不用指定明确继承的类。但是基本类型如 int 不是引用类型,也不是继承自 Object,所以 Java 需要一个这样的包装类来使其面向对象的完整性。
4. int与Integer有什么区别,它们之间的相互转化是怎样的?
iInteger是int的包装类;int是基本数据类型;
Integer变量必须实例化后才能使用;int变量不需要;
Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
Integer的默认值是null;int的默认值是0。
相互转化:
int类型数据转化为Integer:
Integer x = new Integer(1);
Integer x = Integer(1);
Integer x = 1;
int类型数据转化为Integer:
Integer x = 11;
int y = x;
int y = x.intValue();
5. 逻辑运算符&和&&的区别是什么?逻辑运算符&与位运算符&的区别是什么?请分别举例说明
逻辑运算符 & 和 &&:
“&”与“&&”都表示逻辑与,两者判断顺序都是从左往右,输出的结果都是Boolean类型,他们的区别在于:
“&”会判断两个表达式,即使左边的等式是false,也仍然会继续判断右边的等式,在判断完两边的等式之后再输出结果。
“&&”相比较则更节省时间,当左边的等式结果是false时,就不对右边等式进行判断而直接输出结果。
例如:
int x = 1;
fasle & ((x += 1) == 2); 运行结束后x为2
int x = 1;
false && ((x+= 1) == 2); 运行结束后x为1
逻辑运算符&与位运算符&:
逻辑运算符&是对左右两边的表达式进行或运算,其左右两边的表达式都是布尔值,运算结果也是布尔值,位运算符&是对两边的值进行按位与操作