图片本身较大,网页查看不清晰,建议下载到本地阅读
-
聊一聊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)