在大公司的面试里,最爱考的就是基础和底层的知识,可谓必考题,也是很多人薄弱的地方。在小公司的面试里,也有不少考基础的。整理一下基础知识和底层原理相关的高频面试题。为了方便自我检测,答案隐藏起来了,需要看答案的自行向右拖动滚动条查看。
目录:
Java篇
Java的基本数据类型和对应的占用空间 参考答案:www.runoob.com/java/java-b…
面向对象的三大特征?
封装、继承、多态。
什么是多态?
接口的多种不同实现方式就是多态。比如同一个接口,使用不同的实例,执行不同的操作。 (这个很重要,一定要理解,有点抽象,不理解的请自行百度。)
局部内部类可以修改局部变量吗?
不能。原因:因为局部内部类要访问局部变量,局部变量必须被声明为final,所以局部内部类无法修改局部变量。JDK1.8后,在局部内部类访问局部变量即使变量没有被声明为final也是自动认为该变量是final,所以局部内部类只能访问而无法修改局部变量。注意!!!成员内部类是可以修改局部变量的。
反射和clone创建对象会调用构造函数吗?
反射会,clone不会。
JAVA创建对象的方式有几种?分别是什么?
四种。分别是:
1.用new关键字创建
2.调用对象的clone方法
3.利用反射,调用Class类的或者是Constructor类的newInstance()方法
4.用反序列化,调用ObjectInputStream类的readObject()方法
多线程篇
Synchronized和Lock的区别
参考答案: https://blog.csdn.net/ldkjsdty/article/details/114333345
volatile和synchronized的区别
参考答案: https://blog.csdn.net/suifeng3051/article/details/52611233
JVM启动的是多线程吗?
JVM启动至少启动了垃圾回收线程和主线程,所以是多线程的。
如何让主线程等待所有子线程执行完了再执行?
方法:1.使用Thread的join()方法,在调用Thread的start()方法后调用Thread的jion()方法。Thread的join()方法的作用是让父线程等待子线程结束之后才能继续执行。
2.使用工具类CountDownLatch。
3.使用工具类CyclicBarrier。
4.使用线程池。
参考:https://blog.csdn.net/m0_37125796/article/details/81105099
Java进程间通信的方式有哪些
参考答案: https://www.cnblogs.com/fnlingnzb-learner/p/11664000.html
数据结构篇
Set、List、Map的区别与联系? ArrayList和LinkedList区别? Vector和ArrayList 区别? 参考解析:blog.csdn.net/qq_39241239…
Map的有序和无序实现类有哪些?
1.HashMap、Hashtable不是有序的;
2.TreeMap和LinkedHashMap是有序的(TreeMap默认 Key 升序,LinkedHashMap则记录了插入顺序)。
JVM篇
对象被垃圾回收器回收前会调用什么方法?
finalize()
java双亲委派机制及作用?
参考答案:https://www.jianshu.com/p/1e4011617650
MySQL篇
MySQL索引在什么情况下会失效?
参考:https://www.jianshu.com/p/3ccca0444432。
算法篇
整理中...
Spring篇
Spring 中创建的Bean(例如Controller)默认是单例还是多例的?
默认是单例的。
Spring框架中的三大核心思想是什么?
DI(依赖注入)
IOC(控制反转)
AOP(面向切面编程)
Spring MVC篇
整理中...
MyBatis篇
MyBatis的缓存机制?
分为一级缓存和二级缓存,并预留了集成第三方缓存的接口,一级缓存默认开启,二级缓存需要手动开启;一级缓存只是相对于同一个SqlSession而言。
更多参考:https://www.cnblogs.com/happyflyingpig/p/7739749.html
Redis篇
redis的数据类型有哪些?
1.字符串(String)
2.哈希(Hash)
3.列表(List)
4.集合(Set)
5.有序集合(sorted set)
Web篇
关闭浏览器后,session是否还存在?
存在于浏览器上的唯一标识符JSESSIONID(sessionid)消失了,但是服务器中存放的sessionid并没有立马销毁。更多参考内容: https://www.cnblogs.com/heyboom/p/11090616.html