![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术
文章平均质量分 76
成@qq.com
这个作者很懒,什么都没留下…
展开
-
对称加密简单实现
对称加密简单实现原创 2022-11-03 21:40:28 · 649 阅读 · 1 评论 -
摘要算法/简单实现
摘要算法原创 2022-11-03 21:21:22 · 190 阅读 · 0 评论 -
线程的生命状态有以及各状态之间的切换
线程的几种生命状态以及各状态之间的切换原创 2022-07-25 18:36:10 · 158 阅读 · 0 评论 -
RabbitMQ 工作模式介绍以及对比
RabbitMQ 工作模式介绍原创 2022-07-22 15:11:22 · 598 阅读 · 0 评论 -
JVM 内置锁 synchronized 详解
synchronized 详解原创 2022-07-21 21:52:04 · 293 阅读 · 0 评论 -
mysql mvcc多版本并发控制机制 以及bufferPool 缓存机制
mysql mvcc以及bufferPool 缓存机制原创 2022-07-20 22:47:20 · 83 阅读 · 0 评论 -
使用谷歌zxing生成二维码(不带logo)
生成二维码, 本文主要讲述使用zxing生成二维码。原创 2022-07-20 17:35:15 · 771 阅读 · 0 评论 -
Mysql 函数大全,以及部分使用案例
MySQL日期和时间函数。MySQL流程控制函数。MySQL数值型函数。MySQL字符串函数。mysql函数大全。MySQL聚合函数。原创 2022-07-20 17:16:26 · 180 阅读 · 0 评论 -
双指针算法-删除排序数组中的重复项
删除排序数组中的重复项一个有序数组 num,原地删除重复出现的元素,是每个元素只出现一次,返回删除后的数组长度不能使用新的数组容器,并且时间复杂度须 O(1)。如:输入:[0,1,2,2,3,3,4]输出:5 /** * 双指针算法,筛选重复的元素 * @param nums * @return */ public static int removeDuplicates(int[] nums){ if (nums.length==0)原创 2021-05-28 10:14:07 · 99 阅读 · 0 评论 -
深入理解Mysql事务隔离级别与锁机制
我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。事务及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要原创 2021-03-18 21:28:29 · 117 阅读 · 0 评论 -
spring boot启动原理
Springboot 使得我们日常开发变得方便,下面一起来看下他的启动原理(往往是跟读取自动配置类联系在一起的)一、创建SpringApplication1.调用SpringApplication.run 启动springbootpublic static void main(String[] args) { SpringApplication.run(DeomoApplication.class, args); }调用springApplication 的run 方法p原创 2021-03-14 11:47:15 · 105 阅读 · 0 评论 -
spring boot 读取启动配置类的流程、原理
说起spring boot 大家首先能想到的就是方便,省去了SSM 那套繁琐的配置,而且容易出错,那么,我们有想过spring boot 是怎么做到自动配置的吗,这就离不开spring boot 读取自动配置类的原理,springboot 通过和spring整合做到了完美的自动启动,直接上代码首先我们进入这个注解看到上面几个是元注解,我们平常自定义注解都有的最主要是下面三个核心注解@SpringBootConfiguration 该注解用来标记当前注解为springboot 自动配置类@En原创 2021-03-08 23:25:31 · 456 阅读 · 0 评论 -
spring IOC 容器加载过程(部分)
spring IOC 容器加载过程1.实例化容器:AnnotationConfigApplicationContext2.实例化工厂DefaultListableBeanFactory3.实例化BeanDefinition读取器: AnnotatedBeanDefinitionReader4.实例化BeanDefinition 扫描器:ClassPathBeanDefinitionScanner5.注册配置类为BeanDefinition: register(componentClasses)6原创 2021-02-27 16:58:27 · 197 阅读 · 0 评论 -
JVM垃圾收集器之G1&ZGC
G1收集器(-XX:+UseG1GC)G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征。G1将Java堆划分为多个大小相等的独立区域(Region),JVM最多可以有2048个Region。ZGC没有物理分代概念,而是将堆分成了很多region区域,他的设计初衷就是存在浮动垃圾的一般Region大小等于堆大小除以2048,比如堆大小为4096M,则Region大小为2M,当然也原创 2021-02-15 22:48:57 · 402 阅读 · 4 评论 -
垃圾收集器ParNew&CMS&Serial与其三色标记算法剖析
垃圾手机算法分代收集理论当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次收集都会有大量对象(近99%)死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标记-清除”或“标记-整理”算法进行垃圾收集。注意,“标记-清原创 2021-02-15 13:58:00 · 552 阅读 · 0 评论 -
对象在JVM中内存的分配机制、如何分配
对象的创建对象创建的主要流程:1.类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。2.分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类 加载完成后便可完全确定,为对象分配空间的任务等同于把 一块确定大小的内存从Java堆中划分出来。这原创 2021-02-15 11:23:21 · 450 阅读 · 0 评论 -
由浅入深理解JVM 内存模型以及相关优化策略
由浅入深理解JVM 内存模型以及相关优化策略JDK体系结构Java 语言的强大不仅仅表现在其内部实现的垃圾回收的机制,更强大的还表现在其强大的跨平台(操作系统)特性,其内部(JVM)已经实现了java 应用在不同操作系统底层硬件指令的适配JVM整体结构及内存模型同时,java 还提供了对各区域大小调整的参数设置 ,一般不需要去修改,就用其默认的就行了如果想了解各大参数的意思,可以使用Dos 命令使用cmd 然后 输入Java -XJVM参数设置:Spring Boot程序的JVM参数原创 2021-02-15 00:11:27 · 192 阅读 · 0 评论 -
jvm类加载机制剖析
jvm类加载机制剖析类加载机制全过程类加载过程类加载过程详解其中loadClass的类加载过程有如下几步:加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口验证:校验字原创 2021-02-02 23:51:36 · 86 阅读 · 0 评论