自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 summary:缓存穿透,缓存击穿,缓存雪崩以及对应solution

1.缓存穿透:如果客户端请求查询的值是redis和数据库都没有的,但是客户端,一直恶意请求,并且恶意请求并发量过大,会导致数据库压力过大,这样可能会导致数据库宕机。解决方法:空值缓存,布隆过滤(hash过滤)2.缓存击穿:如果客户端经常请求一个值,但是这个值在redis中是有时间限制的,如果在时间过期的时候,突然进来很多流量,那么就会导致同时查询数据库的量过大,数据库压力过大,可能会宕机。解决方法:互斥锁,逻辑过期。3.缓存雪崩:由于redis中数据设置有效时间的很多一致性,可能会导致大量数据在同一时间过

2022-12-06 23:40:10 222 1

原创 分布式下发挥各个语言的优势(王者荣耀举例)

在需要性能的地方,比如游戏场景中的游戏逻辑处理,这个时候往往对性能要求比较高,因此我们可以采用c++,可以发挥出c++的性能优势。在对海量用户数据处理的时候,比如游戏界面登录,英雄数据,金币数据等采用Java或者go语言更具有优势。而在面对人脸识别,英雄推荐等人工智能场景的时候,采用python比较合适,所以在分布式的场景下,各个语言都有其应用场景。分布式可以将各个计算机语言优势发挥出来,

2022-09-09 00:31:59 1027

原创 super计时器,不受时间长度影响的计时器,一年是8ms的误差,十年也是8ms误差。

几乎 没有延迟,利用循环,如果当前时间-开始时间=目标时间,就退出循环。不受时间长度影响的计时器,一年是8ms的误差,十年也是8ms误差

2022-06-24 23:54:54 190

原创 对称矩阵的压缩(java演示),写了压缩函数大量注释,解压注释,不想写了,反过来就对了。然后我针对无向图对称矩阵的压缩做了专门的处理,因为无向图的对角线都是0,然后转门针对无向图的解压没写。太累了。

package com.data_struct.map;//两个版本,一个用于所有对称矩阵的压缩,一个用于无向图的矩阵压缩public class Symmetric_matrix_compress{ public static void main(String[] args) { //测试:matrix为对称矩阵 int[][] matrix ={{0, 1, 1, 1, 0, 0}, {1, 0,.

2022-01-15 21:07:31 203

原创 关于指针和引用的一些感想,为什么指针用好了是大杀器。时四两拨千斤。

很多人喜欢纠结指针和引用的区别,而且对他们的理解不到位。那如何解决这个问题呢?就必须回到内存中去看!在内存中,指针和引用没有区别!!!程序中不管你用指针还是引用,经过编译器编译后在内存中都是一个地址!!没错,都是一个地址。所以说白了,他们是一个东西!!!唯一的区别就是书写的区别!!其他没有任何区别。不管你用指针还是引用都会编译器编译为地址!那好!下一个问题,指针为什么用好了是大杀器!这个问题得回到指针本身的作用去看。指针就是地址,通过这个地址可以找到我们所需要的数据。意思是不管这个数据有

2021-12-28 22:40:21 349

原创 关于中序线索二叉树网上的一些教程和一些教材代码的问题(java演示)

老规矩,看代码,代码中标注了很多书上和网上教程的一个问题!package com.data_struct.tree;public class Thread_binary_tree{ public static void main(String[] args) { int[] a = {1, 2, 3, 4, 5, 6, 7,}; //a1节点 threadBinaryTree tbf = new threadBinaryTree(a

2021-12-28 22:20:35 264

原创 如何将数组转换为二叉树存储,Java代码实现

1.今天突发奇想,想将一个一维数组转换为二叉树存储,花了一下午的时间思考,得出的代码,代码还不是最终版本,我感觉可以简化,但是可以实现基本功能,能基本实现将一个一维数组转换为二叉树存储。2.代码如下:其中有详细解释,后续我会补充先序,中序,后序,层次遍历。package com.data_struct.tree;public class Binary_tree{ public static void main(String[] args) {

2021-12-16 23:09:32 1763

原创 (双向循环链表)通过判断插入位置是离头节点和尾节点谁更近,让遍历节点是顺序移动还是逆序移动,来更快到达目标位置。来提升一倍插入删除性能.(java演示)

package com.data_struct.table;public class doubleCyclicLinkTable{ public static void main(String[] args) { doubleCycLinTa d=new doubleCycLinTa(); d.isEmpty(); //增加值 d.addValue(1); d.addValue(2); d.

2021-11-28 23:43:40 236

原创 循环队列(java演示)在不牺牲一个空间的情况下,同时不采用求模运算,如何实现,并且提高性能

package com.data_struct.queue;public class circle_queue{ public static void main(String[] args) { circle_queue1 cq = new circle_queue1(5); cq.inqueue(1); cq.inqueue(1); System.out.println(cq.queueLengt.

2021-11-25 17:31:06 398

原创 Java和c++中对象创建的区别

存储区别c++中可以将对象创建在栈区或者堆区,既可以静态创建,也可以通过new方法动态创建。而Java是一种纯面向对象语言,它不能在栈区存储对象数据,只能通过new方法在堆区创建。c++栈区创建(java不支持)在对象创建时,对象数据由编译器自己连续存储在栈区中堆区存储(Java和c++都支持)...

2021-11-05 18:21:46 767

原创 代码复用的选择方式问题(继承和组合)

类和类的关系泛化(继承)泛化耦合度最高,继承的语义是a类和b类是一种!!!!!!不推荐用来关联(组合,复合)a作为b的一个成员依赖作为函数的一个参数,耦合度较低,两个类之间是合作关系。谈实现代码复用选择继承和组合方式的问题继承的本质是两个类是一种事物,父类的变化意味着子类的变化,耦合度极高,如果仅仅是为了代码的复用,不建议采用继承。而采用组合,组合的本质是有一个,也可以达到复用代码的目的。但是这极大的降低了模块之间的耦合度。体现了设计原则中的组合复用原则。该原则本质上是隔离两

2021-10-23 12:19:42 181 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除