- 博客(6)
- 收藏
- 关注
原创 学习笔记: 伪:JavaWeb,真:乱炖
学习完了JVM之后想了解一下Spring相关内容,发现构建Spring很简单,因为有SpringBoot可以快速start,
2024-12-02 15:26:59
154
原创 学习笔记:JVM
应用程序可以通过继承ClassLoader类的方式实现自己的类加载器,用于加载特定的类文件。这种由上至下的选择加载器的机制,称之为。
2024-11-26 13:33:50
432
原创 学习笔记:红黑树
红黑树的主要特点是它通过一系列旋转和重新着色操作来保持树的平衡,从而确保树的高度大致为对数级别,这使得树的查找、插入和删除操作的时间复杂度为 O(log n)。查找(Search):红黑树保持了二叉搜索树的性质,即任何节点的左子树中的值都小于该节点的值,右子树中的值都大于该节点的值。插入(Insertion):当新节点被插入时,它会被涂成红色,然后通过一系列的旋转和重新着色操作来恢复红黑树的性质。每个红色节点的两个子节点都是黑色(从每个叶子到根的所有路径上不能有两个连续的红色节点)。
2024-11-26 11:35:25
244
原创 学习笔记:线程安全
乐观锁:认为线程大概率不会被修改,如果被修改了,我就重新执行一次,也就是只有出现问题时,我再去执行锁的操作(只不过是自己后执行)。当数据存在于堆内存,并且多个线程访问修改时,有可能A线程进行读的过程中被B线程修改了,导致A线程出错,这就是线程不安全。final定义变量:将堆内存设置为只能读,不能修改的方式,即使多个线程同时访问,也不会有线程去修改内存中的数据。局部变量:将数据存储在栈内存,每一个线程执行的时候,会创建各自的栈内存,不会有多个线程访问。1,堆内存:这是全部线程可以共享的内存资源。
2024-11-26 10:56:57
363
原创 学习笔记:ArrayList
ArrayList 内部使用数组来存储元素,当添加的元素超过数组容量时,需要进行扩容操作。为了减少扩容操作,可以在创建 ArrayList 时指定一个合理的初始容量,或者在添加大量元素前使用 ensureCapacity 方法预先增加容量。扩容操作涉及到数组的复制,这是一个 O(n) 的操作,其中 n 是当前数组中的元素数量。因此,频繁的扩容会影响性能。如果在 ArrayList 的构造函数中指定了一个初始容量,那么在添加元素时,会根据这个初始容量进行扩容。创建一个新的数组,其容量为新计算出的新容量。
2024-11-21 10:57:47
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅