java基础--数据类型(笔面试题)

tech2022-08-07  147

一、四类八种基本数据类型

布尔型:boolean 字符型:char 整数型:byte short int long 浮点数型:float double

二、装箱和拆箱

装箱就是自动将基本数据类型转换为包装器类型;

int a = 3; Integer b = a;//自动装箱 Integer b=Integer.valueOf ( a )

拆箱就是 自动将包装器类型转换为基本数据类型。

Integer b = new Integer(3); int a = b;//自动拆箱 int a=b.intValue()

八大数据类型对象的包装类:

Btye ,Short, Integer, Long, Float, Double, Character, Boolean

三、String类型转Int型能不能转? 怎么转?

可以转,Integer.parseInt(s) 但要处理异常 NumberFormatException(数字格式异常) (1)s不是数字 (2)s为空 (3)s超出int型的长度

四、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 +=1;有什么错?

1) 对于short s1=1;s1=s1+1来说,在s1+1运算时会自动提升表达式的类型为int,那么将int赋予给short类型的变量s1会出现类型转换错误。 2) 对于short s1=1;s1+=1来说 +=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

五、Integer和Int 的区别

1)int是基本数据类型,Integer是int的包装类 2) int的默认值是0,Integer的默认值是null 3)Integer必须实例化才可以使用,int不需要 4)Integer实际是对象的引用,new Integer时是生成指针指向该内存地址,int是直接存储数据

Integer i = new Integer(100); Integer j = new Integer(100); System.out.print(i == j); //false 内存地址不同 Integer i = new Integer(100); int j = 100; System.out.print(i == j); //true 自动拆箱 Integer i = new Integer(100); // 指向堆地址中的对象 Integer j = 100; // 指向常量池中的对象 System.out.print(i == j); //false Integer i = 100; Integer j = 100; System.out.print(i == j); //true // java对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了 Integer i = 128; Integer j = 128; System.out.print(i == j); //false 128超出了范围
最新回复(0)