- 博客(28)
- 收藏
- 关注
原创 Mysql 函数大全,以及部分使用案例
MySQL日期和时间函数。MySQL流程控制函数。MySQL数值型函数。MySQL字符串函数。mysql函数大全。MySQL聚合函数。
2022-07-20 17:16:26 202
原创 双指针算法-删除排序数组中的重复项
删除排序数组中的重复项一个有序数组 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 122
原创 深入理解Mysql事务隔离级别与锁机制
我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。事务及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要
2021-03-18 21:28:29 155
原创 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 126
原创 spring boot 读取启动配置类的流程、原理
说起spring boot 大家首先能想到的就是方便,省去了SSM 那套繁琐的配置,而且容易出错,那么,我们有想过spring boot 是怎么做到自动配置的吗,这就离不开spring boot 读取自动配置类的原理,springboot 通过和spring整合做到了完美的自动启动,直接上代码首先我们进入这个注解看到上面几个是元注解,我们平常自定义注解都有的最主要是下面三个核心注解@SpringBootConfiguration 该注解用来标记当前注解为springboot 自动配置类@En
2021-03-08 23:25:31 492
原创 spring IOC 容器加载过程(部分)
spring IOC 容器加载过程1.实例化容器:AnnotationConfigApplicationContext2.实例化工厂DefaultListableBeanFactory3.实例化BeanDefinition读取器: AnnotatedBeanDefinitionReader4.实例化BeanDefinition 扫描器:ClassPathBeanDefinitionScanner5.注册配置类为BeanDefinition: register(componentClasses)6
2021-02-27 16:58:27 220
原创 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 559 4
原创 垃圾收集器ParNew&CMS&Serial与其三色标记算法剖析
垃圾手机算法分代收集理论当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次收集都会有大量对象(近99%)死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标记-清除”或“标记-整理”算法进行垃圾收集。注意,“标记-清
2021-02-15 13:58:00 572
原创 对象在JVM中内存的分配机制、如何分配
对象的创建对象创建的主要流程:1.类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。2.分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类 加载完成后便可完全确定,为对象分配空间的任务等同于把 一块确定大小的内存从Java堆中划分出来。这
2021-02-15 11:23:21 475
原创 由浅入深理解JVM 内存模型以及相关优化策略
由浅入深理解JVM 内存模型以及相关优化策略JDK体系结构Java 语言的强大不仅仅表现在其内部实现的垃圾回收的机制,更强大的还表现在其强大的跨平台(操作系统)特性,其内部(JVM)已经实现了java 应用在不同操作系统底层硬件指令的适配JVM整体结构及内存模型同时,java 还提供了对各区域大小调整的参数设置 ,一般不需要去修改,就用其默认的就行了如果想了解各大参数的意思,可以使用Dos 命令使用cmd 然后 输入Java -XJVM参数设置:Spring Boot程序的JVM参数
2021-02-15 00:11:27 219
原创 jvm类加载机制剖析
jvm类加载机制剖析类加载机制全过程类加载过程类加载过程详解其中loadClass的类加载过程有如下几步:加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口验证:校验字
2021-02-02 23:51:36 105
原创 javax.mail.AuthenticationFailedException: failed to connect 使用hutool 工具发送邮件
系统会自动需要你发送短信,然后设置授权码
2020-03-13 16:19:26 1153
原创 Git 出现fatal:Authentication failed for '……'
出现这个情况首先检查自己的Git 配置git config --list使用这个命令查看自己的配置如果相关配置不正确需要重新配置或者删除删除某个全局配置项git config --global --unset user.name具体根据自己情况来配置完成之后再查看自己的配置git config --list上面的完成之后如果还是出现上面的情况可能是git 需要初始化使用git...
2020-02-27 17:08:39 100
原创 24小时订单分析效果
一.需求分析二.表结构分析三.具体案例实现步骤 1.web开发所需环境和工具 2.根据表设计我们开始建实体类 3.根据需求分析图,我门将相对应方法依次实现 4.前面都是准备工作,现在我们可以开始写servlet了...
2019-06-30 23:08:07 536
原创 xml建模
xml 建模:将XML配置文件中的元素、属性、文本信息转换成对象的过程叫做XML建模XML建模1)根据XML配置文件元素节点创建元素节点实体类ConfigModel、ActionModel、ForwardModel2)利用dom4j+xpath技术实现XML建模ConfigModelFactoryxml文件:每个节点代表一个实体类:这个是解析:第一个/ 代表跟目录...
2019-06-22 22:17:15 99
转载 J2EE的体系架构——J2EE
J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型。J2EE分层: 客户层,执行在客户计算机上的组件,用户与系统的接口逻辑,通过http协议的来訪问应用server。 表示层,执行在J2EEserver上的组件,...
2019-06-18 23:19:02 523
原创 Map集合
Map特性定义一个Map集合,key和value不规定类型,任意放入数据,用keySet()和entrySet()两种方式遍历出Map集合的数据运行结果:
2019-06-18 00:25:08 746
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人