Skip to content

java后端开发基础必备+大厂实习面经总结

Notifications You must be signed in to change notification settings

leiqing110/JavaLearing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JavaLearning

春招、秋招、实习java后端开发基础面试必备

记录java后端学习笔记,主要是经典书籍的脑图。

图片本身较大,网页查看不清晰,建议下载到本地阅读

1.java基础问题

2.实习Java后端面经分享:

跟谁学

  • 聊一聊Jvm内存区域?每个区域的作用

  • 类加载的过程?

    我们所说的类的加载过程是指JVM虚拟机把class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。

  • 为什么要将永久代PermGen替换为元空间MetaSpace?

    1.整个永久代有一个 JVM 本身设置固定大小上限,无法进行调整,而元空间使用的是直接内存,受本机可用内存的限制,虽然元空间仍旧可能溢出,但是比原来出现的几率会更小。

    当你元空间溢出时会得到如下错误: java.lang.OutOfMemoryError: MetaSpace

    你可以使用 -XX:MaxMetaspaceSize 标志设置最大元空间大小,默认值为 unlimited,这意味着它只受系统内存的限制。-XX:MetaspaceSize 调整标志定义元空间的初始大小如果未指定此标志,则 Metaspace 将根据运行时的应用程序需求动态地重新调整大小。

    2.元空间里存放的是类的元数据,这样加载多少类的元数据就不由MaxPermSize控制了,而是由系统的实际可用空间来控制这样就能加载很多类了。

  • Mysql主键索引和唯一索引的区别?为什么主键索引比唯一索引速度快?

  • Redis中zsort底层的实现?

  • TCP三次握手的过程?要求详细介绍。

    需要了解的信息:

  • Mybatis创建连接的过程?

  • 反射机制?java如何实现动态代理?

  • HashMap底层原理?为什么采用红黑树而不是平衡二叉树?

    最主要的一点是:

    在CurrentHashMap中是加锁了的,实际上是读写锁,如果写冲突就会等待, 如果插入时间过长必然等待时间更长,而红黑树相对AVL树他的插入更快!

    (1)AVL以及红黑树是高度平衡的树数据结构。它们非常相似,真正的区别在于在任何添加/删除操作时完成的旋转操作次数。

    (2)两种实现都缩放为 O(lg N),其中N是叶子的数量,但实际上AVL树在查找密集型任务上更快:利用更好的平衡,树遍历平均更短。另一方面,插入和删除方面,AVL树速度较慢:需要更高的旋转次数才能在修改时正确地重新平衡数据结构。

  • 计算二叉树的最大高度?要求递归实现

    快手一面:判断一个整数是否是回文数字

    爱奇艺算法:快排、单例、菲波那切数列、全排列

    快手:中序遍历非递归算法

    百度:链表求和

    字节:树中的最大路径,从任意节点开始(或者是是否存在路径和等于一个整数n)

About

java后端开发基础必备+大厂实习面经总结

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published