
笔记
文章平均质量分 67
学习笔记
A_BCDE_
这个作者很懒,什么都没留下…
展开
-
JVM笔记
在编译期间根据逃逸分析的结果,来决定是否可以将对象的内存分配从堆转化为栈。如果经过逃逸分析后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配。逃逸分析:分析对象动态作用域,当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他地方中,称为方法逃逸。岁,可以通过参数 -XX:MaxTenuringThreshold 来设定 ),这些对象就会成为老年代。设置为1,以后对象在 Survivor 区每熬过一次 Minor GC,就将对象的。新生代:老年代=1:2。原创 2023-05-22 19:11:46 · 589 阅读 · 0 评论 -
Elastic-Job原理
3)设置作业的基本信息,在JobCoreConfiguration 中设置作业的名称(jobName),作业执行的时间表达式(cron),总的分片数(shardingTotalCount);当多个节点运行时,先选择一个主节点,当到达执行时间后,每个实例开始执行任务,主节点负责分片的划分,其它节点等待划分完成,主节点将划分后的结果存放到zookeeper中,然后每个节点再从zookeeper中获取划分好的分片项,将分片信息作为参数,传入到本地的任务函数中,从而执行任务。只会标记分片状态,不会重新分片。原创 2023-05-21 21:55:36 · 581 阅读 · 0 评论 -
spring笔记
可以在 spring 容器加载了 bean 的定义文件并实例化 bean 之后,在执行 bean 的初始化方法前后,添加一些自己的处理逻辑。是在 Spring 容器加载了定义 bean 的 XML 文件之后,在 bean 实例化之前执行的。Isolation.READ_COMMITTED:读已提交,只能读取到已经提交的事务,解决了脏读,存在不可重复读。在spring的bean的初始化过程中,就需要对实例化的bean进行代理,并且生成代理对象。@Transactional注解的切面逻辑类似于@Around,原创 2023-05-21 18:30:03 · 582 阅读 · 0 评论 -
kafka笔记
分区应答,回复成功,则清除sender发送的数据以及分区器队列中的数据,失败则重试(次数不限)。原因说明:因为在kafka1.x以后,启用幂等后,kafka服务端会缓存producer发来的最近5个request的元数据,故无论如何,都可以保证最近5个request的数据都是有序的。有指定分区,按指定分区,没有制定分区按key,没有制定分区没有key,随机一个一直使用直到已满或已完成,再随机一个(必须和上一个随机的不同)①②有序,正常落盘,应到③,实际收到④,则内存中缓存④,直到收到③。原创 2023-03-26 20:59:27 · 1889 阅读 · 0 评论 -
java内部类
java内部类原创 2023-03-18 18:13:25 · 568 阅读 · 0 评论 -
java基础
String是final的,所以其成员方法都是final的,不允许继承。具有唯一性、不变性,可做map的key。不同的字符串变量都指向字符串池的同一个字符串。创建时hashcode就被缓存。原创 2023-02-26 19:44:58 · 574 阅读 · 0 评论 -
java对象头
java对象头原创 2023-02-26 11:54:18 · 133 阅读 · 0 评论 -
操作系统笔记
操作系统原创 2023-02-21 16:26:39 · 128 阅读 · 0 评论 -
JDK1.8 Hashmap源码解析
hashmap这样做是为了之后运算(位运算)方便,同时在hash时选择更好的hash函数,以抵消2的n次方带来的不便。index = (n - 1) & hash,如果这一位是0,则index = index,否则,index = index + oldCap。线程2唤醒开始执行扩容,此时线程2指向node1,且next节点为node2,但node2的next节点又为node1,出现死循环。扩容,就是给原来的容量乘2,也就是把原来容量oldCap左移一位,这时2^n的好处就表现出来了。原创 2019-05-14 22:16:52 · 631 阅读 · 1 评论 -
java中instanceof的实现原理
(secondary super):所有其它超类型(接口、数组相关以及超过深度7的超类),存于一个数组(在初始化数组时分情况按顺序填好)。(T) obj 不引发ClassCastException,返回true,否则为false;(primary super):类继承深度从0到7的超类,存于长度为8的缓存数组。类所继承的超类和所实现的接口不会在运行时改变。可以将这些信息存储起来。在字节码使用特殊指令对常量池中的相关符号引用进行判断。总结:obj==null,返回false;不用遍历继承链等(性能差)原创 2019-07-18 19:01:35 · 4811 阅读 · 4 评论 -
代理机制
代理分为静态代理和动态代理,动态代理又有cglib代理和jdk代理之分。1.静态代理(针对接口):首先,先定义一个接口,然后实现它,这就是我们的核心代码。一个代理类,用于对实现类进行处理包装:获取其静态代理,并增加附加功能,如:public class StaticProxy implements IInterface { private IInterface realObj = ne...原创 2019-01-30 13:30:06 · 350 阅读 · 0 评论 -
AOP简单实现(面向切面编程)
一、代理机制首先简单描述一下代理机制。核心代码完成后,我们想给代码增加一些附加功能,比如日志,拦截等,这时不应该去修改核心代码,我们可以通过获取代理,在核心代码以外增加代码,实现相关功能。同样在我们没有源代码或无法触碰源代码时,也是如此。核心功能与附加功能分开,互不干扰,称之为解耦,使开发过程更加方便。代理分为静态代理和动态代理,动态代理又有cglib代理和jdk代理之分。1.静态代理(针对...原创 2018-10-28 00:43:33 · 531 阅读 · 0 评论 -
包及jar包扫描
public PackageScanner() {}//扫描包private void scanFile(File currentFile, String packageName) { //File[] fileList = file.listFiles(); //得到该文件夹下的所有 类+子文件夹的名称 //此处list应为扫描包下的所有类的nameList,所以不应该有文件名称...原创 2018-10-04 21:14:57 · 538 阅读 · 0 评论