本篇文章给大家总结一些值得收藏的2022年精选Java基础高频面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
小伙伴们有兴趣想了解更多相关学习资料请点赞收藏+评论转发+关注我之后私信我,注意回复【000】即可获取更多免费资料!
1、面向对象的三个基本特征?
2、访问修饰符public,private,protected,以及不写时的区别?
3、下面两个代码块能正常编译和执行吗?
4、基础考察,指出下题的输出结果
5、用最有效率的方法计算2乘以8?
6、&和&&的区别?
7、String 是 Java 基本数据类型吗?
8、String 类可以继承吗?
不行。String 类使用 final 修饰,无法被继承。
9、String和StringBuilder、StringBuffer的区别?
String:String 的值被创建后不能修改,任何对 String 的修改都会引发新的 String 对象的生成。
StringBuffer:跟 String 类似,但是值可以被修改,使用 synchronized 来保证线程安全。
StringBuilder:StringBuffer 的非线程安全版本,没有使用 synchronized,具有更高的性能,推荐优先使用。
10、String s = new String("xyz") 创建了几个字符串对象?
一个或两个。如果字符串常量池已经有“xyz”,则是一个;否则,两个。
当字符创常量池没有 “xyz”,此时会创建如下两个对象:
一个是字符串字面量 "xyz" 所对应的、驻留(intern)在一个全局共享的字符串常量池中的实例,此时该实例也是在堆中,字符串常量池只放引用。
另一个是通过 new String() 创建并初始化的,内容与"xyz"相同的实例,也是在堆中。
11、String s = "xyz" 和 String s = new String("xyz") 区别?
两个语句都会先去字符串常量池中检查是否已经存在 “xyz”,如果有则直接使用,如果没有则会在常量池中创建 “xyz” 对象。
另外,String s = new String("xyz