飞道的博客

Java面试题大全(2020年整理)

337人阅读  评论(0)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~

本套Java面试题大全基于JDK 1.8整理,全的不能再全,哈哈~

1、Java中有几种基本数据类型?所占用的字节分别为多少?
8种字节呈对称:1248 4821 一个字节占8个比特位
byte(1)、short(2)、int(4)、long(8)
float(4)、double(8)()、char(2)、boolean(1)

2、String、StringBuffer、StringBuilder的区别?
1、String是字符串常量,StringBuilder、StringBuffer是字符串变量;
2、String进行+=字符串拼接会新增一个对象,其他两个都是调用内部的append方法进行追加;
3、StringBuilder线程不安全效率比较高,StringBuffer线程安全效率低,不推荐使用;
使用场景:没循环情况下用String的加号拼接,有循环情况下使用StringBuilder,任何场景都不推荐使用StringBuffer。

3、==和equals方法有什么区别?
==比较两个变量时比较其在内存中的内容是否相等;
==两边为基本类型时比较值,引用类型时比较首地址,一般都是false,除非null时为true;
equals两边为基本类型时也是比较值,一般不用,引用类型时比较首地址;
但有些类中重写了equals方法,自定义了比较方式;
如八个基本数据类型的封装类、String、File、Date,重写后比较的是内容是否相等;

4、Java项目中为什么要用常量,而不直接写常量值呢?
1、方便其他人理解;
2、方便修改,比如你有100个地方用这个常量,只改一处就可以;
3、方便复读代码,几个月过后可能你想不起来这个常数是什么含义了;

5、Object类是所有类的父类,说说他的几个常用方法,并且介绍一下。
Object类中常用的三个方法:toString() , equals() 和 hashCode()
1、toString():在输出引用数据类型时,如果实体类中没有重写toString()方法时,此时输出的是地址,重写后输出该对象中的数据。
2、equals():重写equals()一定要重写hashCode(),equals()比较的是两个对象,或者两个对象的内容,hashCode() 是对象的内部地址,是一个整数。
3、hashCode():用于加速查找,实现索引查找,如果对象不重写hashCode()方法,默认的hashCode()方法是根据对象的地址求出来的。

参考:
Java面试题大全(2020版)


转载:https://blog.csdn.net/yang_guang3/article/details/104550437
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场