最近更新:2020年3月22日21:28:47
本篇博客是对我的专栏《Java面试复习笔记》的一个索引
(内容持续更新!!!)(后续学习了继续补充)
专栏的内容包括了我在诸多付费课程中学习的关于Java面试的笔记和总结
其中的课程包含了
- 慕课网《玩转Java并发工具,精通JUC,成为并发多面手》
- 慕课网《Java并发核心知识体系精讲》
- 慕课网《剑指Java面试-Offer直通车》
- 慕课网《高薪之路–Java面试题精选集》
- 慕课网《面试官系统精讲Java源码及大厂真题》
- 拉勾网《Java 面试真题及源码 34 讲》
- 牛客网《Java开发岗高频面试题全解析》
- 极客时间《极客时间-Java核心技术36讲》
- 极客时间《SQL必知必会》
- 即可大学《算法训练营》
希望这个专栏除了能帮助我自己构建知识体系,掌握面试的知识,同时也能帮助和我一样在学校没有学到太多实用东西想要找大厂工作的同学
并发编程篇
你必须了解的Java并发核心知识
内容包含->
- 进程和线程的区别
- Java进程与线程的关系
- 有多少种实现线程的方法?
- 实现Runnable接口和继承Thread类哪种方式更好?
- 一个线程两次调用start()方法会出现什么情况?为什么?
- 既然start()方法会调用run方法,为什么我们选择调用start方法而不是直接调用run方法呢?
- 如何停止线程?
- 如何处理不可中断的阻塞
- 线程有哪几种状态?生命周期是什么?
- 用程序实现两个线程交替打印(0-100)的奇偶数
- 什么是生产者消费者模式
- 手写生产者消费者模式
- 为什么wait方法需要在同步代码块内使用,而sleep不需要
- 为什么线程通信的方法wait、notify、notifyAll被定义在Object类中?而slepp方法被定义在Thread类中?
- wait方法是属于Object对象的,那调用Thread.wait()会怎么样
- 如何选择用notify还是notifyAll
- notifyAll之后所有的线程都会再次抢夺锁,如果某线程抢夺失- 败怎么办?
- suspend和resume来阻塞线程可以吗?为什么?
- wait/notify、sleep异同
- yield和sleep的区别
- 在join期间,线程处于哪种线程状态?
- 守护线程和普通线程的区别
- 我们是否需要给线程设置守护线程?
- run方法是否可以抛出异常?
- 如何全局处理异常
- 什么是多线程的上下文切换
- 为什么多线程会带来性能问题?
- 何时会导致密集的上下文切换
- 单例模式的作用和适用场景
- 单例模式的八种写法及相关知识点
- 工作中哪种单例模式的实现最好
- 讲一讲什么是Java内存模型
- 关于死锁你知道多少?
面试遇到Java并发容器,我能和面试官聊上20分钟
内容包含->
- CopyOnWriteArrayList
- 常见问题
- 源码分析
- 面试题
- concurrentHashMap
- 常见问题
- 源码分析
- 面试题