
Java基础
文章平均质量分 72
Seajunnn
hust 软件工程
展开
-
ArrayList线程安全问题以及解决方案
1. 多线程下的ArrayListpublic class ConcurrentArrayList { public static void main(String[] args) throws InterruptedException { List<Integer> list = new ArrayList<>(); Runnable runnable = () -> { for (int i = 0; i原创 2022-04-23 16:09:10 · 9686 阅读 · 0 评论 -
实现一个简易的hashmap
hashmap结构图如图所示:由于红黑树实现的复杂性,本次就只实现一个链表+Entry table的hashmap先定义接口:/** * @author xsj * @create 2022-03-17 22:45 */public interface MyMap<K, V> { V put(K key, V val); V get(K key); interface Entry<K, V> { K getKey();原创 2022-04-09 21:30:28 · 1077 阅读 · 0 评论 -
java中浅拷贝与深拷贝的理解
1为什么要克隆?克隆的对象可能已经包含一些已经修改过的属性,保留着你想克隆对象的值,而new出来的对象的属性全是一个新的对象,对应的属性没有值,所以我们还要重新给这个对象赋值。即当需要一个新的对象来保存当前对象的“状态”就靠clone方法了,那么我把这个对象的临时属性一个一个的赋值给我新new的对象不也行嘛?可以是可以,但是一来麻烦不说,二来,大家通过上面的源码都发现了clone是一个native方法,就是快啊,在底层实现的。克隆究竟是什么?先来回忆为一个包含对象引用的变量建立副本时会发生什么 。原原创 2021-07-13 17:49:54 · 955 阅读 · 0 评论