- 博客(23)
- 资源 (11)
- 收藏
- 关注
原创 Window环境下MQTT安装
最近要在window上搭建mqtt,并给mqtt设置账号密码,在网上看了很多资料,发现都是大同小异,按照网上的博客,你也能正常的运行,但是他们并没有真正的设置账号和密码1、进入安装目录,复制pwfile.example 为 pwfile2、编辑mosquitto.conf文件打开mosquitto.conf文件,在末尾加上设置密码1、打开cmd进入安装目录2、设置账号密码订阅者在软件安装目录重新打开一个CMD发布者在软件安装目录再打开一个CMD觉得对你有帮助的,点个赞,谢谢!!
2022-06-17 11:10:34 1228
原创 Class常量池
Class常量池可以理解为是Class文件中的资源仓库。 Class文件中除了包含类的版本、字段、方法、接口等描述信息外, 还有一项信息就是常量池(constant pool table),用于存放编译器生成的各种字面量(Literal)和符号引用(Symbolic References)。一个class文件的16进制大体结构如下图:对应的含义如下,细节可以查下oracle官方文档当然我们一般不会去人工解析这种16进制的字节码文件,我们一
2020-09-21 00:13:07 361 1
原创 G1垃圾收集器
G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征. G1将Java堆划分为多个大小相等的独立区域(Region),JVM最多可以有2048个Region。 一般Region大小等于堆大小除以2048,比如堆大小为4096M,则Region大小为2M,当然也可以 用参数"-XX:G1HeapRegionSize"手动指定Region大小,但是推荐
2020-09-20 17:41:53 160
原创 垃圾收集机制与算法讲解(二)
1、垃圾收集算法1.1 标记-清除算法算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完 成后统一回收所有被标记的对象。它是最基础的收集算法,效率也很高,但是会 带来两个明显的问题:1. 效率问题2. 空间问题(标记清除后会产生大量不连续的碎片 )1.2 复制算法为了解决效率问题,“复制”收集算法出现了。它可以将内存分为大小相同的两 块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到 另一块去,然后再把使用的空间一次清理掉。这样就使每次的内存回收都是对
2020-09-13 15:26:57 146
原创 垃圾收集机制与算法讲解(一)
1、分代的原理是什么java heap是分代的(年轻代和老年代),为什么要分代?其实也不难理解,分代就是为了优化性能,如果不分代,那就会导致所有对象揉在一块,那样GC就会对堆区域进行全扫描。所以,分代可以大大提升GC性能,那么,分代的原理是什么?JVM对于堆的垃圾回收,采用分代收集的策略,所以分代的原理就是根据堆中对象的存活周期进行分代,年轻代中,每次垃圾回收都有大批对象死去,只有少量存活,而老年代中存放的对象存活率高。必须知道的知识点Young space:年轻代(新生代),保存生命周期较短的对
2020-09-10 17:26:41 274
原创 类加载过程
类加载和双亲委派机制1、类加载过程类加载到使用整个过程有如下几步:加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等验证:校验字节码文件的正确性准备:给类的静态变量分配内存,并赋予默认值解析:将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main()方法)替换为指向
2020-06-07 19:47:06 896
原创 Mybatis源码解析(二)
Mybatis源码解析(二)一、我们从下面这段代码开始 @Test public void testCahce1() { UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectByid(1); session.close();...
2019-12-16 10:39:33 107
原创 Mybatis源码解析(一)
Mybatis源码解析(一)一、开始起始代码public void init() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlS...
2019-12-13 16:26:05 97
原创 java日志框架选择与使用
java日志框架选择与使用一、我们常常听说的就是如下的日子框架,还不知道这么选?下面我来教大家怎么选①:JUL(java.util.logging) ,②:JCL(Jakarta Commons-Logging) 由apache公司Jakarta 小组开发的,③:JBoss-logging④:logback⑤:log4j⑥:log4j2⑦:slf4j(Simple Logging ...
2019-12-07 14:45:59 1095
原创 Spring事务源码(四)
Spring事务源码(四)一、开始二、源码分析org.springframework.transaction.interceptor.TransactionInterceptor#invoke(事务拦截器进行调用)public Object invoke(final MethodInvocation invocation) throws Throwable { //获取代理对象...
2019-12-04 16:55:46 124
原创 Spring事务源码(三)
Spring事务源码(三)一、开始,看过我前面Aop源码的朋友,对于事务整个流程应该非常熟悉二、源码分析,本章只分析寻找符合条件的增强器这一块源码findAdvisorsThatCanApply,对于寻找增强器的源码findCandidateAdvisors请参照博客https://blog.csdn.net/mlplds/article/details/103145409protecte...
2019-12-01 22:06:57 160
原创 Spring事务源码(二)
Spring事务源码(二)一、我们从@EnableTransactionManagement注解开始分析public class TransactionManagementConfigurationSelector extends AdviceModeImportSelector<EnableTransactionManagement> { /** * Returns {...
2019-11-29 19:30:53 114
原创 Spring事务源码(一)
Spring事务源码(一)一、在说源码之前先了解一些事务中的接口与类PlatformTransactionManager通过这个接口,Spring为各个平台如JDBC、Hibernate等都提供了对应的事务管理器,但是具体的实现 就是各个平台自己的事情了TransactionDefinition事物属性的定义TransactionDefinition接口中定义了5个方法以及一些表示事务...
2019-11-28 19:35:35 118
原创 springAop源码分析(四)
springAop源码分析(四)一、开始二、代码分析public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { MethodInvocation invocation; Object oldProxy = null; boolean setProxyContext = f...
2019-11-25 12:01:11 106
原创 springAop源码分析(三)
springAop源码分析(三)一、接上篇博客,所有的切面方法都找到后,并缓存起来了,接下来应该如何,请看下图二、源码分析
2019-11-21 14:00:06 210
原创 springAop源码分析(二)
springAop源码分析(二)一、接上篇博客,分析右半部分图二、源码分析public List<Advisor> buildAspectJAdvisors() { List<String> aspectNames = this.aspectBeanNames; if (aspectNames == null) { synchronized (th...
2019-11-20 11:18:07 149
原创 springAop源码分析(一)
springAop源码分析(一)一、希望通过这两幅图能很好的理解springAop寻找候选增强器这块逻辑此图为上图左半部分的衍生,右边的将再下一篇博客说明二、源码说明读过源码的朋友应该对这并不陌生,那我们就从这里开始protected Object resolveBeforeInstantiation(String beanName, RootBeanDefinition mbd)...
2019-11-19 17:28:05 135
原创 spring源码分析之bean的实例化过程
i2.2>:org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#getSingleton 去缓存中 获取bean源码分析protected Object getSingleton(String beanName, boolean allowEarlyReference) { //去缓存map...
2019-11-16 20:22:26 232
原创 Spring源码invokeBeanFactoryPostProcessors方法说明(五)
Spring源码invokeBeanFactoryPostProcessors方法说明(五)一、开始,本章为invokeBeanFactoryPostProcessors源码解说最后一章1、ConfigurationClassBeanDefinitionReader–>loadBeanDefinitions方法分析配置类截图如果有认真阅读前面几篇博客,这里根据上面几个截图,不...
2019-11-02 20:59:25 126
原创 Spring源码invokeBeanFactoryPostProcessors方法说明(四)
Spring源码invokeBeanFactoryPostProcessors方法说明(四)一、本章主要分析@Bean1、doProcessConfigurationClass–>processImports,本章主要围绕这几句代码分析将beanMothod放入到set集合二、总结,@bean上上一章说的@import注解,并没有将其放入beanFactory中,仅仅只是放入ma...
2019-10-31 17:31:41 169
原创 Spring源码invokeBeanFactoryPostProcessors方法说明(三)
Spring源码invokeBeanFactoryPostProcessors方法说明(三)一、本章主要分析 @Import1、doProcessConfigurationClass–>processImports,本章主要围绕这句代码分析processImports分析...
2019-10-31 15:54:58 118
原创 Spring源码invokeBeanFactoryPostProcessors方法说明(二)
Spring源码invokeBeanFactoryPostProcessors方法说明(二)1、寻找配置类(org.springframework.context.annotation.ConfigurationClassPostProcessor#processConfigBeanDefinitions)2、checkConfigurationClassCandidate中有这样一段代码...
2019-10-30 17:38:35 108
原创 Spring源码invokeBeanFactoryPostProcessors方法说明(一)
Spring源码invokeBeanFactoryPostProcessors方法说明(一)一、开始1、demo测试类目录2、配置类3、启动类4、调用链i1:org.springframework.context.support.AbstractApplicationContext#refreshi2:org.springframework.context.support.A...
2019-10-29 17:56:27 237
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人