
进阶
文章平均质量分 68
java专栏进阶
人间风流逍遥客
这个作者很懒,什么都没留下…
展开
-
Java性能优化
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.https://metal-flat-c06.notion.site/Java-4ada8dcc63c04594af4132c497b95997原创 2022-02-11 10:11:41 · 382 阅读 · 0 评论 -
三色标记原理
https://my.oschina.net/u/3995125/blog/4535652(面试官问我 三色标记原理我直接蒙了)https://www.bilibili.com/video/BV1nA411T7W2?from=search&seid=17542793137333744742 (blibli马士兵讲解)当且仅当以下两个条件同时满足: 赋值器插入了一条或多条从黑色对象到白色对象的新引用; 赋值器删除了全部从灰色对象到该白色对象的直接或间接引用。解决的方法也是从...原创 2021-04-30 14:43:33 · 348 阅读 · 0 评论 -
redis2
一、说一下redis的应用场景https://blog.youkuaiyun.com/weixin_45505313/article/details/108562756(6.x IO多线程)Redis 6.0 中一个重大的改变就是引入了多线程IO。我们都知道 Redis 基于内存操作,几乎不存在 CPU 成为瓶颈的情况,它主要受限于内存和网络。从 Redis 自身角度来说,读写网络的 read/write 系统调用占用了 Redis 执行期间大部分 CPU 时间,瓶颈其实主要在于网络的 IO 消耗。基于.原创 2021-04-05 23:43:02 · 159 阅读 · 1 评论 -
BIO、NIO、AIO、netty浅析
文档:BIO、NIO、AIO、netty浅析.docx链接:http://note.youdao.com/noteshare?id=b727d3f38d547650a15bb891e086ec1e&sub=6004CE9DDC9B4E87932168C56FEB9C59原创 2021-03-26 13:09:00 · 107 阅读 · 0 评论 -
ActiveMQ专题
参考视频:https://www.bilibili.com/video/BV1vJ41177j1(Java基础从入门到精通ActiveMQ+企业面试题讲解)消息持久ActiveMQ提供了以下三种的消息存储方式:(1) Memory 消息存储-基于内存的消息存储。 (非持久化方案,activeMq重新启动,消息会被清空)(2) 基于日志消息存储方式,KahaDB是ActiveMQ的默认日志存储方式,它提供了容量的提升和恢复能力。(3) 基于JDBC的消息存储方式-数据存储于数据库(例如:M.原创 2021-03-05 12:42:41 · 135 阅读 · 0 评论 -
spring三级缓存解决循环引用
https://www.bilibili.com/video/BV1ET4y1N7Sp(b站视频参考)https://blog.youkuaiyun.com/u012098021/article/details/107352463/(Spring 循环依赖及三级缓存)https://blog.youkuaiyun.com/qq_36381855/article/details/79752689(Spring 如何解决循环依赖的问题)...原创 2021-03-01 23:27:41 · 197 阅读 · 0 评论 -
红黑树浅析
目录二叉搜索树红黑树红黑树的三种操作参考视频:https://www.bilibili.com/video/BV1UJ411J7CU树结构的常用术语二叉搜索树红黑树属于二叉搜索树的一个重要的分支红黑树的三种操作红黑树的查询与二叉树的查询一样插入分两部分:插入后自平衡的操作:1,变色 2,旋转...原创 2021-02-28 21:28:56 · 75 阅读 · 0 评论 -
HashMap详解
https://www.bilibili.com/video/BV1vE411v7cR(b站视频参考)https://blog.youkuaiyun.com/zs319428/article/details/81982770(HashMap的长度为什么要是2的n次方)https://blog.youkuaiyun.com/ThinkWon/article/details/104588551(Java集合容器面试题(2020最新版))https://blog.youkuaiyun.com/h1458280799/article/de原创 2021-02-28 15:23:27 · 201 阅读 · 0 评论 -
类的实例化顺序专题
https://blog.youkuaiyun.com/weixin_44606357/article/details/107682496(类的实例化顺序)执行结构:父类静态变量、 父类静态代码块、 子类静态变量、 子类静态代码块、 父类非静态变量(父类实例成员变 量)、 父类非静态块 、父类构造函数、 子类非静态变量(子类实例成员变量)、 子类非静态块 子类构造函数。类的实例化顺序 1、创建对象前一定要先加载class文件 2、static修饰的属性和方法是随着类的加载而加载的 3、因原创 2021-02-27 19:13:34 · 103 阅读 · 0 评论 -
jvm runtime data area 运行时数据区(内存分配)
目录PC 程序计数器JVM StackHeapMethod AreaRuntime Constant PoolNative Method StackDirect Memory(可不认为是jvm里的)参考:https://blog.youkuaiyun.com/qq_19979101/article/details/92414856https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/53023742、每个线程都.原创 2021-02-25 00:36:02 · 383 阅读 · 2 评论 -
Spring之事务专题
事务的四大特性(一原持久隔离)事务的传播特性参考文档:https://blog.youkuaiyun.com/Hmj050117/article/details/112690078参考视频:https://www.bilibili.com/video/BV1EE411p7dD原创 2021-02-22 23:31:55 · 105 阅读 · 0 评论 -
JUC(3)
多线程与高并发(八)原创 2021-02-22 09:38:42 · 117 阅读 · 0 评论 -
JUC(2)
多线程与高并发(七)Callable、Future、FutureTaskcallable类似于Runable --> call() 类似于 run(),但是又返回值;Future 可以理解为将来得到的一个结果,配合callable的线程。可以理解为callable本身是个任务,任务通过线程池中的线程执行,执行的结果放在Future里步骤:1)任务类实现Callable接口2)创建线程池:ExecutorService es = Executors.newCachedThre.原创 2021-02-21 20:14:47 · 420 阅读 · 1 评论 -
JVM调优(2)
垃圾回收器CMSCMS的问题:参考文档:https://www.cnblogs.com/hongdada/p/10489643.html1,内存碎片化 2,浮动垃圾1,CMS回收器采用的基础算法是Mark-Sweep,这个算法是会产生碎片的,一旦老年代的垃圾碎片多了,年轻代的就进不来了,然后就会启动paraller old回收器慢慢回收2,CMS的并发清理会产生浮动垃圾(cms无法在本次gc清除掉,这些就是浮动垃圾)JVM调优JVM常用命令行参数 区分概念:内存.原创 2021-02-15 23:36:53 · 148 阅读 · 0 评论 -
JUC(1)
并发和并行的区别https://www.zhihu.com/question/33515481原创 2021-02-15 15:02:01 · 169 阅读 · 0 评论 -
知识点
参考:https://www.bilibili.com/video/BV1g5411j7AN?p=2原创 2021-02-12 16:08:54 · 176 阅读 · 0 评论 -
ZOOKEEPER
zookeeper的官网https://zookeeper.apache.org/ZooKeeper数据保留在内存中,这意味着ZooKeeper可以实现高吞吐量和低延迟数。zookeeper的主从集群ZooKeeper只需不到200毫秒即可选出新的领导者zookeeper的存储是一个目录树结构zookeeper的分布式锁机制https://blog.youkuaiyun.com/kongmin_123/article/details/82081953zookee...原创 2021-02-12 14:13:44 · 210 阅读 · 0 评论 -
redis
redis单线程、单实例为什么效率高?https://m.php.cn/redis/424900.html引申:BIO、NIO、IO Multplexing、AsynchronousIOhttps://blog.youkuaiyun.com/lzb348110175/article/details/98941378原创 2021-02-06 22:03:50 · 1069 阅读 · 0 评论 -
JVM调优
JVM:类加载进内存linking过程的resolution解析的理解:为类、接口、方法、成员变量的符号引用定位直接引用(如果符号引用先到常量池中寻找符号,再找先应的类型,无疑会耗费更多时间),完成内存结构的布局。https://blog.youkuaiyun.com/qq_40278997/article/details/113466078...原创 2021-01-31 12:34:47 · 103 阅读 · 0 评论 -
MCA整理
JUC:LongAdder分段锁机制:LongAdder采用了分段锁,分段锁又是CAS实现的。多段并行运行,在线程数比较多的情况下,效率比较高。线程数少的情况下没什么优势。内部原理:LongAdder是在1.8之后才新加入juc里的工具,里面有一个cell数组,cell是在Striped64中的静态内部类,每个cell维护自己的value,AtomicInteger中仅维护一个全局的value,调用sum将所有cell的value和base相加就是最终的值参考文档:https://blo原创 2021-01-27 10:58:53 · 151 阅读 · 0 评论 -
i++是否线程安全
面试官问这个问题,稍微懂些答题技巧的朋友就知道回答只要是多线程执行是不安全的。那肯定是线程不安全的呀,线程安全你还问什么,手动狗头!关键是要要分析出面试官问这个问题是为了考察你什么知识点,面试官是想知道你对Java内存模型熟不熟悉。Java内存模型Java的并发采用的是共享内存模型,在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐形通信。这句话是摘自《Java并发编程的艺术》。下面我来一张图来讲下我自己对Java内存模型的理解。Java内存模型从上面图中我们可以看到线程1转载 2021-01-19 21:46:47 · 148 阅读 · 0 评论