学习Java 必要有一个计划,知道自己现在需要看的是什么方面的技术。
下面是网上找到5年内的需要学习和了解的内容。
后期会将相应的答案链接补充上。
1、明确项目是做什么的
2、明确项目的价值。(为什么做这个项目,它解决的问题和带来的价值)
3、明确项目的功能、技术。
4、明确个人在项目中的位置和作用,项目的整体架构。
5、明确项目的优缺点,如何优化。
6、明确自己的技术成长
1、List和Set的区别
集合框架,list,map,set都有哪些具体的实现类,区别都是什么
2、HashSet是如何保证不重复的
HashSet 与TreeSet和LinkedHashSet的区别
3、HashMap是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)
谈谈HashMap线程不安全的体现
HashMap为什么线程不安全(hash碰撞与扩容导致)
4、HashMap的工作原理和扩容过程
HashMap的工作原理(通过问答了解)
HashMap工作原理和扩容机制
5、HashMap 1.7 与 1.8 的区别,说明 1.8 做了哪些优化,如何优化的
HashMap在Java1.7与1.8中的区别
HashMap 在JDK1.8中的实现
6、final、finally、finalize
Java中final、finally和finalize的区别
7、强引用、软引用、弱引用、虚引用
Java四种引用包括强引用,软引用,弱引用,虚引用
8、Java反射
Java基础之—反射(非常重要)
9、Array.sort 实现原理和 Collection 实现原理
10、LinkedHashMap的应用
11、cloneable接口实现原理
12、异常分类以及处理机制
13、数据排序的方法(记忆)
14、红黑树(了解)
15、泛型
Java泛型详解
16、IO
Java IO完全总结
17、TCP的三次握手与四次挥手(详解+动图)
18、数据结构和算法入门
Java并发编程:深入剖析ThreadLocal
Java中的锁
java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
1、synchronized 的实现原理以及锁优化
JAVA synchronized实现原理以及其中锁优化的归纳总结
2、volatile 的实现原理
3、Java 的信号灯
Java高级之信号灯Semaphore
4、synchronized 在静态方法和;普通方法的区别
5、怎么实现所有线程在等待某个时间的发生才会去执行
6、CAS 是什么,CAS有什么缺陷,如何解决?
Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
7、synchronized 和 lock 的区别
8、Hashtable 是怎么加锁的
9、HashMap的并发问题
10、ConcurrentHashMap 介绍 ,1.8 中为什么用红黑树
谈谈ConcurrentHashMap1.7和1.8的不同实现
11、AQS 是什么
Java并发之AQS详解
12、如何检测死锁,和 ,怎么预防死锁
13、Java 内存模型
14、如何保证多线程下 i++ 结果正确
15、线程池的种类、区别和使用场景
16、分析线程池的实现原理和线程的调度过程
17、线程池如何调忧,最大数目如何确认
18、ThreadLocal 原理,用的时候需要注意什么
Java并发编程:深入剖析ThreadLocal
19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别
20、LockSupport 工具
21、Condition 接口以及实现原理
22、Fork/Join 框架的理解
23、分段锁的原理,锁力度减小的思考
24、八种阻塞队列以及各个阻塞队列的特性
25、java.util.concurrent介绍
1、BeanFactory 和 FactoryBean?
Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法
2、Spring IOC 的理解,以及 其初始化过程:文章1 , 文章2
3、BeanFactory 和 ApplicationContext
Spring系列之beanFactory与ApplicationContext
4、Spring Bean 的生命周期,如何被管理的?
5、Spring Bean 的加载过程是怎样的?
6、如果要你实现Spring AOP ,应怎么实现?
《Spring设计思想》AOP设计基本原理
7、如果要你实现Spring IOC ,你会注意哪些问题?
Spring实现IoC的多种方式(包含动态代理的实现原理)
Java动态代理的两种实现方法
8、Spring 是如何管理事务的 , 事务管理机制?
Spring事务管理(详解+实例)
9、Spring 的不同事务传播行为有哪些,干什么用的?
10、Spring 中用到了哪些设计模式?(设计模式的学习)
11、Spring MVC 的工作原理
12、Spring 循环注入的原理
1、BIO、NIO 和 AIO
2、Netty 的各大组件
3、Netty 的线程模型
4、TCP 粘包/拆包的原因及解决方法
5、了解哪几种序列化协议?包括使用场景和如何去选择
6、Netty 的零拷贝实现
7、Netty 的高性能表现在哪些方面
1、Dubbo 的底层实现原理和机制
2、描述一个服务从发布到被消费的详细过程
3、分布式系统怎么做服务治理
4、接口的幂等性的概念
5、消息中间件如何解决消息丢失问题?
6、Dubbo 的服务请求失败怎么处理
7、重连机制会不会造成错误
8、对分布式事务的理解
9、如何实现负载均衡,有哪些算法可以实现?
10、Zookeeper 的用途,选举的原理是什么?
11、数据的垂直拆分,水平拆分、
12、Zookeeper 原理和适用场景
13、zookeeper watch 机制
14、redis/zk 节点宕机如何处理
15、分布式集群下如何做到唯一序列号?
16、如何做一个分布式锁?
17、用过哪些MQ,怎么用的,和其他MQ 比较有什么优缺点,MQ的连接是线程安全的吗?
高吞吐、高可用MQ对比分析
18、MQ系统的数据如何保证不丢失(如何保证消费的可靠性)
19、列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题?
20、zookeeper 的选举策略
21、全局ID
1、MySQL 分页有什么优化
2、悲观锁、乐观锁
Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
3、组合索引、最左原则
4、MySQL 的表锁、行锁(保证数据并发访问的一致性、有效性)
MySQL中的锁(表锁、行锁)
5、MySQL 性能的优化
6、MySQL 的索引分类:B+ ,hash ;什么情况用什么索引?
7、事务的特性和隔离级别;
1、Redis 用过哪些数据类型,以及Redis 底层是怎么实现?
2、Redis 缓存穿透,缓存雪崩
3、如何使用Redis 来实现分布式锁
4、Redis 的并发竞争问题如何解决?
5、Redis 持久化的几种方式,优缺点是什么,怎么实现?
6、Redis 的缓存失效策略
7、Redis 的集群,高可用,原理
8、Redis 缓存分片
9、Redis 的数据淘汰策略
1、详细jvm 内存模型
2、讲讲什么情况下会出现内存溢出,内存泄露?
3、说说Java 线程栈
4、JVM 年轻代到老年代的晋升过程的判断条件是什么?
5、JVM 出现 fullGC 很频繁,怎么去线上排查问题?
6、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式?
7、类的实例化顺序
8、JVM 垃圾回收机制,合适触发MinorGC等操作
9、JVM 中一次完整的GC流程(从 ygc 到 fgc)是怎么样的?
10、各种回收器,各自优缺点,重点 CMS,G1
11、各种回收算法
12、OOM错误,stackoverflow错误,permgen space 错误
浦发面试要点:
java的反射
java的动态代理
悲观锁和乐观锁
延迟加载
servlet的生命周期,作用域
spring的事务
jquery的全选怎么实现
切面怎么实现
权限控制
struts2拦截器的用法
sql的优化
spring缓存
Redis
MQ
http 返回状态码
Oracle mysql 数据库分页实现
数值计算Decimal
java如何实现多线程
httpclient
Hibernate 与 mybatis 的区别
数据库执行计划
java的设计模式(单例、工厂、代理等)
jquery的选择器
java虚拟机堆和栈
java虚拟机内存回收机制
Quartz 在不同 jvm 下如何保证同步
SpringMVC的生命周期
ajax请求有哪些参数
Oracle索引实现机制