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