没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
165页
历经几年呕心沥血整理,总共将近180页,史上最全java八股文面试题,高级/资深java都适合,涉及到的知识点有:Java基础、Spring/SpringMVC、SpringBoot、设计模式、多线程、集合、Java虚拟、网络TCP/IP、Redis/Memcached/Ehcache/Jetcache、Dubbo、RocketMQ/ActiveMQ/RabbitMQ、Kafka、ElasticSeacher、Zookeeper、Hbase、Mysql、Mybatis、Linux,还有一些基本算法及项目中遇到过的问题等等。 注意:大家可以自用,单不能外传,违者必究。
资源推荐
资源详情
资源评论
JAVA 高级软件工程师知识点
目录
一、 Java 基础 .............................................................................................................................10
(一) 为什么 char 数组比 Java 中的 String 更适合存储密码 ...............................10
(二) 如何更安全的创建单例...........................................................................................11
1. 双重检查创建单例,注意使用 volatile ............................................................11
2. 通过枚举单例模式(最佳单例方式) .................................................................11
(三) java nio,bio,aio,操作系统底层 nio 实现原理 ...........................................11
(四) Tomcat 如何隔离不同的 web 应用..........................................................................12
(五) Netty 零拷贝?Netty 高性能表现在哪些方面? .................................................12
(六) fail-fast 和 fail-safe.......................................................................................12
(七) Object hashcode.....................................................................................................13
(八) StringBuffer 与 StringBuilder 的区别 ..............................................................13
(九) 为 ..............................................................................................................................13
二、 Spring 相关 .........................................................................................................................13
(一) Spring 核心组件......................................................................................................13
1. 为何使用 spring....................................................................................................13
2. 核心组件种类及原理.............................................................................................13
3. servlet、filter、listener、interceptor 区别 ............................................14
(二) Spring Bean.............................................................................................................15
1. 如何创建 bean 并构建其关系网...........................................................................15
2. bean 的生命周期....................................................................................................18
3. 如何解决循环依赖问题?属性注入和构造器注入哪种会有循环依赖的问题?20
4. 可以不要二级缓存吗?.........................................................................................21
5. 可以不要三级缓存吗?.........................................................................................21
6. BeanFactory 和 ApplicationContext 有什么区别? ........................................21
7. Spring 框架中 bean 的作用域?单例 bean 是线程安全的么? ........................22
8. Bean 懒加载流程?................................................................................................23
9 . Spring 如 何 注 入 一 个 java collection ? 如 何 注 入 一 个
Java.util.properties?.............................................................................................24
10. 请解释 spring bean 的自动装配?请解释自动装配模式的区别? ...............24
11. 请解释@Autowired 注解?..................................................................................25
12. 构造方法注入和设值注入的区别?...................................................................25
13. Spring 框架中有哪些不同类型事件? ..............................................................25
14. FileSystemResource 和 ClassPathResource 有何区别? ..............................26
15. Spring 框架中都用到了哪些设计模式? ..........................................................26
16. 客户端如何感知 apollo 服务中心配置更新? .................................................27
(三) Spring 事物传播机制..............................................................................................27
(四) SpringMVC.................................................................................................................28
1. Spring mvc 请求流程............................................................................................28
2. Spring mvc Controller 是单列还是多列的 ......................................................29
3. Spring mvc 和 Structs2 区别..............................................................................30
(五) Spring AOP 相关......................................................................................................31
1. AOP 实现原理是什么?..........................................................................................31
2. 应用场景有哪些?.................................................................................................31
(六) Spring IOC(依赖倒置)相关...................................................................................32
1. IOC 如何工作的?..................................................................................................32
(七) 动态代理相关...........................................................................................................32
1. JDK 的动态代理和 cglib 的动态代理各实现原理 ..............................................32
(八) SpringBoot...............................................................................................................33
1. SpringBoot 的自动配置是如何实现的? ...........................................................33
2. SpringBoot Starter 的工作原理是什么? .......................................................33
3. 如何在 SpringBoot 启动的时候运行一些特定的代码? .................................34
(九) SpringCloud 相关....................................................................................................34
1. SpringCloud 核心组件..........................................................................................34
2. SpringCloud 优点..................................................................................................34
3. SpringCloud Config 可以实现实时刷新吗? ...................................................35
4. 什么是 Spring Cloud Bus?..................................................................................35
5. SpringBoot 和 SpringCloud 的区别? ................................................................35
6. Eureka 怎么实现高可用........................................................................................35
7. eureka 服务注册与发现原理................................................................................35
8. 什么是 Eureka 的自我保护模式...........................................................................36
9. Eureka 和 ZooKeeper 都可以提供服务注册与发现的功能,请说说两个的区别36
10. ZuulFilter 常用有那些方法..............................................................................36
11. 网关的作用是什么...............................................................................................36
12. 如何实现动态 Zuul 网关路由转发.....................................................................36
13. Ribbon 底层实现原理..........................................................................................36
14. Ribbon 和 Feign 调用服务的区别......................................................................37
15. SpringCloud 和 Dubbo.........................................................................................37
16. Rest 和 RPC 对比..................................................................................................37
17. Feign 跟 RestTemplate 的区别..........................................................................38
18. HTTP 和 RPC 对比..................................................................................................38
三、 Java 设计模式 .....................................................................................................................38
(一) 创建型:如何创建对象...........................................................................................38
1. 工厂方法模式.........................................................................................................38
2. 建造者模式.............................................................................................................39
3. 原型模式.................................................................................................................40
4. 单例模式.................................................................................................................40
(二) 结构型:如何组合类和对象以获得更大结构 .......................................................40
1. 适配器模式.............................................................................................................40
2. 桥接模式(bridge).................................................................................................40
3. 组合模式.................................................................................................................41
4. 装饰模式(decorator)...........................................................................................42
5. 代理模式.................................................................................................................43
6. 外观模式(facade).............................................................................................43
(三) 行为型:关注系统中对象之间的相互交互 ...........................................................44
1. 职责链模式(chain of responsibility) ...........................................................44
2. 模板方法模式(template method).......................................................................44
3. 观察者模式(observer).........................................................................................45
4. 中介模式(mediator).............................................................................................48
5. 策略模式(strategy).............................................................................................49
6. 迭代器模式(iterator).........................................................................................49
7. 解释器模式(interpreter)...................................................................................49
8. 命令模式(command)...............................................................................................49
9. 状态模式(state)...................................................................................................49
四、 线程/并发编程相关.............................................................................................................50
(一) 线程池 ......................................................................................................................50
1. Thread 基础知识....................................................................................................50
2. 线程通信方式.........................................................................................................50
3. Java 中的线程池是如何实现的?创建线程池的几个核心构造参数?............51
4. Executors 框架的四种线程池及拒绝策略? ......................................................52
5. Jdk 拒绝策略..........................................................................................................52
6. 线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?53
7. 既然提到可以通过配置不同参数创建出不同的线程池,那么 Java 中默认实现
好的线程池又有哪些呢?请比较它们的异同? .........................................................53
8. 什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?54
9. 请谈谈 volatile 关键字有什么特点,为什么它能保证变量对所有线程的可见
性?是不是就意味着基于 volatile 变量的运算就是并发安全的? .....................54
10. 请对比下 volatile 对比 Synchronized 的异同? .......................................55
11. 请对比下 ThreadLocal 对比 Synchronized 的异同? ..................................55
12. 如何在 Java 线程池中提交线程?...................................................................55
13. Java 强引用、软引用、弱引用、虚引用? ......................................................55
14. ThreadLocal 原理?............................................................................................56
15. ThreadLocal 是怎么解决并发安全的? ............................................................57
16. 很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注
意些什么? ....................................................................................................................57
17. 线程池中使用 ThreadLocal 会存在哪些问题? ...............................................58
18. HA 主备怎么预防脑裂?......................................................................................58
(二) Synchronized...........................................................................................................58
1. Synchronized 其原理是什么?...........................................................................58
2. 什么是可重入性,为什么说 Synchronized 是可重入锁? .............................59
3. 跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?59
4. 请谈谈 ReentrantReadWriteLock 和 StampedLock? .....................................59
5. 那么请谈谈 AQS 框架是怎么回事儿? ...............................................................60
6. JVM 对 Java 的原生锁做了哪些优化? .............................................................60
7. 为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是
CAS,它有什么特性?...................................................................................................61
8. 如何让 Java 的线程彼此同步?你了解过哪些同步器?请分别介绍下?......61
9. 线程池如何配置线程数?.....................................................................................61
10. 线程池如何配置线程数?...................................................................................62
五、 集合相关 ..............................................................................................................................62
(一) 集合在哪几个包下...................................................................................................62
(二) Map 接口....................................................................................................................62
1. Map 接口的实现有哪些,区别是什么? ................................................................62
2. 为什 map 没有实现 collection 接口...................................................................63
3. 为什么 collection 没有实现 clonable 和 Serializable 接口? ..................63
4. Collection 和 Collections 的区别? .............................................................63
5. Comparable 和 Comparator 接口是干什么的?列出它们的区别..........? 63
(三) 红黑树的概念...........................................................................................................64
(四) HashMap ....................................................................................................................64
1. HashMap 数据结构?工作原理及其特点 ..............................................................64
2. HashMap hash 冲突如何解决(链表和红黑树),为什么 hashmap 中的链表需要转
成红黑树? ....................................................................................................................65
3. HashMap hash 什么时候扩容?扩容时每个 entry 需要再计算一次 hash 吗?扩
容时避免 rehash 的优化...............................................................................................66
4. HashMap 的数组长度为什么要保证是 2 的幂? ..................................................66
5. ConcurrentHashMap 如何实现线程安全? ..........................................................66
6. HashMap 和 Hashtable 的区别?..........................................................................67
(五) LinkedHashMap.........................................................................................................67
1. LinkedHashMap 了解基本原理、哪两种有序、如何用它实现 LRU? ................67
(六) TreeMap ....................................................................................................................69
1. TreeMap 的据结构..................................................................................................69
(七) Set(继承 Collection)............................................................................................69
1. HashSet 的底层实现是什么?...............................................................................69
2. HashSet 和 TreeSet 有什么区别?.....................................................................69
3. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还
是 equals()? 它们有何区别?.....................................................................................69
(八) List(继承 Collection)..........................................................................................70
1. List 的实现有哪些?区别是什么?....................................................................70
2. 数组 (Array) 和列表 (ArrayList) 有什么区别?什么时候应该使用 Array 而不
是 ArrayList?.............................................................................................................70
1、空间大小比较:.......................................................................................................70
2.方法上的比较:.........................................................................................................70
3. 什么是迭代器 (Iterator)?Iterator 和 ListIterator 的区别是什么?..70
4. ArrayList 实现队列..............................................................................................71
六、 虚拟机相关 ..........................................................................................................................71
(一) 堆和栈 ......................................................................................................................71
1. heap 和 stack 有什么区别.................................................................................71
虚拟机栈 ................................................................................................................................71
2. JVM 内存模型..........................................................................................................71
3. Jvm 编译和执行的过程..........................................................................................72
4. 什么是类加载器?Java 类加载过程?描述一下 JVM 加载 Class 文件的原理机制?
........................................................................................................................................73
5. 类加载器双亲委派模型机制?.............................................................................74
6. 内存管理.................................................................................................................75
7. 垃圾回收.................................................................................................................76
8. JVM 的永久代中会发生垃圾回收么? .................................................................76
剩余164页未读,继续阅读
资源评论
- 牛站长2023-07-27这份资料的质量很高,内容全面且深入,涵盖了Java的各个方面。
- 张景淇2023-07-27里面的问题很实际,能够帮助我更好地理解Java的核心知识点。
- 那你干哈2023-07-27这个文件提供了很多有挑战性的问题,对于那些想要深入学习和应对高级Java面试的人来说很有帮助。
- 梁肖松2023-07-27这个文件收集了很多高级Java面试题,对于准备面试的人来说非常实用。
- 王向庄2023-07-27这份文件的结构很清晰,每个问题都有详细的解析,能够帮助我更好地掌握Java的核心概念。
zhangningyuxuewen
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 毕业设计,基于PyQt5实现的可视化界面的Python车牌自动识别系统源码
- 26-朴素贝叶斯分类.rar
- 没有安Matlab 也可以 生成FIR抽头系数工具.py
- python烟花代码.rar
- 实验目的: 1.构建基于verilog语言的组合逻辑电路和时序逻辑电路; 2.掌握verilog语言的电路设计技巧 3.完成如
- 扩展卡尔曼滤波matlab仿真
- 3_base.apk.1
- 躺赢者PRO飞控常见典型问题合集(续一)无名小哥 余义 20240501待修
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功