我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。
扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。
推荐文章:Java 面试知识点解析;Mysql优化技巧(数据库设计、命名规范、索引优化
1.权限修饰符 public ,protected ,默认, private 的区别是?
当前类 相同包下 子类 项目中其他包下
public √ √ √ √
protected √ √ √ ×
默认 √ √ × ×
private √ × × ×
2.java中的基本数据类型有哪些? String 属于基本类型吗?
答:java中基本类型有8种 , byte short,int ,long ,float , double ,char ,boolean ,String 属于引用类型,不属于基本类型
整数类型: byte, short ,int ,log
byte (1字节,8位 取值范围:-128 ~ 127) ,short(2字节,16 位,很少用) ,int(4字节,32位最常用) ,long(8字节,64位)
数值类型
小数类型: float(4字节 32位) , double (8字节,64位)
字符类型 : char 占2个字节,16位 ; 单引号引起的字符,可以为中文
布尔类型 : boolean 值为true 或者 false
java中默认的整数类型是 int , 默认的小数类型是double
类型的自动提升:
例如:
double d = 1L;//类型小转大,可以自动提升 long l = 1.0; //类型大转小,只能强转
3. int 与 Integer 的区别是什么?
答:1、Integer是int的包装类,int则是java的一种基本数据类型
2、Integer变量必须实例化后才能使用,而int变量不需要
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
4、Integer的默认值是null,int的默认值是0
拓展: int 与 Integer 的比较 , Integer 与 Integer 的比较
//情形1 Integer 与 int类型比较 Integer i = 1; int j = 1; System.out.println(i == j); //情形2 Integer 与 Integer 比较(不通过new 的形式) Integer i1 = 100; Integer i2 = 100; System.out.println(i1 == i2); //情形3 Integer 与 Integer 比较(不通过new 的形式) Integer i3 = 128; Integer i4 = 128; System.out.println(i3 == i4); //情形4 Integer 与 Integer 通过new Integer i5 = new Integer(110); Integer i6 = 110; System.out.println(i5 == i6); //情形5 Integer 与 Integer 通过new Integer i7 = new Integer(120); Integer i8 = new Integer(120); System.out.println(i7 == i8);
最终执行结果:
true true false false false
分析:
//写在前面 ,对于 == ,int 类型之间的比较,比较的是值, Integer对象之间比较的是内存地址 /* 情形一: Integer 与 int 的比较 , 会将Integer 拆箱成 int 类型的值再做比较,所以最终是两个int类型的比较. 而两个int类型比较的是字面值,所以结果为true */ /* 情形二: Integer i1 = 100;这句最终执行的代码是 Integer i1 = Integer.valueOf(100); 此时查看