java
何时逸
这个作者很懒,什么都没留下…
展开
-
zookeeper保证数据的一致性。leader选举机制,监听机制
zookeeper数据一致性以及leader选举机制zookeeper数据一致性zk的数据监听机制、zk集群服务器的选举leader机制zookeeper数据一致性数据的一致通过zab协议保证数据的一致性 所有的写操作都从leader服务器操作,读操作每一台服务器都可以当leader收到一个事务后,生成个事务id,leader将此次事务提议分发给每一个follow节点,follow节点受到事务后将事务请求加入到历史队列,并向leader发送ack请求当leader收到半数以上的ack清球原创 2021-05-05 20:19:19 · 208 阅读 · 0 评论 -
SQL索引优化
创建索引第一种create index 索引名 on table 表名 (索引字段(length))第二种alter table 表名 add index 索引名 (索引字段(length))第三种create table 表名(index 索引名(索引字段))索引失效 当用 in 或者 给索引做操作的时候会失效(3)type:索引类型、类型system>const>eq_ref>ref>range>index>all ,要对type进行原创 2021-04-22 21:55:10 · 118 阅读 · 0 评论 -
GC垃圾回收机制
GC垃圾回收机制新生代对象都会存在Eden区,当Eden区满了之后就会使用minorgc’垃圾回收机制回收这些对象,同时年代加加1会将对象存入survivor区,当survivor区满了也会调用minor gc回收对象,当年代超过15次之后,会将对象放入到老年代区,老年代满了之后,调用full gc 但当老年代满了且里面都存在有用的对象时,此时不能回收,此时就造成了内存泄露...原创 2021-04-17 18:23:26 · 90 阅读 · 0 评论 -
jvm运行时数据区模型
jvm运行时内存模型堆存放的是 新创建出来的对象。这一块对jvm性能影响很大,垃圾回收机制也是在一块进行处理的。线程栈每一个线程都有一个单独的线程栈,当cpu调用某一个线程的时候,会给这个线程分配一块内存,一个线程会根据这个class 不同的方法会有不同的栈帧,jvm只能压入和弹出栈帧两种操作,当调用一个方法的时候压入栈帧方法结束时弹出栈帧栈帧每一个方法都有自己的栈帧,栈帧内又分布操作数栈、局部变量表、动态链接、方法出口局部变量表,就是存的是每一个变量的值,操作数栈 就是将局原创 2021-04-17 17:48:26 · 58 阅读 · 0 评论 -
synchronized底层实现
synchronized底层实现synchronized依赖casCAS、 Compare and swap 比较和替换比较和替换cas操作有三个参做(变量位置 期望的变量,新的值)其中张三就是一个线程 卫生间的门上的锁就是此处的锁 卫生间就是众多线程要访问的对象synchronized底层其实是一个锁升级的过程,无锁:当没有线程访问一个对象的时候,此时是无锁状态,偏向锁:当有一个线程访问这个对象的时候(将自己的线程id存到对象头markword里面),锁升级为偏向锁,或者自原创 2021-04-14 22:34:16 · 64 阅读 · 0 评论 -
volatile底层实现
synchronized 底层实现代码层级加synchronized 关键字,锁定的是一个对象虚拟机层级依靠CAS(Compare and swap)比较和替换,实现锁机制什么是cas 上图就是cas操作,cas包含三个操作数(对象所在的位置,期望的值、要更新的值)cas是原子操作 张三就是线程 卫生间门上的锁就是此处的锁 卫生间就是对像synchronized 其实是一个锁升级的过程, 1、无锁:最开始是无锁状态 没有线程占用 此时对象头markword 的锁状态原创 2021-04-14 21:04:51 · 56 阅读 · 0 评论 -
一个对象内存分布
一个对象内存分布 一个对象分为3部分原创 2021-04-14 15:46:50 · 41 阅读 · 0 评论 -
IDEA 修改作者姓名后 原来的黑粗体 变细了 怎么解决
IDEA 修改作者姓名后 原来的黑粗体 变细了 怎么解决原来的名字是黑粗体的,现在都没有以前那么直观的看到自己提交的代码了求大神解决 万分感谢!!!!!!...原创 2020-04-28 15:02:08 · 305 阅读 · 1 评论 -
null 、 " "、 isEmpty三者的区别
null是没有分配内存空间是无值无空间,‘’ ''是分配了内存空间是一种相对的空,isEmpty是分配了内存空间,但是没有值是绝对的空。原创 2019-12-05 10:20:39 · 277 阅读 · 0 评论 -
linux tail命令
tail -n 100 filename 从100行看代码tail -n -100 filename 显示filename最后20行tail -100f 同tail -n -100 filenametail 100 同· tail -n 100 filename原创 2019-12-02 16:17:03 · 160 阅读 · 0 评论 -
如何使用Data注解
@Data去除一些重复的get,set方法,不用自己去class类里面手写@Data自动会帮助我们写好1.需要官网下载jar包https://projectlombok.org/download4最重要的是需要在maven中引入org.projectlomboklombok1.18.4provided...原创 2019-12-02 16:11:09 · 425 阅读 · 0 评论