2018Java面试准备

图片发自App

Java面试总结

HashMap
  • 工作原理
  • equals()和hashCode()作用
  • 负载因子
  • 线程安全
参考资料
  • 谈谈HashMap线程不安全的体现
  • HashMap的实现原理
  • Java8系列之重新认识HashMap
  • Java 8:HashMap的性能提升
  • ConurrentHashMap和Hashtable的区别
  • Java HashMap工作原理及实现
Synchronized和Lock
  • Synchronize 和 Lock 的区别
参考资料
  • 深入研究 Java Synchronize 和 Lock 的区别与用法
  • Java并发编程:synchronized
  • Java中synchronized的用法
  • Java中的锁
类加载机制,双亲委派机制
  • 类加载流程
  • 类加载器
  • 自定义类加载器
参考资料
  • Java虚拟机类加载机制
  • Java 类的加载机制-双亲委派模型
volitale
  • volitale用法
  • volitale与Synchronized区别
参考资料
  • java多线程(六)深入理解volitale关键字
  • 深入分析volatile的实现原理
  • Java 中 volatile 关键字实现原理
  • Java并发:volatile内存可见性和指令重排
NIO
  • NIO基本概念
参考资料
  • IO NIO的一些概念

JVM

JVM内存模型
JVM内存模型
参考资料
  • JVM(2):JVM内存结构
GC
  • 垃圾回收算法
  • 垃圾回收器
  • Minor GC
  • Full GC
参考资料
  • 深入理解 Java 垃圾回收机制
  • JVM(3):Java GC算法 垃圾收集器
  • CMS(Concurrent Mark-Sweep)垃圾回收器
JVM调优
  • jps jstat jstack jmap jat
参考资料
  • JVM(4):Jvm调优-命令篇
  • 如何使用jstack分析线程状态

框架

Spring

  • Aop原理以及使用场景
  • Ioc原理
  • Spring MVC 工作流程
  • Spring bean作用域 是否线程安全
参考资料
  • Spring AOP的实现原理
  • Spring的IOC原理
  • Spring容器中Bean的作用域
  • 聊一聊 Spring 中的线程安全性
  • Spring面试问答Top 25
ORM
  • Hibernate配置,与Mybatis区别
  • Hibernate延迟加载的机制
  • iBatis Mybatis区别
参考资料
  • Hibernate 的 10 个常见面试问题及答案
Struts
  • Struts1 Struts2区别 生命周期
在线问题定位
  • 问题分析 定位
参考资料
  • 快速定位java系统的线上问题

设计模式

  • 了解几个常用的设计模式,使用场景
  • 单例模式的几种实现方式(饱汉,懒汉,饿汉,枚举,静态常量,内部类)
参考资料
  • 面试中单例模式有几种写法
  • 设计模式(Design Pattern)
多线程
  • Object的wait notify notifyAll
  • 并发类
  • 线程池核心参数,拒绝策略
参考资料
  • Java 线程池框架核心代码分析
  • Java 多线程知识小抄集 ( 一 )
  • Java 多线程知识小抄集 ( 二 )
  • Java 多线程知识小抄集 ( 三 )
  • Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
  • 什么时候使用CountDownLatch
  • Java 实现生产者 – 消费者模型
  • java中级:多线程

数据结构与算法

  • 平衡二叉树
  • 红黑树
  • Btree
  • B+Tree
参考资料
  • 教你透彻了解红黑树
单向链表的逆序排列
  • 遍历链表,将每个节点的内容存入一个数组中,然后逆序输出数组(最简单的做法)
  • 使用栈来逆序输出
  • 直接将链表(指针)逆序然后输出
DB
  • Mysql引擎,区别
  • Mysql索引结构(B+Tree)
  • Mysql索引使用方式
  • Mysql查询优化
  • Mysql explain
  • 数据库事物特性(ACID)与隔离级别(4种) 脏读 幻读 不可重复读
  • ES 查询原理,分片,索引,全文检索,和DBMS区别
参考资料
  • MySQL存储引擎--MyISAM与InnoDB区别
  • MYSQL: INNODB 还是 MYISAM?
  • MYSQL性能优化的最佳20+条经验
  • MySQL数据库优化的八种方式
  • MySQL索引原理及慢查询优化
  • MySQL索引背后的数据结构及算法原理
  • MySQL事务隔离级别
  • MySQL EXPLAIN详解
RPC
  • RPC框架基本原理
参考资料
  • 你应该知道的 RPC 原理
  • 从零开始实现RPC框架 - RPC原理及实现
Linux
参考资料
  • 你应该了解的Linux知识
架构
参考资料
  • 大型分布式网站架构技术总结
  • 大型网站架构系列:电商网站架构案例(1)
  • 大型网站架构系列:电商网站架构案例(2)
  • 大型网站架构系列:电商网站架构案例(3)
  • 大型网站架构系列:负载均衡详解(1)
  • 大型网站架构系列:负载均衡详解(2)
  • 大型网站架构系列:负载均衡详解(3)
  • 大型网站架构系列:负载均衡详解(4)
  • 大型网站架构系列:分布式消息队列(一)
  • 大型网站架构系列:消息队列(二)
  • 大型网站架构系列:缓存在分布式系统中的应用(一)
  • 大型网站架构系列:缓存在分布式系统中的应用(二)
  • 大型网站架构系列:缓存在分布式系统中的应用(三)
其他
  • Java基础
  • 内存溢出,内存泄漏区别
  • Java集合类
  • Java泛型约束
  • Java8新特性
  • ThreadLocal
  • redis
  • 消息队列
  • 反向代理
  • SpringBoot
参考资料
  • 初级Java:基础概念,集合等
  • Java面试题全集(上)
  • Java面试题全集(下)
  • Java线程面试题 Top 50
  • Java 面试题:百度前200页都在这里了
  • 最近5年133个Java面试问题列表
  • 妈妈再也不用担心别人问我是否真正用过redis了
最后

祝大家早日找到心仪的姑娘,或者心仪的工作。

你可能感兴趣的:(2018Java面试准备)