极客时间已完结课程限时免费阅读

Java 核心技术面试精讲

开篇词 | 以面试题为切入点,有效提升你的Java内功

第1讲 | 谈谈你对Java平台的理解?

第2讲 | Exception和Error有什么区别?

第3讲 | 谈谈final、finally、 finalize有什么不同?

第4讲 | 强引用、软引用、弱引用、幻象引用有什么区别?

第5讲 | String、StringBuffer、StringBuilder有什么区别?

第6讲 | 动态代理是基于什么原理?

第7讲 | int和Integer有什么区别?

第8讲 | 对比Vector、ArrayList、LinkedList有何区别?

第9讲 | 对比Hashtable、HashMap、TreeMap有什么不同?

第10讲 | 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?

第11讲 | Java提供了哪些IO方式? NIO如何实现多路复用?

第12讲 | Java有几种文件拷贝方式?哪一种最高效?

第13讲 | 谈谈接口和抽象类有什么区别?

第14讲 | 谈谈你知道的设计模式?

第15讲 | synchronized和ReentrantLock有什么区别呢?

第16讲 | synchronized底层如何实现?什么是锁的升级、降级?

第17讲 | 一个线程两次调用start()方法会出现什么情况?

第18讲 | 什么情况下Java程序会产生死锁?如何定位、修复?

第19讲 | Java并发包提供了哪些并发工具类?

第20讲 | 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?

第21讲 | Java并发类库提供的线程池有哪几种? 分别有什么特点?

第22讲 | AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?

第23讲 | 请介绍类加载过程,什么是双亲委派模型?

第24讲 | 有哪些方法可以在运行时动态生成一个Java类?

第25讲 | 谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?

第26讲 | 如何监控和诊断JVM堆内和堆外内存使用?

第27讲 | Java常见的垃圾收集器有哪些?

第28讲 | 谈谈你的GC调优思路?

第29讲 | Java内存模型中的happen-before是什么?

第30讲 | Java程序运行在Docker等容器环境有哪些新问题?

第31讲 | 你了解Java应用开发中的注入攻击吗?

第32讲 | 如何写出安全的Java代码?

第33讲 | 后台服务出现明显“变慢”,谈谈你的诊断思路?

第34讲 | 有人说“Lambda能让Java程序慢30倍”,你怎么看?

第35讲 | JVM优化Java代码时都做了什么?

第36讲 | 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

第37讲 | 谈谈Spring Bean的生命周期和作用域?

第38讲 | 对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?

第39讲 | 谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?

周末福利 | 谈谈我对Java学习和面试的看法

周末福利 | 一份Java工程师必读书单

结束语 | 技术没有终点

结课测试 | Java核心技术的这些知识,你真的掌握了吗?