[关闭]
@Yano 2018-12-08T15:18:04.000000Z 字数 1340 阅读 1286

Java 面试题汇总(持续更新)

Java


  1. 谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗?
  2. 谈谈JVM的一些基础概念和机制,比如Java的类加载机制;常用版本JDK(JDK8)内嵌的Class-Loader;类加载大致过程:加载、验证、链接、初始化;自定义Class-Loader等;
  3. 垃圾收集的基本原理,常见的垃圾收集器,如SerialGC、Parallel GC、CMS、G1等。
  4. Exception和Error有什么区别?
  5. 四种引用:强引用、软引用、弱引用、幻象引用
  6. String、StringBuffer、StringBuilder有什么区别?
  7. String自身的演化
  8. 动态代理是基于什么原理?
  9. JDK动态代理和cglib框架的区别?
  10. int和Integer有什么区别?
  11. 对比Vector、ArrayList、LinkedList有什么区别?
  12. 对比Hashtable、HashMap、TreeMap有什么区别?
  13. HashMap的底层实现原理?
  14. 如何保证集合是线程安全的?ConcurrentHashMap如何实现高效的线程安全?
  15. Java提供了哪些IO方式?NIO如何实现多路复用?
  16. Java有几种文件拷贝方式?哪一种最高效?
  17. 谈谈接口和抽象类的区别?
  18. JDK8,9对接口的改进
  19. 谈谈你知道的设计模式?
  20. 实现double-check单例模式
  21. Synchronized和ReentrantLock有什么区别?
  22. 锁膨胀、降级,偏斜锁、自旋锁、轻量级锁、重量级锁概念
  23. Synchronized的底层是如何实现的?什么是锁的升级、降级?
  24. 一个线程两次调用start()方法会出现什么情况?
  25. 什么情况下Java程序会产生死锁?如何定位、修复?
  26. Java并发包提供了哪些并发工具类?
  27. CountDownLatch、CyclicBarrier、Semaphore
  28. 跳表SkipList
  29. 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?
  30. 什么是CAS无锁技术?
  31. Java并发类库提供的线程池有哪几种?分别有什么特点?
  32. AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?
  33. 请介绍类加载过程,什么是双亲委派模型?
  34. 有哪些方法可以在运行时动态生成一个Java类?
  35. 谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?
  36. 如何监控和诊断JVM堆内和堆外内存的使用?
  37. Java常见的垃圾收集器有哪些?
  38. 谈谈你的GC调优思路?
  39. G1 GC的内部结构和主要机制?
  40. Java内存模型中的happen-before是什么?
  41. volatile如何利用内存屏障实现JMM定义的可见性?
  42. 你了解Java应用开发中的注入攻击吗?
  43. 如何写出安全的Java代码?
  44. 后台服务出现明显“变慢”,谈谈你的诊断思路?
  45. 有人说“Lambda能让Java程序慢30倍”,你怎么看?
  46. JVM优化Java代码时都做了什么?
  47. 谈谈MySQL支持的事务隔离级别?
  48. 悲观锁、乐观锁的原理和应用场景?
  49. 谈谈Spring Bean的生命周期和作用域?
  50. Spring的控制反转、AOP基本原理?
  51. 对比Java标准NIO类库,Netty是如何实现高性能的?
  52. 谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注