"Write Once , Run Anywhere"。我相信每位Java人对这句话都不陌生,“一次编写,到处运行”,很多小伙伴都想通过面试顺利入职企业。面都金三银四的招聘旺季很多小伙伴都在网上到处刷题,那么到底有哪些题是Java面试中必问的问题了,知了堂Java教学团队的项目经理们,通过学员面试反馈、企业收集整理等多途径整合了以下部分Java面试的经典题目。
1.JDK和JRE的区别是什么?
Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。
2、Java中如何实现序列化,有什么意义?
**序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。**可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决对象流读写操作时可能引发的问题(如果不进行序列化可能会存在数据乱序的问题)。
要实现序列化,需要让一个类实现Serializable接口,该接口是一个标识性接口,标注该类对象是可被序列化的,然后使用一个输出流来构造一个对象输出流并通过writeObject(Object)方法就可以将实现对象写出(即保存其状态);如果需要反序列化则可以用一个输入流建立对象输入流,然后通过readObject方法从流中读取对象。序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆。
3. HashMap和HashTable的区别
HashTable是线程安全的HashMap不是HashMap中允许存在null键和null值,HashTable中不允许。
4. HashMap的实现原理
HashMap的底层实现是“基于拉链法的散列表”。
5、String和StringBuilder、StringBuffer的区别?
Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder,它们可以储存和操作字符串。其中String是只读字符串,也就意味着String引用的字符串内容是不能被改变的。而StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改。StringBuilder是Java 5中引入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高。
6、阐述静态变量和实例变量的区别。
静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。
还有很多经典的大面面试题知了堂Java教学团队的老师们也进行了整理:
大厂面试题之JVM内存管理:
JVM是如何进行内存区域划分的?
JVM是如何高校进行内存管理?
为什么需要有元空间。它又涉及什么问题?
大厂面试题之JDK:
我们如何覆盖HashMap类的实现?
如何加装一个远程的class文件?
大厂面试题之分布式:
1、Twemproxy的使用
2、Redis基本原理
3、如何处理海量计数器缓存
4、如何处理社交Feed流缓存
自己尝试一下解答吧!若需要帮助可与我们知了堂Java教学团队的老师哦!
同时,为了让大家能够系统全面的学习,做到少走弯路,不走弯路,享受到知了堂丰富的学习资源。经过知了堂管理层开会决定,从2月2日-2月29日,注册知了堂在线学习平台,还可以免费领取价值上千元的就业付费课程,限时扫码领取哟。