<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Java_Zzm的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Java_Zzm</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Java_Zzm]]></copyright><item><title><![CDATA[纸上得来终觉浅-＞代码详解锁升级]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/137144145</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/137144145</guid><author>Java_Zzm</author><pubDate>Fri, 29 Mar 2024 14:46:19 +0800</pubDate><description><![CDATA[一个对象，关闭偏向锁延迟，上来他是偏向锁，这个时候两个线程不会竞争但是会交替运行，那么他会由偏向锁，变成轻量级锁，现在准备30个对象，把他放到list里面，还是两个线程没有竞争的情况，t1线程对list里面对象加锁，都会变成偏向锁，在加锁的时候。一种观点是：锁在没有竞争的情况下会是偏向锁，在遇到竞争的时候会升级成轻量级锁，再遇到竞争了这个锁会进行一定次数的自旋，当次数计满了就会升级成为重量级锁。值得一提的是，在jdk8中，偏向锁的开启是有延迟的，并不是一开启的时候就是偏向锁，而自旋锁是一开始就有的。]]></description><category></category></item><item><title><![CDATA[ip地址开发场景问题]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/137107910</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/137107910</guid><author>Java_Zzm</author><pubDate>Thu, 28 Mar 2024 13:14:00 +0800</pubDate><description><![CDATA[这种问题一般是出现在我们的项目日志中，可能想去收集某一个时间段内，或者说时某一个时间点的ip地址，或者说是想从大量数据中，选出ip地址出现次数最多的ip。大概是分为这几个问题。]]></description><category></category></item><item><title><![CDATA[jdk8中的Arrays.sort]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/137079136</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/137079136</guid><author>Java_Zzm</author><pubDate>Wed, 27 Mar 2024 15:54:47 +0800</pubDate><description><![CDATA[那么这里举了int的分析例子，最后附上一个参考表格。排序目标条件采用算法size < 47混合插入排序 (pair)size < 286双基准点快排有序度低双基准点快排有序度高归并排序byte[]size <= 29插入排序size > 29计数排序size < 47插入排序size < 286双基准点快排有序度低双基准点快排有序度高归并排序计数排序Object[]传统归并排序TimSort其中 TimSort 是用归并+二分插入排序的混合排序算法。]]></description><category></category></item><item><title><![CDATA[走进jvm之垃圾回收器篇]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/136917728</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/136917728</guid><author>Java_Zzm</author><pubDate>Thu, 21 Mar 2024 21:21:20 +0800</pubDate><description><![CDATA[这里我想首先说明一下，虽然我们经常会拿垃圾回收器来做比较，虽然想挑选一个最好的收集器出来，但是目前也没有说哪一款收集器是完美的，更不存在万能的收集器，我们也只是对收集器选择最适合场景的一个收集器。那么作者将在接下来和大家探讨一些垃圾回收器的发展历程和优缺点，相信读完这篇的你也绝对不是白花时间，不过理解的过程有点枯燥，也希望大家有耐心看完，或者进行完善。]]></description><category></category></item><item><title><![CDATA[走进redisson]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/136917336</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/136917336</guid><author>Java_Zzm</author><pubDate>Thu, 21 Mar 2024 18:57:00 +0800</pubDate><description><![CDATA[这里作者将大家走进redisson，读完这篇相信加深你对redisson的获取锁，重入，超时，看门狗，发布订阅等原理和功能的理解。本文将深入原理代码，给出每行代码的意义以及最后的效果，过程有些枯燥，但探索的过程是快乐的，同时也希望大家看的过程当中去一起去查看源码。]]></description><category></category></item><item><title><![CDATA[数据结构的美之百家争鸣-redis-dict篇]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/136786748</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/136786748</guid><author>Java_Zzm</author><pubDate>Sun, 17 Mar 2024 18:22:16 +0800</pubDate><description><![CDATA[（把创建的哈希表赋值给那个空闲的hash表，再从旧的导入空闲的里面。并且在做删，改，查的过程当中，数据要么在t1里要么再t0里并且由于数据是迁移的并不会重复，因此需要两边都要查询。在rehash过程中，新增操作，则直接写入ht[1]，查询、修改和删除则会在dict.ht[0]和dict.ht[1]依次查找并执行。这样可以确保ht[0]的数据只减不增，随着rehash最终为空。将dict.ht[1]赋值给dict.ht[0]，给dict.ht[1]初始化为空哈希表，释放原来的dict.ht[0]的内存。]]></description><category></category></item><item><title><![CDATA[数据结构的美之链表和树]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/136720305</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/136720305</guid><author>Java_Zzm</author><pubDate>Thu, 14 Mar 2024 21:13:47 +0800</pubDate><description><![CDATA[压缩列表的可以看做一种连续内存空间的"双向链表"列表的节点之间不是通过指针连接，而是记录上一节点和本节点长度来寻址，内存占用较低如果列表数据过多，导致链表过长，可能影响查询性能因为只能从头到尾或者从尾到头部查询。增或删较大数据时有可能发生连续更新问题，连锁更新可能会导致频繁的内存申请是一个节点为ZipList的双端链表节点采用ZipList，解决了传统链表的内存占用问题控制了ZipList大小，解决连续内存空间申请效率问题中间节点可以压缩，进一步节省了内存。]]></description><category></category></item><item><title><![CDATA[项目中spring security与jwt]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/136516522</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/136516522</guid><author>Java_Zzm</author><pubDate>Wed, 06 Mar 2024 21:32:20 +0800</pubDate><description><![CDATA[写这篇文章是为了记录我面试pcg时平时没有留意或者钻研的地方。]]></description><category></category></item><item><title><![CDATA[juc并发线程学习笔记(一)]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135977170</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135977170</guid><author>Java_Zzm</author><pubDate>Thu, 01 Feb 2024 16:26:31 +0800</pubDate><description><![CDATA[当 Context Switch 发生时，需要由操作系统保存当前线程的状态，并恢复另一个线程的状态，Java 中对应的概念就是程序计数器（Program Counter Register），它的作用是记住下一条 jvm 指令的执行地址，是线程私有的。单核 cpu 下，多线程不能实际提高程序运行效率，只是为了能够在不同的任务之间切换，不同线程轮流使用cpu ，不至于一个线程总占用 cpu，别的线程没法干活。多核 cpu下，每个 核（core） 都可以调度运行线程，这时候线程可以是并行的。]]></description><category></category></item><item><title><![CDATA[Spring系列学习笔记-＞Spring篇(一)]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135768602</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135768602</guid><author>Java_Zzm</author><pubDate>Thu, 01 Feb 2024 16:23:55 +0800</pubDate><description><![CDATA[本系列是学习spring很唱一段时间之后的一系列学习笔记总结，包括spring篇，springmvc篇和springboot篇。我们在项目的实际应用过程中，往往会觉得了解spring的原理没有什么用，不懂为什么，只需要会用，能用出来，发现诶，好像可以运行，结果可以出来就好了。但是往往在开发的过程中会发现，为什么这个启动类启动不了？]]></description><category></category></item><item><title><![CDATA[Mysql学习笔记系列（二）]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135743408</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135743408</guid><author>Java_Zzm</author><pubDate>Mon, 22 Jan 2024 14:04:46 +0800</pubDate><description><![CDATA[本篇是结合文章（一）继续展开，具体的一内容可以到博客里面浏览。]]></description><category></category></item><item><title><![CDATA[Mysql学习笔记系列（一）]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135735537</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135735537</guid><author>Java_Zzm</author><pubDate>Mon, 22 Jan 2024 00:56:20 +0800</pubDate><description><![CDATA[存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的，而不是基于库的，所以存储引擎也可被称为表类型。]]></description><category></category></item><item><title><![CDATA[redis优化系列(六）]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135685088</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135685088</guid><author>Java_Zzm</author><pubDate>Fri, 19 Jan 2024 00:28:00 +0800</pubDate><description><![CDATA[RedisKey的TTL记录方式：在RedisDB中通过一个Dict记录每个Key的TTL时间过期key的删除策略：惰性清理：每次查找key时判断是否过期，如果过期则删除定期清理：定期抽样部分key，判断是否过期，如果过期则删除。定期清理的两种模式：SLOW模式执行频率默认为10，每秒执行10次，每次不超过25msFAST模式执行频率不固定，但两次间隔不低于2ms，每次耗时不超过1ms。]]></description><category></category></item><item><title><![CDATA[Kafka系列(四)]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135632892</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135632892</guid><author>Java_Zzm</author><pubDate>Tue, 16 Jan 2024 19:39:50 +0800</pubDate><description><![CDATA[简介一下kafkaStream。]]></description><category></category></item><item><title><![CDATA[Kafka系列(三）]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135632173</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135632173</guid><author>Java_Zzm</author><pubDate>Tue, 16 Jan 2024 19:03:45 +0800</pubDate><description><![CDATA[本章内容继前两章1，2知识点后，开始结合java实际代码开发进行实践。其中三将讲述kafka座位消息中间件的代码样例，四将讲述kafka的stream流式计算处理。]]></description><category></category></item><item><title><![CDATA[kafka系列(二）]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135610002</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135610002</guid><author>Java_Zzm</author><pubDate>Mon, 15 Jan 2024 21:38:39 +0800</pubDate><description><![CDATA[本章承接kafka一内容，文章在本人博客主页都有，可以自行点击浏览。]]></description><category></category></item><item><title><![CDATA[Kafka系列（一）]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135609555</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135609555</guid><author>Java_Zzm</author><pubDate>Mon, 15 Jan 2024 19:56:42 +0800</pubDate><description><![CDATA[ZK服务主要用于通知生产者和消费者Kafka集群中有新的broker加入、或者Kafka集群中出现故障的broker。在一个分区中，消息是有顺序的方式存储着，每个在分区的消费都是有一个递增的id。Kafka中的主题必须要有标识符，而且是唯一的，Kafka中可以有任意数量的主题，没有数量上的限制。该系列主要是复习期间，通过浏览资料记录的一些笔记和重点，用于日常学习和学习后的总结。主题是一个逻辑概念，用于生产者发布数据，消费者拉取数据。在主题中的消息是有结构的，一般一个主题包含某一类消息。]]></description><category></category></item><item><title><![CDATA[reids优化系列（五）]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135572913</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135572913</guid><author>Java_Zzm</author><pubDate>Sat, 13 Jan 2024 17:49:25 +0800</pubDate><description><![CDATA[后面更新的这些文章是将所学的redis知识进行巩固并且分享，也希望这些知识不仅仅是用于复习面试，更能在实际的应用中起到优化的作用。有时候我们会存储一些查询多，修改少，业务逻辑较弱的数据，并且还能高效查询，那么redis就是一种选择。]]></description><category></category></item><item><title><![CDATA[redis实现延迟任务（四）]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135572663</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135572663</guid><author>Java_Zzm</author><pubDate>Sat, 13 Jan 2024 17:07:03 +0800</pubDate><description><![CDATA[这是一个添加任务，在发布文章的方法里，调用添加任务这个方法，传入对象”文章“也就是news，然后到发布时间了就会进行任务的拉取消费审核然后发布，在最后一步骤可以调用该方法，将news传入task里。这个是一个序列化和反序列化的工具，效率要比jdk高，jdk的序列化个人感觉太慢了，而序列化个人觉得就是将其转换成符合一种双方都能接收的协议，例如http协议规定的数据格式，利用json序列化也可以。四主要是接着三来接着说，文章三之前已经完成了对于任务服务的编写，其中开发了任务的创建和和删除，任务的同步等等。]]></description><category></category></item><item><title><![CDATA[redis实现任务队列(三)]]></title><link>https://blog.youkuaiyun.com/Java_Zzm/article/details/135559783</link><guid>https://blog.youkuaiyun.com/Java_Zzm/article/details/135559783</guid><author>Java_Zzm</author><pubDate>Fri, 12 Jan 2024 19:05:43 +0800</pubDate><description><![CDATA[这个三主要是对前面的代码进行一些补充说明。]]></description><category></category></item></channel></rss>