Java面试之基础篇

一:基础知识

1:面向对象编程的三大特征:封装、继承、多态

2:重载与重写得区别

3:String、StringBuffer、StringBuilder的区别

4:接口和抽象类的区别

5:浅拷贝与深拷贝


二:Java集合

1:谈谈你对集合的理解及三大集合的区别与联系

2:ArrayList与LinkedList的区别

3:HashMap、HashTable、CurrentHashMap的区别及底层实现

4:由CurrentHashMap引申出CAS


三:多线程

1:线程、进程之间的关系及优缺点

2:线程得生命周期及状态

3:线程死锁,如何避免线程死锁?

4:说说Synchronized关键字的理解,及Synchronized的底层实现

5:讲一讲JMM(Java内存模型)

6:说说Synchronized和volatile 关键字的区别

7:线程池的定义、如何创建线程池、线程池的原理

8:JUC 包中的原⼦类是哪 4 类?

9:AQS 的全称为( AbstractQueuedSynchronizer ),这个类在 java.util.concurrent.locks 包下⾯。


四:JVM(java虚拟机)

1:介绍下 Java 内存区域(运⾏时数据区)

线程共享:堆、方法区

线程私有:虚拟机栈、本地方法栈、程序计数器

1.8引入元空间(Matespace)

2:对象的创建过程

类加载检查》内存分配》初始化零值》设置对象头》执行init方法

3:聊聊 JVM 内存分配与回收

4:垃圾收集有哪些算法,各⾃的特点?

5:JVM调优


五:Java IO流

连接:https://www.imooc.com/article/24305

谈谈你对NIO流的理解:https://blog.csdn.net/forezp/article/details/88414741/


六:Java 8 新特性

https://blog.csdn.net/harryptter/article/details/87162620

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容