java面试突击

  1. Java基础
    Java接口和抽象类有什么区别?
    String,StringBuilder和StringBuffer的区别?
    final、finally、finalize三个关键字的区别?
    ==和equals的区别,给段代码判断下“ ==” 和equals的返回值。
    Java基本数据类型有几种,每一种的区别是什么?
    值传递和引用传递的区别?
    Java的异常体系?受检查和非受检查异常区别?
    序列化和反序列化。
    反射和泛型。
  2. 集合
    Collection的体系结构,Java容器有哪些?
    HashMap系列:底层数据结构,jdk1.7和1.8的区别,解决 hash 碰撞的方法,线程不安全原因,扩容策略,get和put方法的实现等等。
    ConcurrentHashMap的实现,底层原理,jdk1.7和1.8的区别等。
    HashTable、HashMap、HashSet区别。
    ArrayList,LinkedList ,Vector的区别,包括存储结构,增删改查效率等。
    Set 和 Map的区别,List 和 Set 的区别。
  3. JVM
    JVM的内存区域,即运行时数据区域。
    Java内存模型(JMM),Happens-Before 规则。
    垃圾回收算法;垃圾收集器,面试重点问CMS和G1的原理。
    类加载,双亲委派模型,如何打破双亲委派模型。
    jvm 调优,如何排查线上问题,如何解决线上 gc 问题。
  4. Java并发
    线程生命周期有哪些,状态切换的过程。
    死锁产生的条件,如何避免死锁。
    synchronized系列。synchronized 锁的是对象还是方法, 加在静态方法和实例方法的区别;给出一段代码,让判断是否会发生争夺锁问题。synchronized 的底层实现,锁升级过程。
    volatile相关。volatile关键字的作用,原理;volatile和synchronized区别。
    Lock接口相关。ReentrantLock原理,ReentrantLock和synchronized区别。
    线程池系列。线程池的使用场景,线程池的参数,拒绝策略,线程池执行的过程;线程池的核心线程数如何配置,线程池的原理;常见的几种线程池,常见的几种阻塞队列。
    ThreadLocal是什么?它的内存泄漏了解吗?
    CAS相关。CAS的过程,CAS存在的问题,如何解决?
    sleep() 方法和 wait() 方法区别和共同点?
    线程实现的方式及区别?线程通信的方式和区别?
    AQS系列,原子类和并发工具类,了解即可,有时间可以深入学习。
  5. MySQL
    MySQL 的索引类型,最左匹配原则,回表,底层索引数据结构,为什么不用B-树?索引失效如何排查?
    InnoDB和 MyISAM 的区别?聚集和非聚集索引 的区别?
    事务的ACID特性和隔离级别。
    MySQL中的锁机制,乐观锁和悲观锁,锁的种类。
    MySQL的日志模块binlog和redo log。
    主从复制,分库分表,SQL调优。
  6. Redis
    Redis 5种数据类型的使用,以及底层数据结构,尤其是Hash和Zset(sortedSet )
    Redis性能高的原因,为什么用Redis?
    Redis的过期策略和淘汰策略。
    Redis的持久化策略,RDB和AOF的区别?
    缓存击穿,缓存穿透,缓存雪崩,如何解决这些问题?
    Redis的主从复制,哨兵,集群。
    Redis实现分布式锁。
    Redis6的新特性。
  7. Spring和Mybatis
    AOP和IOC的理解, bean 的生命周期和作用域,IOC容器初始化过程,循环依赖问题如何解决?
    BeanFactory和FactoryBean的区别?BeanFactory和ApplicationContext有什么区别?
    Spring 中用到的设计模式。
    SpringMvc工作流程。
    Spring 和 SpringBoot 的区别?
    Mybatis 相比Spring考察较少。常考:Mybatis 和 hibernate 的区别;Mybatis 的缓存;Mybatis 的执行流程等
  8. 计算机网络
    网络分层概念,TCP和UDP区别及使用场景。
    TCP头部结构,三次握手四次挥手,TCP可靠性保证手段,滑动窗口,拥塞控制,流量控制。
    HTTP和HTTPS区别?Cookie和Session区别?
    HTTP请求报文,浏览器输入网址后发生的事情,GET和POST的区别?
  9. 操作系统和Linux
    进程和线程的区别;进程的通信方式,线程的通信方式
    内存管理和IO管理
    Linux常用命令(top、ls、ps、netstat、lsof、cat、rm、grep、kill等),僵尸进程和孤儿进程,Linux中swap的作用?
  10. 设计模式
    设计模式的分类和六大原则
    单例模式分析和手写:懒汉和饿汉,双重检查模式,静态内部类模式。
    常见的几种设计模式?项目中用到哪些设计模式,为什么要用,怎么用的?
  11. 加分项
    消息队列MQ:ActiveMQ、RocketMQ、RabbitMQ、Kafka。选一个深入了解即可,推荐Kafka或RocketMQ
    全文搜索引擎ES(elasticsearch):ES的倒排索引,分词和搜索过程等。
    分布式Zookeeper。
    微服务框架 SpringCloud或Dubbo

你可能感兴趣的:(JAVA,java,面试,jvm)