随笔分类 -  数据结构和算法

java object多大 java对象内存模型 数组有多长(九)多线程2-发现问题
摘要:背景: 多线程与单线程byte模式有误差,而且多线程每次跑出来不一样 发现: 1多线程的代码一个线程一个执行是好的,证明Lists没问题 2set多线程单线程没有误差,意味着除了byte那一块代码,其他的代码是可被信任的 3单线程5000以下没有hash冲突时:byte==set==apache== 阅读全文

posted @ 2024-06-21 23:38 silyvin 阅读(2) 评论(0) 推荐(0) 编辑

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

posted @ 2024-06-19 15:13 silyvin 阅读(3) 评论(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 阅读(7) 评论(0) 推荐(0) 编辑

解决hash冲突方法
摘要:1 开放定址 1)线性 ( hash(key)+i) % L jdk threadlocalmap ThreadLocal内存泄漏问题实践(二) 原因: threadlocal冲突可能性低,threadlocal对象的hash:ThreadLocal内存泄漏问题实践(二) 链表 、树删除性能低 2) 阅读全文

posted @ 2019-11-11 17:17 silyvin 阅读(326) 评论(0) 推荐(0) 编辑

redis bitmap
摘要:https://www.cnblogs.com/devilwind/p/7374017.html Redis Bitmaps Redis允许使用二进制数据的Key(binary keys) 和二进制数据的Value(binary values)。Bitmap就是二进制数据的value。Redis的 阅读全文

posted @ 2019-11-07 17:50 silyvin 阅读(1145) 评论(0) 推荐(0) 编辑

布隆过滤器解决url黑(白)名单
摘要:原理同ip白名单,不同点有两个: (1)所有ipv4元素加起来长度为2^32 = 4g,而url hash的长度为Int.max+1 = 2^31-1 +1 =2g (2)hash冲突 ********************************************************* 阅读全文

posted @ 2019-11-07 16:51 silyvin 阅读(1655) 评论(0) 推荐(0) 编辑

手写阻塞队列
摘要:package Method; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /** * Created by joyce on 2019/10/25. */ 阅读全文

posted @ 2019-10-25 17:59 silyvin 阅读(535) 评论(0) 推荐(0) 编辑

手写链表
摘要:输出: 1234123133nulljava.lang.RuntimeException at Method.MyLink.remove(MyLink.java:75) at Method.MyLink.main(MyLink.java:58) at sun.reflect.NativeMethod 阅读全文

posted @ 2019-10-25 17:57 silyvin 阅读(201) 评论(0) 推荐(0) 编辑

ip白名单算法(pdd活跃用户)
摘要:https://www.hellojava.com/a/76003.html 1)用ip地址字符串hash,显然太low 2)ip地址字符串转换为long(int存不了那么多,unsigned int 可以),ipv4总共2^32个(4g=2^2*2^10*2^10*2^10=4*1024^3),一 阅读全文

posted @ 2019-10-24 14:28 silyvin 阅读(944) 评论(0) 推荐(0) 编辑

桶排序解决大数据排序
摘要:大数据无法一次载入内存,所以分桶文件做一次次分割 以整数为例,如果是整数排序,32位,总共有2^32个桶,每个桶以整型(4字节)计数(计数排序) 2^10 * 2^10 * 2^10 *2^2 * 4 * 字节=16G,需要16g内存,才能对一个整数数组计算中位数,假设现在1g可用内存,需要将桶的数 阅读全文

posted @ 2019-09-30 18:04 silyvin 阅读(828) 评论(0) 推荐(0) 编辑

单链表 环
摘要:问题4 带环链表的长度是多少 问题2知道环的长度,问题3知道环外边的长度。两者相加即为总长度。 阅读全文

posted @ 2019-09-19 12:18 silyvin 阅读(121) 评论(0) 推荐(0) 编辑

二叉树深度遍历和广度遍历
摘要:https://blog.csdn.net/weixin_39912556/article/details/82852749 package Method; import java.util.ArrayDeque; import java.util.Deque; import java.util.Q 阅读全文

posted @ 2019-09-11 12:06 silyvin 阅读(702) 评论(0) 推荐(0) 编辑

[专项]数组面试算法题(yet)
摘要:《剑指offer》之数组专题 此文乃本人把《剑指offer》的算法题都做完之后的总结文章,用于本人复习与同仁们交流。 (一).二维数组中的查找 ok 【题目】在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判 阅读全文

posted @ 2018-05-06 14:55 silyvin 阅读(396) 评论(0) 推荐(0) 编辑

4种排序实践
摘要:/** * 二分查找 * @param group * @param left * @param right * @param target * @return */ public static i... 阅读全文

posted @ 2018-05-06 10:05 silyvin 阅读(191) 评论(0) 推荐(0) 编辑

[专项]链表面试题汇总
摘要:——单链表反转(两种)(剑指offer,题16) 顺序的ok 递归的nok ——查找单链表中的中间结点 两个指针,一个走一步,一个走2步,走2步的那个null,则停止 ok ——查找单链表中的倒数第k个结点(剑指offer,题15) 两个指针 ,一个先走,再同时走,先走的那个null了,则停止 ok 阅读全文

posted @ 2018-04-30 10:52 silyvin 阅读(258) 评论(0) 推荐(0) 编辑

选择排序
摘要:https://mp.weixin.qq.com/s?__biz=MzU1MDE4MzUxNA==&mid=2247483999&idx=1&sn=8644e3510ed96a89a8251850ad7e662d&chksm=fba5356accd2bc7cf4631... 阅读全文

posted @ 2018-04-05 17:05 silyvin 阅读(91) 评论(0) 推荐(0) 编辑

快速排序(基础版)
摘要:https://mp.weixin.qq.com/s?__biz=MzU1MDE4MzUxNA==&mid=2247484095&idx=1&sn=6c0d34578d7a34215335acb0da249182&chksm=fba5358accd2bc9c14a74... 阅读全文

posted @ 2018-04-05 17:01 silyvin 阅读(172) 评论(0) 推荐(0) 编辑

链表翻转的图文讲解(递归与迭代两种实现)yet
摘要:http://blog.csdn.net/FX677588/article/details/72357389 链表的翻转是程序员面试中出现频度最高的问题之一,常见的解决方法分为递归和迭代两种。最近在复习的时候,发现网上的资料都只告诉了怎么做,但是根本没有好好介绍两种方法的实现过程与原理。所以我觉得有 阅读全文

posted @ 2018-03-21 12:20 silyvin 阅读(218) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示