
计算机底层
Gen邓艮艮
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
计算机中常见编码中英文占用字节数:ASCII、GBK、Unicode的UTF-8编码格式
一个英文占用1个字节。一个中文占用3个字节。原创 2025-05-14 15:06:58 · 453 阅读 · 0 评论 -
HashSet简介及底层原理
JDK8以后,当链表长度超过8,而且数组长度大于等于64时,自动转换为红黑树。创建一个默认长度16,默认加载因子0.75的数组,数组名table。如果位置不为null,表示有元素,则调用equals方法比较属性值。判断当前位置是否为null,如果是null直接存入。JDK8以前:新元素存入数组,老元素挂在新元素下面。比较结果一样就不存,不一样就存入数组中,形成链表。根据元素的哈希值跟数组的长度计算出应存入的位置。JDK8以后:新元素直接挂在老元素下面。原创 2025-05-12 15:29:14 · 291 阅读 · 0 评论 -
二叉树、二叉查找树、二叉树遍历、平衡二叉树、红黑树及其自旋规则、B-Tree、B+Tree
确定支点:从添加的节点开始,不断的往父节点找不平衡的节点。红黑树在添加节点的时候,添加的节点默认是红色的。规则:任意节点左右子树高度差不超过1。把支点左旋降级,变成左子结点。平衡二叉树需要旋转的四种情况。自旋(以左旋为例子)原创 2025-05-12 14:55:57 · 383 阅读 · 0 评论 -
ArrayList底层源码和LinkedList底层源码
如果一次添加多个元素,1.5倍还放不下,则新创建数组的长度以实际为准。利用空参创建的集合,在底层创建一个默认长度为0的数组。添加第一个元素时,底层会创建一个新的长度为10的数组。存满时,会扩容1.5倍。原创 2025-05-12 11:50:17 · 187 阅读 · 0 评论 -
Java内存分配
栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行。本地方法栈:JVM在使用操作系统功能的时候使用,和我们开发无关。堆:存储对象或者数组,new创建的,都存储在堆内存。方法区:存储可以运行的class文件。寄存器:给CPU使用,和我们开发无关。原创 2025-05-08 16:57:39 · 161 阅读 · 0 评论 -
计算机原码、反码、补码及其与、或、移位操作
原创 2025-04-11 15:43:00 · 192 阅读 · 0 评论