![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA学习
文章平均质量分 72
北极最亮星
这个作者很懒,什么都没留下…
展开
-
Kafka保证exactly once原理
Kafka保证exactly once原理1 从producer角度考虑幂等性Kafka producer新增了幂等性的传递选项,该选项保证重传不会在 log 中产生重复条目。 为实现这个目的, broker 给每个 producer 都分配了一个 ID ,并且 producer 给每条被发送的消息分配了一个序列号来避免产生重复的消息。 同样也是从 0.11.0.0 版本开始, producer 新增了使用类似事务性的语义将消息发送到多个 topic partition 的功能: 也就是说,要么所有的消原创 2021-02-25 10:42:51 · 1810 阅读 · 0 评论 -
new一个对象的完整过程
new一个对象的完整过程在new的开始过程中,首先检查该类是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已被加载、解析和初始化过。接下来就是初始化对象。首先为对象在堆内存中分配一块空间,这块空间的大小在类加载完成后即可完全确定。分配空间有两种方法:①指针碰撞:前提要求是JAVA堆中的内存对象是绝对完整的,所有的内存都放在一边,空间的放在另一边,中间放着一个指针作为分界点,分配时即把指针移动类大小即可。②空闲列表:这时的堆内存是相互交错的,虚拟机维护了一个列表记录了堆中哪里还有足原创 2020-08-08 16:04:54 · 5612 阅读 · 0 评论 -
ThreadLocal解释
标题 调用ThreadLocal set方法后发生了什么?先检查当前线程的threadLocals是否为null,是的话创建一个新的ThreadLocalsMap复制给当前线程的threadLocals,否的话直接加入;加入的时候以当前线程的threadLocal为key,传入的value为值加入到ThreadLocalsMap中;注意threadLocal中的Entry的key为弱引用,在没有强引用的情况下可能会被回收;若一个线程中有多个ThreadLocal实例对象,则在当前线程中以Entr原创 2020-08-06 11:25:33 · 123 阅读 · 0 评论 -
三个线程循环打印ABC
三个线程循环打印ABC利用ReentrantLock锁,获取线程状态。import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class PrintAbc { ...原创 2020-03-29 09:49:33 · 169 阅读 · 0 评论 -
JAVA使用递归方法遍历文件夹并获文件下的指定格式文件
JAVA遍历指定文件夹获取指定文件,File类调用方法该代码是使用File类来关联指定文件和文件夹,输入参数为需要遍历的文件夹。采用递归的方式,来遍历整个文件夹来获取指定文件。比如获得.pdf文件等。其次就是使用文件输入流和输出流来对文件进行保存。下面给出代码,注意抛异常。 public static void getfiles(File file1) throws IOExcept...原创 2019-05-16 11:25:21 · 1940 阅读 · 1 评论