获得徽章 0
聚簇索引不是一种索引类型,而是一种数据存储方式。我理解的是:是否为聚簇索引实际上指的就是b+树的具体实现方式,也就是每个节点的data区域存放什么东西。究竟是放的具体数据,还是指针地址
评论
咋个这么难啊,连AI机器人都懵圈
票于2023-03-04 15:38发布的图片
票于2023-03-04 15:38发布的图片
票于2023-03-04 15:38发布的图片
票于2023-03-04 15:38发布的图片
票于2023-03-04 15:38发布的图片
票于2023-03-04 15:38发布的图片
票于2023-03-04 15:38发布的图片
评论
HashMap会造成内存泄露吗?什么情况?有什么解决办法呢?

1. 会的,当在一些缓存场景下,在缓存中通常会将对象作为键存储,当该对象不在被使用时,但是由于强引用的存在(map.put(对象,值)),其对应的键却无法从缓存中移除,从而导致内存泄露。
HashMap map = new HashMap();
Person person = new Person("张三",23);
map.put(person, 'haha');
如果此时对象不在被使用:person = null;
但是JVM还是不会被回收,因为它还被HashMap的键给强引用着,所以persson这个对象不会被回收。
2. 解决:
可以使用WeakHashMap,其使用的是弱引用,可以允许JVM在合适的时机回收这些键所对应的对象。

实际中使用WeakHashMap需要注意什么???[谢谢]
展开
评论
Vector和ArrayList有什么区别呢?

1. 线程安全方面:
Vector是线程安全的,所有方法都使用了synchronized关键字进行同步,而ArrayList不是线程安全的。
2. 扩容策略方面:
Vector默认每次扩容会增加一倍的容量,而ArrayList默认每次扩容会增加50%的容量
3. 性能方面:
由于Vector的同步机制,它的性能比ArrayList差,在单线程环境下,ArrayList的性能比Vector好。
在多线程环境下,Vector的性能可能会更好,因为他的同步机制可以保证数据一致性。
还有其他没考虑到的吗???[发呆]
展开
3
ConcurrentHashMap为什么键和值不允许为空?

我认为:
由于ConcurrentHashMap是支持并发的,由于键值为null,就无法表示某个键对应的实际值到底是null,还是该键不存在,所以Java中提供了一个特殊对象"null表示空值,当有两个线程同时操作该集合时,会导致数据的不一致性。如果官方想解决这种问题可能会增加程序的复杂性吧。
欢迎有见解的大佬留下足迹[呲牙]
展开
8
你能说出几种遍历集合元素的方式?

1. 使用for循环
2. 使用增强的for循环(也称为for-each)
3. 使用迭代器
4. 使用Stream
5. 还有吗????
展开
4
#新人报道# 在并发环境中有几种方式使用ArrayList?

1. 我们可以自己使用锁操作来控制操作ArrayList方法
2. 可以通过Collections.synchronizedList()将ArrayList转换成同步的集合
(原理:将ArrayList封装成一个同步的集合类,这个集合里操作方法都是synchronized关键字修饰来保证并发的)
3. 使用CopyOnWriteArrayList集合类,它是一种线程安全的并发集合,可以避免并发修改异常
(原理:该类种方法里面通过ReentrantLock锁lock,unlock来防止并发)
展开
1
赞了这篇沸点
早安,热干面
草原牧马人于2020-11-03 07:51发布的图片
草原牧马人于2020-11-03 07:51发布的图片
53
赞了这篇沸点
😂周五晚上加班到凌晨2点左右,正常上班是8.30,周六9点多来的公司,改了一天bug,为1号的上线做准备工作。1号正常是休息日,手机睡觉的时候习惯性关机,1号醒来已经是11点了,微信里10几个语音通话,后面给领导回了一个电话,领导说这个关键时刻你还关机?然后在家处理了一个小问题。今天来上班,我现在有点慌😢
19
赞了这篇沸点
整整摸了一个星期鱼,写周报是我最忙的时候
4
下一页