java object多大 java对象内存模型 数组有多长(十一)分段锁

摘要: 重新回用IdentityHashmap,jdk没有并发版本,需要自己锁 借鉴ConcurrentHashmap 1.7的做法 , 加分段锁 以idendityhashcode为锚点 阅读全文
posted @ 2024-07-10 09:38 silyvin 阅读(1) 评论(0) 推荐(0) 编辑

java object多大 java对象内存模型 数组有多长(十)放弃解决hash冲突

摘要: java object多大 java对象内存模型 数组有多长(九)多线程2 中并没有什么好的办法,也make sense,毕竟压缩了数据 所以还是试图从数据特征入手 需要计算的大对象 80%的都是Double,所以剔除掉Double的逻辑判断 首先,重要结论,java object多大 java对象 阅读全文
posted @ 2024-06-25 15:47 silyvin 阅读(1) 评论(0) 推荐(0) 编辑

intern(二)什么东西会被intern

摘要: 1 String list class private String x = "xx"; 直接指到既有对象 2 Integer list class private Integer = 127 127 intern 128 no intern 3 Double list class private 阅读全文
posted @ 2024-06-25 15:12 silyvin 阅读(1) 评论(0) 推荐(0) 编辑

IdentityHashMap与常用的HashMap的区别

摘要: IdentityHashMap与常用的HashMap的区别是: 前者比较key时是“引用相等”而后者是“对象相等”,即对于k1和k2,当k1==k2时,IdentityHashMap认为两个key相等,而HashMap只有在k1.equals(k2) == true 时才会认为两个key相等。——— 阅读全文
posted @ 2024-06-21 23:39 silyvin 阅读(4) 评论(0) 推荐(0) 编辑

java object多大 java对象内存模型 数组有多长(九)多线程2-发现问题

摘要: 背景: 多线程与单线程byte模式有误差,而且多线程每次跑出来不一样 发现: 1多线程的代码一个线程一个执行是好的,证明Lists没问题 2set多线程单线程没有误差,意味着除了byte那一块代码,其他的代码是可被信任的 3单线程5000以下没有hash冲突时:byte==set==apache== 阅读全文
posted @ 2024-06-21 23:38 silyvin 阅读(1) 评论(0) 推荐(0) 编辑

java object多大 java对象内存模型 数组有多长(八)多线程cas

摘要: 0 背景 在 java object多大 java对象内存模型 数组有多长(四)已经访问的对象记录优化 中,用byte数组处理,现在它将暴露在多线程中 借鉴concurrenthashmap的做法 Unsafe控制ConcurrentHashMap内并发数组元素的可见性 1双检分段锁 get if 阅读全文
posted @ 2024-06-19 15:13 silyvin 阅读(1) 评论(0) 推荐(0) 编辑

java object多大 java对象内存模型 数组有多长(七)偏向锁

摘要: https://blog.51cto.com/u_15082395/2590044 深度解析默认 hashCode() 的工作机制 biased object是偏向锁定的结果。这个功能获得了专利,自HotSpot 6开始引入,用来降低对象锁定带来的开销。由于具体实现依赖CPU原子指令(CAS),因此 阅读全文
posted @ 2024-06-18 16:55 silyvin 阅读(2) 评论(0) 推荐(0) 编辑

java object多大 java对象内存模型 数组有多长(六)identityhashcode究竟是什么?内存地址?

摘要: https://cloud.tencent.com/developer/article/1622192 java默认的hashcode方法到底得到的是什么? 在hashCode方法注释中,说hashCode一般是通过对象内存地址映射过来的。 As much as is reasonably prac 阅读全文
posted @ 2024-06-18 13:12 silyvin 阅读(1) 评论(0) 推荐(0) 编辑

java object多大 java对象内存模型 数组有多长(五)identityhashcode会变吗

摘要: 1 https://stackoverflow.com/questions/7207302/if-javas-garbage-collector-moves-objects-what-is-object-hashcode-and-system-id I've often heard that the 阅读全文
posted @ 2024-06-17 17:43 silyvin 阅读(1) 评论(0) 推荐(0) 编辑

java object多大 java对象内存模型 数组有多长(四)已经访问的对象记录优化

摘要: 800*0.8*8*1400w = 66.76GB 光存那些Double指针花了那么多 优化方案: 1 Double(Long Integer)类型除了0,默认未访问,允许重复计算 String类型length超过50默认未访问,允许重复计算 2 借鉴 ip白名单算法(pdd活跃用户) 存对象地址h 阅读全文
posted @ 2024-06-17 11:27 silyvin 阅读(1) 评论(0) 推荐(0) 编辑