Java面试
2023-08-17 19:49:09 0 举报
AI智能生成
登录查看完整内容
Java面试要点
作者其他创作
大纲/内容
工作在年轻代
单线程、拷贝算法
适合内存小
Serial
工作在老年代
单线程、标记压缩算法
Serial Old
多线程
适合内存大
1.8默认
Parallel Scavenge
Parallel Old
ParNew
并发
初始标记
三色标记算法
并发标记
重新标记
并发清理
四个阶段
CMS
常见的垃圾回收器
Subtopic
JVM
装箱:基本数据类型自动封装为包装器类型
拆箱:自动把包装器类型转化为基本数据类型
由于上述原因,Integer i1=100;Integer i2=100; i1==i2;结果为true
由于上述原因,Integer i3=200;Integeri4=200; i3==i4;结果为false
java1.5之后引入了自动装箱
拆箱/装箱
BigDecimal类的使用
Java基础
每个节点只有红和黑两种颜色
根节点和叶子节点都为黑色
红色节点的子节点必须都为黑色
从一个节点到该节点的叶子节点所有路径,都含有相同数量的黑色节点
叶子节点都是黑色
隐藏了黑色的Nil叶子节点
使用场景:Java中的TressSet和Java1.8版本中的HasnMap
这么多的限定条件是为了保证红黑树的平衡性,降低树的高度
放在内存中,针对少量的数据
不是严格的平衡二叉树(AVL)
变色
右子树的左节点转到旋转点的右子树
左旋
左子树的右节点转到旋转点的左子树
右旋
变换规则
操作
红黑树
左子树不为空,则左子树都小于根节点
右子树不为空,则右子树都大于根节点
二叉排序树
防止二叉排序树退化成链表
平衡树
M阶B树最多有M个子节点,M-1个关键字
每个节点至少有ceil(M/2)个子节点
示例
B树
最左原则
有M课子树的非叶子节点,含有M个关键字
非叶子节点仅具有索引作用
非叶子节点仅存子树中最大(或最小)的关键字
树的所有叶子节点构成一个有序链表
放在磁盘中,针对大量的数据
B+树示例
B+树
树
散列函数
如果碰撞了,按顺序向后找空闲位置存储
如果要删除某个元素,设置一个delete标记位
开放寻址
探测
每个数后边跟链表
存在问题:链表过长,查找速度变慢
链式寻址
链表
散列碰撞
当链表长度大于8时候,链表转成红黑树
JDK1.8后引入红黑树
当超过75%后,扩容一倍
初始数据量为16,装载因子为0.75
存不了大数据
线程不安全
缺点
高效:插入、查询等操作要快
内存
散列函数:根据实际情况分析
扩容:会全部重新插入一次
Hash冲突怎么解决
优点
HashMap
数据结构
corePoolSize
1.核心线程数量
maximumPoolSize
2.最大线程数
3.生存时间
4.时间单位
workQueue
5.任务队列
6.线程工厂
7.拒绝策略
七个参数
线程池
纤程/协程
Java基础知识
0 条评论
回复 删除
下一页