Silentdoer

导航

上一页 1 2 3 4 5 6 7 ··· 43 下一页

2023年10月31日 #

Redis集群模式incr保证原子性的原理

摘要: 1.主要是redis的key会解析到固定的主机上,比如集群上有host1,host2,host3;然后key1可能会解析后发现是要发到host2上,则在host2正常的情况下(有点像kafka rebalance;consumer处理哪些分区),key1会一直在host2上进行操作; 因此在redi 阅读全文

posted @ 2023-10-31 08:56 Silentdoer 阅读(338) 评论(0) 推荐(0) 编辑

2023年10月30日 #

Mysql数据查询逻辑

摘要: MySQL是一定有一个唯一非空索引的,如果有主键则是主键,没有主键则是用唯一键,唯一键也没有则会自动生成一个隐藏的字段作为主键;然后以这个字段作为聚簇索引; 所以比如表foo,它的每一行的所有列数据是连续的(至少每一列数据的“指针”值在行里是连续的,比如text这种列,在一行里可能只是存储的它的“指 阅读全文

posted @ 2023-10-30 18:00 Silentdoer 阅读(14) 评论(0) 推荐(0) 编辑

2023年10月25日 #

构造器模式的具体作用和setter的区别

摘要: 1.构造器模式其实没有什么神秘性,它最终实现的功能和通过先new对象,然后一行一行调用该对象的setter来设置(注意,不是初始化)该对象的属性,最终形成的对象没有区别; 2.那构造器的作用是什么呢?作用如下: 2.1和用setter初始化对象属性最大的区别在于 构造器是要求先给出 该类型所有要初始 阅读全文

posted @ 2023-10-25 12:06 Silentdoer 阅读(34) 评论(0) 推荐(0) 编辑

2023年10月18日 #

java模块化初步理解

摘要: 1.先看两个命令: jdeps HelloWorld.class HelloWorld.class -> java.base <unnamed> -> java.io java.base <unnamed> -> java.lang java.base 可以看到HelloWorld.class里只用 阅读全文

posted @ 2023-10-18 17:45 Silentdoer 阅读(26) 评论(0) 推荐(0) 编辑

jdk8的项目迁移到jdk11以上的迁移方案

摘要: 用命令: jdeprscan --release 11 my-application.jar 这里可以用jdeprscan --version看下是什么版本,我这边是17.0.5 这里先得到一个已经被jdk8编译打包好的,测试没问题的jar文件,如上面的my-application.jar 然后如果 阅读全文

posted @ 2023-10-18 17:25 Silentdoer 阅读(45) 评论(0) 推荐(0) 编辑

用jstack导出线程信息,用jmap导出线程信息和堆数据信息

摘要: jmap导出的*.hprof文件需要用jvisualvm.exe工具来查看(当然也有第三方的其他工具),jdk8之后的是不会自带了需要手动安装; jmap导出的文件里是包含了线程信息,但是没有jstack导出的多,比如jstack里还有具体等待哪个锁的信息,这个锁的对象类型,还能看到是哪个线程获得了 阅读全文

posted @ 2023-10-18 11:47 Silentdoer 阅读(403) 评论(0) 推荐(0) 编辑

2023年10月17日 #

Java初始化一个不可变的map

摘要: 用guava库: ImmutableMap<String, Object> map = ImmutableMap.<String, Object>builder().put("key1", 44).put("key2", "sfjl").build(); 这个map初始化后是不可变的(哪怕调用了pu 阅读全文

posted @ 2023-10-17 17:28 Silentdoer 阅读(72) 评论(0) 推荐(0) 编辑

为什么不建议用redis做金融级分布式锁

摘要: 最主要的问题是: 1.redis是AP而非CP的,所以在比如集群迁移等情况时可能产生两个应用在同一时间读取同一个key的数据是不一致的; 2.redis的key过期机制,可能加锁后业务执行了很长时间(STW或者IO很久)导致加锁区域的代码可能被另外一个进程/线程进来了; 3.目前金融级的分布式锁应该 阅读全文

posted @ 2023-10-17 09:35 Silentdoer 阅读(50) 评论(0) 推荐(0) 编辑

2023年10月13日 #

Dart Isolate进一步理解

摘要: var resFuture = Isolate.run(callbackFun); // 在FfiData的test方法里创建出isolate1 这个isolate1虽然和主的Isolate不共用堆内存(至少在isolate1结束前是这样),但是isolate1在创建时是能捕获在主Isolate里初 阅读全文

posted @ 2023-10-13 11:19 Silentdoer 阅读(51) 评论(0) 推荐(0) 编辑

Dart Finalizer的作用

摘要: 它和java的finalize方法有点像 /// 文件a import 'dart:ffi'; import 'package:ffi/ffi.dart'; class FfiData { /// Uint64的字节数 static const _sizeInBytes = 8; /// 要是fin 阅读全文

posted @ 2023-10-13 10:11 Silentdoer 阅读(104) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 43 下一页