面试总结-java工程师面试大纲

java工程师面试大纲

除了java的基础知识还包括以下几个内容:

  • JVM

    - JVM内存区域:重点注意堆栈的区别
    - JVM运行时内存(新生代、老年代、永久代)注意jdk7/8的区别
    - 如何进行确定垃圾回收(引用计数法、可达性分析)
    - 垃圾回收算法(复制算法、标记清除算法、标记整理算法、分代收集)
    - java中四大引用类型(强/软/弱/虚引用)
    - GC垃圾收集器
    - 内存溢出/内存泄漏
    - 如何进行jvm调优
    - jvm类加载机制/类加载器(注意双亲委派)
    
  • Java IO/NIO

  • 容器(集合)

   - list/set/map集合,他们之间的区别(底层数据结构,线程安全,是否为空,扩容)
   - 重点关注hashmap的底层实现原理,以及与courrentHashMap的区别,注意比较jdk1.7与1.8的不同
   - hashMap/hashtable区别
  • 并发编程
   - java内存模型、JMM三大特性、线程安全级别
   - 并发知识库
   - 线程的实现方式(某些公司面试会手写多线程)
   - 线程的生命周期(注意start与run的区别、sleep与run的区别)
   - 终止线程的方式
   - 线程与进程的区别、通信方式
   - 多线程的基本实现原理、线程池参数、拒绝策略、线程池工作过程
   - 四种线程池
   - java阻塞队列(原理、队列)
   - synchronized、ReentrantLock、Semaphore、AtomicInteger、volatile、ThreadLocal作用、应用场景、基本原理
   - 重点关注synchronized作用范围、底层原理、锁的升级原理、基本特性、与ReentrantLock/volatile的区别
   - java锁  重点关注CAS原理
  • 反射
  • 异常
  • 泛型
  • 框架
  -Spring IOC/DI/AOP原理  注入方式 
  - Spring事务传播行为、隔离级别
  - 常用注解
  - IOC容器的实现原理
  - springbean的生命周期
  - spring中用到的设计模式
  - springMVC实现原理
  - Mybatis缓存
 
  • 数据库
    - 存储引擎(InnoDB、MyIASM)区别
    - 聚簇索引、非聚簇索引、覆盖索引的概念
    - 什么是索引、有哪些索引、什么情况下建立索引、哪些情况下索引失效、索引如何提高查询效率、索引的数据结构
    - 什么是死锁、死锁的表现方式、怎么解决死锁
    - 数据库三范式
    - 数据库事务
    - 一条sql语句执行很慢的原因
    - 怎么进行sql调优
    - 主从复制原理
  • 计算机网络
     - 网络的七层架构、五层模型
     - TCP/UDP的区别
     - TCP的三次握手、四次挥手过程,为什么不能改成两次握手
     - TCP流量控制、阻塞控制、粘包
     - HTTP原理、状态、https区别、请求方法
     - 在浏览器中输入URL到显示页面的整个过程,以及使用的协议
     - socket通信
  • 设计模式
 - 设计原则
 - 设计模式 单例模式懒汉饿汉要会写
  • 其他
 - Redis
 - kafka
 - Linux基本命令
 - 其他消息队列了解即可
发布了47 篇原创文章 · 获赞 7 · 访问量 5873

猜你喜欢

转载自blog.csdn.net/weixin_42227576/article/details/102560319