不管是开发、测试、运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟"梦想总是要有的,万一实现了呢"!正是对技术梦的追求,促使我们不断地努力和提升自己.-济南达内负责整理
今天分享Java重点面试知识 :
多线程(线程状态、线程并发,Synchronized与Lock的区别和底层原理,常用的锁及其使用场景和原理,
volatile和ThreadLocal解决了什么问题,CAS在Java中的实现
线程池原理和实现,阻塞队列和线程安全队列,
线程间通信: synchronized + wait、notify/notifyAll, Lock + Condition 的多路复用,
CountDownLatch、CyclicBarrier和Semaphore的作用和用法,使用场景)
JVM内存管理机制和垃圾回收机制(内存模型、GC策略、算法、分代回收GC类型,Full GC、Minor GC作用范围和触发条件)
JVM内存调优(内存调整的6个参数,了解是怎么回事,一般做项目过程中使用较多)
设计模式(熟悉常见设计模式的应用场景,会画类图,常用:代理,2个工厂,策略,单例,观察者,适配器,组合与装饰)
JAVA集合类框架(理解框架图、HashMap、ArrayList、HashSet等的关系和区别,其中HashMap的存储机制几乎每次都有问)
HashMap的原理,底层数据结构,rehash的过程,指针碰撞问题HashMap的线程安全问题,为什么会产生这样的线程安全问题ConcurrentHashMap的数据结构,底层原理,put和get是否线程安全
JAVA的异常处理机制(异常的分类、常见的异常有哪些、Try catch finally的使用)
JVM运行机制(理解JVM是如何运行的,理解类加载机制和类的初始化顺序)
Java 的NIO 3个主要概念 Channel、Buffer、Selector,为何提高了性能?加分项:熟悉Netty
Linux基础(面试笔试中对linux也有一定的要求,建议最好搭建一个linux虚拟机,并练习常用的命令)
框架
Spring
Spring IOC原理,Bean的生成和生命周期(工厂模式 + 反射生成 + 单例),Spring用到的设计模式
Spring AOP原理和应用(动态代理与cglib代理,使用场景和代理的本质区别)
Spring如何处理高并发?高并发下,如何保证性能?
单例模式 + ThreadLocal
单例模式大大节省了对象的创建和销毁,有利于性能提高,ThreadLocal用来保证线程安全性
Spring单例模式下,用ThreadLocal来切换不同线程直接的参数,用ThreadLocal是为了保证线程安全,实际上,ThreadLocal的key就是当前线程的Thread实例
单例模式下,Spring把每个线程可能存在线程安全问题的参数值放进了ThreadLocal,虽然是一个实例,但在不同线程下的数据是相互隔离的,
因为运行时创建和销毁的bean大大减少了,所以大多数场景下,这种方式对内存资源的消耗较少,并且并发越高,优势越明显
以上就是济南达内给大家做的内容详解,更多关于java知识的学习,请继续关注济南达内