自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 【源码学习】InnoDB存储引擎中的索引方案B+树

源码学习之InnoDB存储引擎中的索引方案B+树

2022-05-14 18:54:52 556

原创 mybatis 日志模块原理

目录mybatis日志模块完成什么事自动选择具体日志实现具体mybatis如何打印几个关键类:BaseJdbcLoggerConnectionLogger:PreparedStatementLoggerStatementLoggerResultSetLoggerConnectionLogger 又是哪里增强呢mybatis日志模块完成什么事日志实现是固定的,目前常用的有:slf4j -> commonsLogging -> log4j2 -> log4j -> jdkLoggin

2022-04-04 20:34:45 1715

原创 SpringBoot配置加载原理及顺序

目录配置源及优先级顺序yaml和properties配置文件优先级源码加载和管理原理动态配置配置源及优先级顺序(优先级一次从高到低)用户目录下 ~/.spring-boot-devtools.properties 文件的全局配置:对机器上所有应用生效@TestPropertySource 是Spring的类注解,用于标注集成测试类@SpringBootTest 注解类用于局部应用测试命令行参数环境变量或系统变量嵌入的json配置:SPRING_APPLICATION_JSONServlet

2022-04-03 12:34:21 569

原创 Linux 认识及常用命令

目录题目:1. 什么是Linux?2. 什么是内核?3. 平常工作都用过哪些linux命令?4. 统计访问量排名前10的IPlinux初识什么是LinuxRedhat Linuxlinux命令添加新用户命令有没有处理过线上问题?出现内存泄露,CPU利用率标高,应用无响应时如何处理的命令集合:grepvmstat:物理CPU及核数系统负载网卡流量查看修改ip,生效网卡网卡配置多个IP主机名设置DNS修改配置文件iptables规则:把来源IP为192.168.1.101访问本机80端口的包直接拒绝抓包:只过滤

2022-03-31 00:53:24 672

原创 flexjson反序列化漏洞

这里写目录标题引言代码如下:引言flexjson 在反序列化时,flexjson自身没有任何控制,可以导致,客户端构造任意类型的序列化json数据,导致服务端反序列化时,触发恶意类的初始化,威胁服务端安全,如下例子 使用javax.swing.JEditorPane 类,通过其page属性的初始化,可以进行任意url嗅探,同样的可以利用String json5 = “{“class”:“javax.swing.JEditorPane”,“page”:“http://ddd.wanghao723.ns.

2022-03-28 16:55:06 1058

原创 JVM垃圾回收器的了解及选择

目录堆配置:-Xmx-Xms-Xmn**-Xss****-XX:NewRatio**-XX:MaxDirectMemorySize**-XX:MaxMetaspaceSize****-XX:MaxTenuringThreshold****-XX:SurvivorRatio**ratio****-XX:+UseTLAB****垃圾回收器算法**为什么采用分代收集?分代回收器对比新生代老年代分代回收器具体参数配置:CMS:配置**提前触发CMS回收:**并发可中断预处理:解决漏标:新对象避免标记:并发线程数:默

2020-07-26 08:39:44 245

原创 存储引擎及SQL优化原则汇总

原则列举案例举例

2020-07-15 16:53:10 101

原创 innodb存储引擎初步认识及配置

innodb都有哪些锁?https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html不同SQL语句使用的锁?https://dev.mysql.com/doc/refman/5.7/en/innodb-locks-set.htmlinnodb的架构(磁盘、内存结构)innodb参数配置https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.htmlinnodb_autoinc_

2020-07-14 23:52:35 282

原创 Spring 构造器推断模型源码分析

现在很多的Spring源码大家其实基本都比较熟悉了,IOC、DI、循环依赖部分认为大家已经很熟悉啦,这里会源码分析下比较难的部分,即就是在Spring创建bean时会选择bean构造器进行创建,那么Spring是如何推断构造器进行选择的呢?这里就是构造器推断模型...

2020-06-17 13:23:46 456

原创 RestTemplate调用远程接口的总是不通?

很多同学在问我,RestTemplate调用远程第三方接口总是报错的问题,在这里提一下,因为思路其实非常简单,但问我的同学却很无处下手,希望能帮到大家。RestTemplate其实就是http协议的生成并调用,在不知道怎么调试的时候,可以看源码,还有中非常简单的方式,就是打印出request的header、body去对比,对比看是否和postman等第三方工具的header、body是否一致?如果不一致,那么不一致的地方就是调用失败的原因。因为RestTemplate的本质就是遵守HTTP协议的.

2020-06-13 18:32:35 2650

原创 手写XA分布式事务和Spring事务框架整合

分布式事务的xa start为什么不在prepare之前调用?在一个分布式事务中,同一个connection只会调用一次dataSource.getconnection() 但会调用多次的prepare(connenction)。mycat分库分表规则总结

2020-06-13 17:44:19 725 1

原创 XA分布式事务全面理解

XA协议全面理解XA协议:架构图:协议具体过程:解决什么问题?XA协议实现:XA协议在mysql中的使用:XA协议的缺陷?mysql如何解决第二阶段失败的?XA协议:是两阶段的实时分布式事务解决方案:第一阶段:prepare,每个RM都要prepare返回给TM表示准备就绪。第二阶段:TM通过判断决定全部commit或者全部rollback。第二阶段判断依据是,第一阶段prepare返回的状态,如果都成功,则全部commit;有失败,则全部rollback。架构图:分布式事务请求cli

2020-06-03 11:30:09 1307

原创 如何在线改变巨型表的数据结构?

如果有一张上亿数据量的表,如何修改它的表结构?我们在工作中往往会遇到这样的问题,在业务发展过程中,会有需要改动表结构,担当这张表的是一张巨型表时,修改表结构时非常痛苦的,改动过程会长时间阻塞用户服务,而且改动过程也会让程序员很慌张,那么如何改动表结构才是比较合理的呢?如何阻塞用户服务的?阻塞时长?如何解决?...

2020-06-01 16:51:13 548

原创 mysql双主架构的docker搭建

这里写目录标题双主架构配置:Q & A:双主架构双主的搭建建立在主从的基础上,参考: mysql主从的docker搭建.配置:在3308上,为3307申请从客户端账号权限:GRANT REPLICATION SLAVE,FILE,REPLICATION CLIENT ON *.* TO 'repluser'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES;在3307上,设置把3308作为主节点的配置、起始点:show PROCESSLIS

2020-05-25 18:16:37 129

原创 mysql主从架构的本地docker容器搭建

mysql主从架构docker实现mysql节点异步复制配置:配置:开启异步复制:如何查看log日志异步复制优缺点:从节点宕机启动半同步复制配置:异常宕机两种模式区别:异步复制 vs 半同步复制:Replication架构的各种演变:Q & Adocker实现mysql节点概述:该文档以本地方式搭建mysql主从集群,因资源有限故采用docker容器化方式搭建。下面是mysql容器生成的具体命令。生成两个mysql容器,分别对应不同的端口:3307、3308容器一:3307dock

2020-05-25 17:10:02 190

原创 LockSupport原理解析及源码

目录概览LockSupport解析用法:具体使用:原理概述:源码解析:底层原理:park原理流程图:unpark原理流程图:park() 源码:unpark() 源码:Q & A1. unpark是否可以调用多次,以获取多个permit?2. unpark是否一定要在park之后调用?3. park会像wait()一样睡眠释放当前锁吗?LockSupport解析LockSupport 底层使用Posix线程库pthreads的系统级别锁互斥量mutex和condition,所以它的系统消耗是比

2020-05-24 09:40:05 726

原创 AQS数据结构及源码解析

目录概览AQS 数据结构同步队列(sync queue)条件队列(condition queue)条件队列节点enq到同步队列AQS都有哪些特点:AQS在jdk源码中有哪些实现:AQS源码:排它锁源码:1. 阻塞式不可中断获取锁:2. 阻塞式可中断获取锁:3. 阻塞式超时可中断获取锁:共享锁源码:1. 阻塞不可中断共享锁获取:2. 阻塞可中断共享锁获取:3. 阻塞超时可中断共享锁获取:共享锁解锁:Condition条件源码:1. await() 源码:2. signal() 源码:3. Condition使

2020-05-24 07:30:53 471

原创 JPS Command Not Found

Command Not Found:jps在我们有些新的机器上,我们键入jps、jstack等基础的java指令时,会被提示指令未找到 或者 未定义。在我们有些新的机器上,我们键入jps、jstack等基础的java指令时,会被提示指令未找到 或者 未定义。这时候的问题其实仅仅是jps、jstack指令并没有添加至系统PATH的任一路径中。PATH具体的路径集可以通过指令 echo $PAT...

2018-11-15 02:35:43 1688

原创 一台机器上多个Java版本

如何安装多个Java版本首先可以去Oracle官网上下载多个jdk的安装文件多版本切换问题首先可以去Oracle官网上下载多个jdk的安装文件Mac上为dmg文件,向其他运行程序一样,双击下一步就完成了多版本切换问题如果同时安装了jdk7、jdk8、jdk11,可以通过如下命令进行切换使用export JAVA_HOME=/usr/libexec/java_home -v 1....

2018-11-15 02:18:49 186

原创 机器学习有感

机器学习《A Few Useful Thing to Know About Machine Learning》读后感^_^所谓机器学习,就是让机器像一个人从孩童到成熟的整个人之变化过程一样,慢慢学习认识不同的事物,认知度也随着不断的练习不断的成熟的过程。而这里的认知度就类似于机器的鉴别器,鉴别器的准确度和它本身所经历的测试练习直接相关。在程序员泛滥的时代,很多复杂的事情、可重复的事情交给程序员去解决

2017-08-03 22:28:38 503

超声波测距 数码管显示

超声波测距模块、测距报警模块、PCB图、源程序代码

2013-11-01

masm汇编开发

一个简单的32位汇编硬件开发平台,支持在dos下直接工作

2013-10-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除