- 博客(15)
- 资源 (9)
- 收藏
- 关注
原创 jvm 方法调用以及 lambda 思维导图
https://www.processon.com/view/link/6108f0b75653bb143a244b74
2021-08-03 15:46:13 1470
原创 使用ASM实现简单的热部署-简单记录
字节码增强技术ASM ASM是对java字节码操纵框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。asm字节码增强技术主要是用来反射...
2021-07-13 23:27:33 2245
原创 Java 代码记录下最近看KMP算法的思路
package com.test.davinqi;/** * 时间复杂度: * O( m + n ) */public class KMp { /** * 当前的数据使用 * M 主串 BAAAAAAAABAACAAAA * P 匹配串 AABAAC * 把匹配串首位尾“前后缀”匹配 * 拆分为每个不同长度字节 * A : 0 最大匹配 * AA: 1 * AAB: 0 *.
2021-05-27 15:13:02 2540
原创 如何正确使用分布式锁
1.为什么加锁1.单机环境什么要加sychornized锁?2.分布式环境为什么会有并发数据问题2.测试现象1.使用测试工具模拟并发2.秒杀系统超买现象,引发的事故。3.如何使用1.redis锁2.zookeeper3.数据库版本比较4.如何优化1.正确使用2.异常,宕机,死锁,时间过期的穿透...
2021-05-01 12:52:57 2748
原创 Springboot 启动流程源码解析(广播器,以及内嵌tomcat启动)
1,触发时刻:首先,我们知道当spring容器启动时会执行refresh()@Overridepublic void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { prepareRefresh(); // 用于获得一个新的 BeanFactory。该方法会解析所有 Spring 配置文件 ...
2021-04-27 18:03:26 2593
原创 SpringBoot的 jar为什么 可以直接运行?
SpringBoot的 jar为什么 可以直接运行?先打包个JAR看下:SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即可:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> ..
2021-04-26 00:40:37 2837
原创 分布式事务 - XA协议 以及2PC ,3PC, TCC,消息事务
1,关于XA协议 这里可以参考The Open Group 的 文档 :https://pubs.opengroup.org/onlinepubs/009680699/toc.pdf(1):什么是XA协议: Distributed Transaction Processing(DTP)DTP是一种实现分布式事务处理系统的概念模型,OSI和Open/X都有正式文档来定义它:X/Open Guide, Distributed Transaction Processin...
2021-04-23 11:25:03 3256 4
原创 Spring-Mybatis 中的接口为什么可以注入原理 (BeanPostProcessor 后置处理器)
Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口(也就是本文用的dao层下面的BookMapper)生成代理注入到Spring原理是Mybatis在与Spring集成的时候可以配置MapperFactoryBean来生成Mapper接口的代理. 例如 /** * dataSource. */ @Bean(name = "dataSource") public BasicDataSource dataSourc.
2021-04-22 17:31:38 3699
原创 Spring-Bean的作用域 (@EventListener, BeanPostProcessor )
BeanDefiniton 与对象的关系我们知道 java 是面向对象的编程语言,但是在 Spring 当中除了对象还有一个特别重要的概念,那就是 bean,我们的交给 Spring 管理的对象最终都会由 Spring 将其变成 bean,那么对象、bean、BeanDefinition 是什么关系呢?官网介绍:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-introduc.
2021-04-22 15:18:24 2551
原创 Mysql日常使用注意事项(”坑“) , 官方文档的解读
日常遇到的Mysql语句的‘坑‘第一个 SQL DDL 为什么创建,修改表异常。场景1,建表。CREATE TABLEt_1(idINT(10) NOT NULL AUTO_INCREMENT,nameVARCHAR(65535) COLLATE utf8_bin DEFAULT '',valueVARCHAR(10) COLLATE utf8_bin NOT NULL COMMENT '',ageINT(10) NOT NULL DEFAULT 0,PRIMA...
2020-12-15 10:43:33 2723
原创 Log4j2日志脱敏
Log42 的日志脱敏Log42 的日志脱敏代码部分功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Log42 的日志脱敏最近遇到公司的敏感数据脱敏,就想着也不能挨个的日志去找他的,米不敢信息啊,太多了。后来想到logger.i
2020-08-24 19:26:38 4583 2
原创 MAC git的账户切换
MAC git的账户切换有段时间借用的同事的git账号,然后一直切换没切回来最后终于找的了。删掉之前的账户,在使用idea 的时候回提示输入账号,密码。ok,搞定。
2020-07-09 15:42:12 5650 1
原创 JAVASE 模拟WebSocket客户端
JAVASE 模拟WebSocket客户端 欢迎使用Markdown编辑器使用欢迎使用Markdown编辑器WebSocket协议是html5的一种通信协议,兼容常用的浏览器。例如Chrome、 Firefox、IE等。它可以使客户端和服务端双向数据传输更加简单快捷,并且在TCP连接进行一次握手后,就可以持久性连接,同时允许服务端对客户端推送数据。外加传统模式的协议一般HTTP请求可能会包含较...
2020-04-26 14:44:53 3176 4
原创 java8 新特性之 Stream()的使用。
Stream 流的使用 1,Stream 常用的 Api 1.1 筛选和切片: List<String> excapleStrs = Arrays.asList("java", "java", "javaScript", "php","python","ios", "go");
2018-05-06 23:24:19 3134 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人