├── README.md ├── book ├── Redis开发与运维.pdf └── 深入理解Java虚拟机:JVM高级特性与最佳实践周志明.pdf ├── doc ├── Dubbo.md ├── RabbitMQ.md ├── Redis开发与运维.md ├── mysql.md └── 深入理解Java虚拟机:JVM高级特性与最佳实践.md └── docimages ├── Dubbo.png ├── IO.png ├── JVM虚拟机.png ├── Linux.png ├── Mysql精华总结+面试100问.png ├── RabbitMq.png ├── Redis.png └── java并发编程之美.png /README.md: -------------------------------------------------------------------------------- 1 | # JavaLearning 2 | 3 | #### 春招、秋招、实习java后端开发基础面试必备 4 | 5 | #### 记录java后端学习笔记,主要是经典书籍的脑图。 6 | 7 | 8 | 9 | 图片本身较大,网页查看不清晰,建议下载到本地阅读 10 | 11 | ### 1.java基础问题 12 | 13 | 14 | 15 | + [Mysql精华总结+面试100问](docimages/Mysql精华总结+面试100问.png) 16 | 17 | + [面试必问JVM虚拟机](./doc/深入理解Java虚拟机:JVM高级特性与最佳实践.md) ([原书pdf](./book/深入理解Java虚拟机:JVM高级特性与最佳实践周志明.pdf)) 18 | 19 | + [Redis缓存中间件](./doc/Redis开发与运维.md) ([原书pdf](./book/Redis开发与运维.pdf)) 20 | 21 | + [Dubbo框架](./doc/Dubbo.md) 22 | 23 | + [RabbitMQ](./doc/RabbitMQ.md) 24 | 25 | 26 | 27 | ### 2.实习Java后端面经分享: 28 | 29 | #### 跟谁学 30 | 31 | + **聊一聊Jvm内存区域?每个区域的作用** 32 | 33 | + **类加载的过程?** 34 | 35 | 我们所说的类的加载过程是指JVM虚拟机把class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。 36 | 37 | + **为什么要将永久代PermGen替换为元空间MetaSpace?** 38 | 39 | 1.整个永久代有一个 JVM 本身设置固定大小上限,无法进行调整,而元空间使用的是直接内存,受本机可用内存的限制,虽然元空间仍旧可能溢出,但是比原来出现的几率会更小。 40 | 41 | 当你元空间溢出时会得到如下错误: `java.lang.OutOfMemoryError: MetaSpace` 42 | 43 | 你可以使用 `-XX:MaxMetaspaceSize` 标志设置最大元空间大小,默认值为 unlimited,这意味着它只受系统内存的限制。`-XX:MetaspaceSize` 调整标志定义元空间的初始大小如果未指定此标志,则 Metaspace 将根据运行时的应用程序需求动态地重新调整大小。 44 | 45 | 2.元空间里存放的是类的元数据,这样加载多少类的元数据就不由MaxPermSize控制了,而是由系统的实际可用空间来控制这样就能加载很多类了。 46 | 47 | + **Mysql主键索引和唯一索引的区别?为什么主键索引比唯一索引速度快?** 48 | 49 | + **Redis中zsort底层的实现?** 50 | 51 | + **TCP三次握手的过程?要求详细介绍。** 52 | 53 | 需要了解的信息: 54 | 55 | 56 | 57 | + **Mybatis创建连接的过程?** 58 | 59 | + **反射机制?java如何实现动态代理?** 60 | 61 | + **HashMap底层原理?为什么采用红黑树而不是平衡二叉树?** 62 | 63 | 最主要的一点是: 64 | 65 | 在CurrentHashMap中是加锁了的,实际上是读写锁,如果写冲突就会等待, 66 | 如果插入时间过长必然等待时间更长,而红黑树相对AVL树他的插入更快! 67 | 68 | (1)AVL以及红黑树是高度平衡的树数据结构。它们非常相似,真正的区别在于在任何添加/删除操作时完成的旋转操作次数。 69 | 70 | (2)两种实现都缩放为 O(lg N),其中N是叶子的数量,但实际上AVL树在查找密集型任务上更快:利用更好的平衡,树遍历平均更短。另一方面,插入和删除方面,AVL树速度较慢:需要更高的旋转次数才能在修改时正确地重新平衡数据结构。 71 | 72 | + 计算二叉树的最大高度?要求递归实现 73 | 74 | 75 | 76 | 快手一面:判断一个整数是否是回文数字 77 | 78 | 爱奇艺算法:快排、单例、菲波那切数列、全排列 79 | 80 | 快手:中序遍历非递归算法 81 | 82 | 百度:链表求和 83 | 84 | 字节:树中的最大路径,从任意节点开始(或者是是否存在路径和等于一个整数n) 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /book/Redis开发与运维.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/book/Redis开发与运维.pdf -------------------------------------------------------------------------------- /book/深入理解Java虚拟机:JVM高级特性与最佳实践周志明.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/book/深入理解Java虚拟机:JVM高级特性与最佳实践周志明.pdf -------------------------------------------------------------------------------- /doc/Dubbo.md: -------------------------------------------------------------------------------- 1 | # Dubbo 2 | 3 | ![](../docimages/Dubbo.png) -------------------------------------------------------------------------------- /doc/RabbitMQ.md: -------------------------------------------------------------------------------- 1 | # RabbitMq 2 | 3 | ![](../docimages/RabbitMq.png) -------------------------------------------------------------------------------- /doc/Redis开发与运维.md: -------------------------------------------------------------------------------- 1 | # Redis开发与运维 2 | 3 | ![](../docimages/Redis.png) -------------------------------------------------------------------------------- /doc/mysql.md: -------------------------------------------------------------------------------- 1 | # mysql面试必备基础知识 2 | 3 | ![](../docimages/Mysql精华总结+面试100问.png) -------------------------------------------------------------------------------- /doc/深入理解Java虚拟机:JVM高级特性与最佳实践.md: -------------------------------------------------------------------------------- 1 | # 深入理解Java虚拟机:JVM高级特性与最佳实践 2 | 3 | ![]()![JVM虚拟机](../docimages/JVM虚拟机.png) -------------------------------------------------------------------------------- /docimages/Dubbo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/docimages/Dubbo.png -------------------------------------------------------------------------------- /docimages/IO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/docimages/IO.png -------------------------------------------------------------------------------- /docimages/JVM虚拟机.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/docimages/JVM虚拟机.png -------------------------------------------------------------------------------- /docimages/Linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/docimages/Linux.png -------------------------------------------------------------------------------- /docimages/Mysql精华总结+面试100问.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/docimages/Mysql精华总结+面试100问.png -------------------------------------------------------------------------------- /docimages/RabbitMq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/docimages/RabbitMq.png -------------------------------------------------------------------------------- /docimages/Redis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/docimages/Redis.png -------------------------------------------------------------------------------- /docimages/java并发编程之美.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leiqing110/JavaLearing/9fbb93e79e26873f1549921ac14b62eb6cf0580c/docimages/java并发编程之美.png --------------------------------------------------------------------------------