java面试_基本数据类型

1. == 和equals
==比较的是地址,基本数据类型因为储存在栈中,所以相同值比较出来的结果为true,引用类型因为引用在栈中,对象在堆中,所以比较出来的结果为false。对引用类型来说,==比较的是两个引用是否指向同一对象。
Equals比较的是两个引用数据的内容,equals方法是可以重写的。而基本数据类型不存在equals这个说法。


2.基本数据类型
Java基本数据类型包括
byte 、char、short、int、long、double、float、boolean 
3.基本数据类型的封装类型
每个 基本数据类型都会有对应的封装类,java提供了数据类型的自动拆箱和自动装箱
拆箱:将封装类型转换为基本类型
装箱:基本类型转换成封装类型
4.自动拆箱,自动装箱
拆箱:将封装类型转换为基本类型
装箱:基本类型转换成封装类型
new Integer(2).equals(2)过程:先将2自动装箱成为封装类型,然后比较值

5.几种方法
  Valueof,返回的是Integer类型,128—127直接返回引用,否则返回新的对象
  Intvalue 返回的是int类型 
  parseInt 返回的是int类型
6.几种常见的比较
1. Integer.valueOf(129) == Integer.valueOf(129) false 129 返回的是新的对象
2. new Integer(23).equals(23) true  存在自动装箱
3.Integer.valueOf(127) == Integer.valueOf(127) true 129 返回的是同一个对象的引用

7.传值和传引用
1.基本数据类型传的是值,所以传过去的值改变不影响原来的变量
2.引用数据类型传的是地址,所以传过去的值改变直接改变原来的变量(指针改变)
3.String比较特殊,传递的是值
8.String
String a = “a” + “b” 实例化了三个string对象,因为String是不可变的 final类型的
String a = “a”
String b = “a” 则a == b为true 因为出现过的string会放在常量池中,他们指向常量池的同一个地址

String a = new String(“a”);
String b = new String(“b”);
则a == b为false 因为这是两个对象
9.强制类型转换
基本数据类型从小到大排序为:
Boolean, byte,char,short,int,long,float,double
Java中有隐式数据转换,即占用空间少的可以往大的上边转换
强制类型转换:需要手动转换,不转换就报错,会损失精度

Short没有加减法,因为加减法是int的,需要强制转换为short。

默认浮点类型为double,所以double类型可以不加d,而float类型必须加f

默认整数类型为int,long类型可以不加l,那是强制转换为int类型,当超过int 的取值范围,则必须加l。

你可能感兴趣的:(面经,java)