自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 @NotBlank与@Validated在参数校验时的使用

利用注解使代码中的非空校验更加简洁

2022-10-09 11:26:14 891 1

原创 垃圾回收算法

垃圾回收算法如何确定对象是否为垃圾?Java中常用的垃圾回收算法1.标记清除算法2.复制算法3.标记整理算法4.分代收集算法如何确定对象是否为垃圾?Java中采用引用计数法和可达性分析来确定对象是否应该被回收。1.引用计数法在Java中如果要操作对象,就必须获取该对象的引用,所以可以通过引用计数法来判断该对象是否可以被回收。在给该对象添加一个引用时,引用计数加1;在为该对象减少一个引用时,引用计数减1;如果一个对象的引用计数为0,则表示该对象此时没有被引用,可以被回收。注意:引用计数法容易产

2021-11-19 19:14:25 459

原创 JVM的内存区域

JVM内存区域一、内存区域分布图二、区域详解三、JVM的运行时内存一、内存区域分布图JVM的内存区域分为线程私有区域(程序计数器、虚拟机栈、本地方法区)、线程共享区域(堆、方法区)和直接内存。线程私有区域随着线程的启动而创建,随线程的结束而销毁。线程共享区域随虚拟机的启动而创建,随虚拟机的关闭而销毁。二、区域详解1.程序计数器程序计数器是线程私有的一块内存空间,用于存储当前运行的线程所执行的字节码的行号指示器,每一个运行的线程都有一个独立的程序计数器,是唯一没有内存溢出的一块区域。

2021-11-09 19:31:23 2195

原创 回顾线程与线程池

线程、进程、线程池的回顾1.线程与进程2.线程的状态3.线程的创建方式4.start()和run()方法的区别5.线程池的定义6.线程池的创建7.线程池的核心参数8.线程池的工作原理9.sleep()、wait()、yield()、join()10.synchronized()和Lock的区别10.LockSupport1.线程与进程进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。 进程在执行过程中拥有独立的内存单元,一个进程可以有多个线程,而多个线程共享内存资源

2021-10-08 11:13:00 178

原创 redis中的击穿、穿透、雪崩

1.击穿击穿:指的是单个key在缓存中查不到,去数据库查询,如果数据库数据量大且是高并发的(大量请求)情况下就可能会造成数据库压力过大而崩溃。解决方案:通过synchronized+双重检查机制:同一个key一次只能有一个线程访问,阻塞其他线程。缺点:效率低设置value永不过期优点:可靠的,安全缺点:但占空间,内存消耗大,并且不能保持数据最新2.雪崩雪崩指的是多个key查询并且出现高并发,缓存中失效或者查不到,然后都去数据库查询,从而导致数据库崩溃。出现雪崩的原因:多个ke

2021-09-10 15:03:53 208

原创 mysql8.0以上版本中: JDBC和Druid的配置

1. jdbc.properties配置文件的编写jdbc.driverClassName=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://ip:port/database?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=truejdbc.username=rootjdbc.password=123 2. druid.properties配置文件的编写

2021-09-07 15:38:30 1249

原创 log4j的简单配置及使用

1. 在java项目中引入log4j.jar这个包提取码:q1vy百度网盘链接2. 在src根目录下创建log4j.properties文件### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.st

2021-09-07 15:27:55 319

原创 Spring框架使用流程

Spring框架使用流程一 、过程简单梳理二、 Spirng的基本配置及用法1.Maven项目中Spring框架的依赖引入2.配置Spring配置文件的三种方式(1)纯xml文件配置(applicationContext.xml)(2)利用注解配置(还需要xml配置文件,但相较于第一种,已经简单了)(3)使用配置类替代xml文件3.Spring如何进行单元测试三、 Spirng的IOC和DI一 、过程简单梳理tomcatl启动 -》dispatcherServlet(会自动(根据springmvc-s

2021-09-03 12:30:48 716

原创 Win10 环境下安装jdk8 以及环境变量的配置,超详细的教程哦!!!

Win10 环境下安装jdk8 以及环境变量的配置1. 下载jdk(我下载的是8版本哦)2. 安装jdk3. 配置环境变量1. 下载jdk(我下载的是8版本哦)官网链接如今需要账号哦,选择对应的版本下载即可如果不想从官网下的话,提供网盘哦~网盘链接:提取码为:fgl0 2. 安装jdkjdk下载好之后,双击安装。一定要记住安装路径哦!!!!!!(很重要)安装完成后点击关闭,然后就可以准备配置环境变量了。。。。3. 配置环境变量1、在电脑中搜索环境变量,打开2 、点击环境变量2

2021-08-31 22:59:10 1574

原创 一站式教程哦!Vmware和CentOs的安装以及linux、docker、mysql的安装

在这里我转发一条大佬写的博客,很详细,大家可以照着下载和安装。VmWare和linux的安装教程1.下载安装VMWare2.下载镜像3.安装VMWare4.对虚拟机进行设置5.固定linux环境下的ip地址1.下载安装VMWare这是VMWare官网地址下载完对应版本的安装包后,打开exe程序进行安装:过程:选中“下一步“接受条款,下一步两个√都打上,选择安装位置(可以新建文件夹),然后点击下一步 更新检查和体验计划都不选,然后点击下一步选中创建快捷方式,连个都选,然后下一步然后开始

2021-08-11 23:24:18 201

原创 java中的常见问题

java中的高频面试题1. java中的常用容器2.List和Set的区别,以及什么是不可重复3.HashMap是否线程安全,如果想用线程安全的HashMap怎么做?4.编写一个单例模式,常见的单例有哪些,分别列举?5.有哪些排序算法,写出快速排序算法的实现6.给一个二叉树,使用递归和非递归完成先序,中序和后序的遍历7.数据库的事务的四大特性及数据库的隔离级别8.TCP的三次握手和四次挥手9. GET/POST的区别,除了GET/POST还有哪些?1. java中的常用容器常用的List包括Array

2021-08-03 18:22:35 544

原创 Http协议和Https协议

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-08-03 12:55:35 426

原创 线程池的学习

什么是线程池?线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。...

2021-07-27 16:53:40 174

原创 Mysql的⑨道题目,可以了解下哦~

mysql 9道问答题:1. Innodb和Myisam引擎的区别。2. 描述MVCC。3. 事务的四大特性是什么。4. mysql的索引的底层树结构,为什么使用此种结构?5.Innodb和MyIsam的B+树实现有什么不同?6.简述聚簇索引和非聚簇索引的区别,Innodb使用哪种索引?7. 描述更新一行数据的过程。8. 描述jdbc开发的基本流程。9. 简述数据表设计的三大范式1. Innodb和Myisam引擎的区别。InnoDB支持事务,MyISAM不支持。事务是一种高级的处理方式,如在一些列

2021-07-22 22:46:25 128

原创 Mysql中的锁

Mysql中锁的介绍1. Mysql引擎2. 锁的定义3. 锁的分类(1)按锁的粒度分类(2)按锁的级别分类(3)按加锁的方式分类(4)按操作进行分类(5) 按适用方式分类4. 死锁的原理及分析(1) MVCC(2)两段锁:2PL(3)为什么会发生死锁(4)如何避免死锁1. Mysql引擎MySQL引擎就是指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。分类:通过show engines;查看。结果如下图所示、创建新表时如果不指定存储引擎,那么系统就会使用默认的存储引擎,MySQL5

2021-07-20 18:36:50 236

原创 JDBC连接数据库以及druid数据库连接池的使用,有需要的看过来哦!

一. JDBC连接数据库的步骤:注意: 编写jdbc.properties文件(便于后期修改数据)jdbc.driverClassName=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://ip:3306/数据库名称?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=truejdbc.username=rootjdbc.password=123 连接步骤:

2021-07-18 22:36:16 474

原创 日志的简单使用

日志log4j的配置使用步骤(仅作为记录)1.引入log4j jar包并Add To Path链接:在Apache官网下载对应jar包2.配置log4j.properties文件(这个文件必须在src目录下)此处仅为简单用法log4j.rootLogger=Info,Console,Flog4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.Patt

2021-07-18 22:00:43 1147

原创 快速掌握二叉树的7种遍历方式哦!!!

二叉树的7总遍历1. 树节点结构的定义2. 树的创建3. 树的深度优先遍历3.1 树的前序遍历【根左右】(递归和非递归)3.2 树的中序遍历【左根右】(递归和非递归)3.3 树的后序遍历【左右根】(递归和非递归)4. 树的广度优先遍历(层序遍历)1. 树节点结构的定义树是由一个个节点组成的结构,有个特殊的结点是根节点,而每个结点由自己的左孩子结点和右孩子结点组成。树的结构图:接下来是对树中节点的定义:/** * 树节点结构的定义 * @author Simeng * */publi

2021-06-29 22:46:34 580

原创 了解TCP连接中的3次握手与4次挥手

TCP连接三次挥手与四次握手1. 报文的格式2. 建立TCP连接(三次握手)3. 为什么需要三次握手呢?4. TCP断开连接的过程(四次挥手)5. 为什么要等待2MSL(最长报文段寿命)6.为什么连接的时候是三次握手,关闭的时候却是四次握手?TCP简介:传输层控制协议(TCP Transport Control Protocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议,是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。1. 报文的格式TCP在传输的过程中是

2021-06-25 21:26:18 345

原创 Java中的线程--对线程来个多方位理解!

Java中的线程总结线程Java中的线程总结一级目录一级目录

2021-06-07 12:17:36 403 3

原创 通过源码了解Java中的HashMap的属性细节以及扩容内幕哦!

Java中的HashMap原理一、HashMap概述二、HashMap中的源码属性三、HashMap中对Node的定义四、HashMap中添加元素的实现一、HashMap概述(1)HashMap在Java中是一个类。它是通过键值对结构来存取数据的。底层是通过数组+链表/红黑树实现的。(2) HashMap的特点是 “无序”、 “键唯一“。(3)注意:HashMap中的key和value都允许为null。二、HashMap中的源码属性(1)HashMap继承自AbstractMap这个抽象类

2021-06-04 22:43:50 185

原创 Java中的集合框架(JCF)--快速了解集合间的关系以及特点

Java中的集合一、容器框图二、集合的的基本概念三、集合1、List集合(有序、可重复)(1) ArrayList类(2) LinkedList类(3) Vector类(4) Stack(栈)后进先出2、Queue集合3、Set集合(无序且不重复)4、Map集合一、容器框图二、集合的的基本概念Java中集合类被定义在Java.util包中,可以存储数据和对象,因此也被称为“容器”。常见的有四种集合:List、Queue、Set、Map。三、集合1、List集合(有序、可重复)(1) Ar

2021-05-28 19:54:25 985 4

原创 详细了解Java中方法(定义、传参、重载与递归)

Java中的方法一、方法的定义二、方法的参数三、方法的重载四、方法的递归一、方法的定义每个对象都有自己的行为,比如一只狗会跑会跑会叫等,我们把这些行为称之为方法,是动态的,可以使用这些方法来操作一个对象。那么方法是怎样定义的呢?具体格式如下: 修饰符 返回值类型 方法名([参数类型 参数名1, 参数类型 参数名2, ...]) { 执行语句; [return 返回值;]//若没有返回值,返回类型为void }方法定义示例如下(此处返回int类型):/** * 方法为

2021-05-11 20:29:15 133

原创 通俗易懂的介绍关键字final 和static

final 和 static

2021-05-10 09:35:36 242

原创 Java中的冒泡排序,选择排序,插入排序的原理及实现!!!

Java中的数组排序一、冒泡排序(1)冒泡排序的思想(2)冒泡排序的实现二、选择排序(1)选择排序的思想(2)选择排序的实现三、插入排序(1)插入排序的思想(2)插入排序的实现一、冒泡排序(1)冒泡排序的思想比较相邻的元素。如果第一个比第二个大,就交换他们两个。比较每一趟中的每两个相邻的元素。这样一趟下来最大的最大的数就在最后面比较数组长度n减1趟,每趟比较相邻的元素。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。(2)冒泡排序的实现 /*

2021-05-08 13:16:52 136 2

空空如也

空空如也

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

TA关注的人

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