自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何在group by 中取得字符串相加的值

使用 GROUP_CONCAT() 函数可以完美解决此问题。举例:有如下三张表,区域,产品,区域产品中间表。需求:分页查询区域表,并展示产品名称。

2022-11-01 17:35:22 741 1

转载 MYSQL时间日期函数——官方文档

下表为MYSQL8.0版本,可用于操作时间值的函数。包括之前版本——最新数据可查看官方文档获取。以及日期字符所代表含义。

2022-10-28 16:53:53 486

原创 mysql load命令批量导入数据

源数据:如下图所示,源数据包含主键,日期,以及其他字段类型,此时需要将数据导出。我们通过navicat工具,利用导出向导,将数据导出为txt格式,时间日期类型需注意格式。

2022-09-16 14:07:12 2722

原创 Idea快速修改实体类属性的数据类型

Idea快速修改实体类属性的数据类型

2022-08-16 10:53:01 3810 1

转载 命令行模拟DNS域名解析全过程

我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。但由于IP地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的IP地址,这样对于我们日常工作生活访问不同网站是很困难的。基于这种背景,人们在IP地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP地址更易被识别和记忆,逐渐代替IP地址成为互联网用户进行访问互联的主要入口。域名_百度百科。...

2022-07-25 11:52:14 2659

原创 Git配置用户名和邮箱

局部配置

2022-07-14 17:41:46 612

原创 MYSQL数据库中导入中国各个省份编号和省份

建表SQL语句二,数据导入 导入数据SQL,其中id为身份证上各个省的编号最终导入效果

2022-07-14 11:32:35 2691

原创 HashMap底层原理及源码解析

HashMap的空参构造方法对加载因子进行赋值,此时加载因子为常量2.调用put方法put()方法时,此时会对key的地址值进行hash计算, 并调用putVal方法,第三个参数为在插入同样key值的时候,是替换旧值oldvalue,还是只有当value为null时才替换value, 第四个参数 如果是false,那该表处于创建模式,否则不是创建模式putVal()resize().........

2022-06-05 14:57:47 145

原创 高效取余运算(n-1)&hash之HashMap的神秘面纱

在JDK1.8中,hashMap进行添加元素时,判断将要插入的位置是否已经有元素时,进行了这样的运算(n-1)&hash 在java中 & 被称为: 位与运算符例如: 377的二进制为101111001, 8的二进制为000001000假如对8进行取余,那么只需要留下最后4位,前面的都可以舍弃,为什么呢?因为比8更高位的都来自于8的2次幂,所以高位的1都是可以整除8,可以直接舍弃。由此可见运算结果如下: 数据a: 二进制数: 10

2022-06-04 23:29:18 1245

原创 什么是快速失败(fail-fast)和安全失败(fail-safe)?

现象:在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception(并发修改异常)。原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变 modCount 的值。每当迭代器使用hashNext()/next()遍历下一个元素之前,都会检测 modCount 变量是否为 expectedmodCount 值,是的话就返回遍历

2022-06-04 18:38:22 2003

原创 ConcurrentHashMap基本使用及其原理

HashMap: 线程不安全Hashtable: 线程安全, 效率低 (底层悲观锁锁整张表)ConcurrentHashMap: 线程安全, 效率高(分析JDK7和8的底层区别)JDK1.7 ConcurrentHashMap 底层分析 创建ConcurrentHashMap对象时: 创建一个长度为16的大数组, 加载因子是0.75 (Segment[]) 创建一个长度为2的小数组, 将地址值赋值给0索引处, 其他索引位置都为null (HashEntr

2022-06-03 17:23:41 3829

原创 volatile在可见性和有序性的基础上,如何保证原子性

获取共享变量时,为了保证该变量的可见性,需要使用 volatile 修饰。它可以用来修饰成员变量和静态成员变量,他可以避免线程从自己的工作缓存中查找变量的值,必须到主存中获取它的值,线程操作 volatile 变量都是直接操作主存。即一个线程对 volatile 变量的修改,对另一个线程可见。CAS 必须借助 volatile 才能读取到共享变量的最新值来实现【比较并交换】的效果在JDK1.5之后提供了一个在util包下的comcurrent包下的atomic包(原子包) 里面提供对各种类的原子操作

2022-06-03 12:05:38 441

转载 MYSQL避免索引失效

该情况下,索引生效,执行效率高。如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始,并且不跳过索引中的列。匹配最左前缀法则,走索引: 违法最左前缀法则 , 索引失效: 如果符合最左法则,但是出现跳跃某一列,只有最左列索引生效: 根据前面的两个字段name , status 查询是走索引的, 但是最后一个条件address 没有用到索引。 由于,在查询是,没有对字符串加单引号,MySQL的查询优化器,会自动的进行类型转换,造成索引失效。尽量使用覆盖索引(只访问索引的查询(索引列完全包

2022-06-01 19:44:25 810

原创 Try_Catch_Finally执行顺序及指令

Try_Catch_Finally执行顺序及指令

2022-06-01 15:25:34 77

原创 偏向锁的设置和被取消

偏向锁的格式头:开启偏向锁的方式:禁用偏向锁VM 参数 -XX:-UseBiasedLocking特殊情况:调用 对象的hashcode方法时,偏向锁也会被禁用. 这是因为调用了对象的 hashCode,但偏向锁的对象 MarkWord 中存储的是线程 id(54位),如果调用 hashCode(31位) 会导致偏向锁被撤销撤销 - 其它线程使用对象:当有其它线程使用偏向锁对象时,会将偏向锁升级为轻量级锁批量...

2022-05-30 21:09:52 620

转载 轻量级锁及其升级为重量级锁的过程

轻量级锁的使用场景:如果一个对象虽然有多线程要加锁,但加锁的时间是错开的(也就是没有竞争),那么可以 使用轻量级锁来优化。轻量级锁对使用者是透明的,即语法仍然是synchronizedjava中synchronized默认是轻量级锁,但当有线程在同一时间发生锁竞争时,轻量级锁会升级为重量级锁Monitor假设有两个方法同步块,利用同一个对象加锁static final Object lock = new Object();public static void method1() {

2022-05-29 23:51:49 2089

原创 JAVA原理之 Monitor(锁)

Monitor 被翻译为监视器或管程每个 Java 对象都可以关联一个 Monitor 对象,如果使用 synchronized 给对象上锁(重量级)之后,该对象头的 Mark Word 中就被设置指向 Monitor 对象的指针Monitor 结构如下 刚开始 Monitor 中 Owner 为 null 当 Thread-2 执行 synchronized(obj) 就会将 Monitor 的所有者 Owner 置为 Thread-2,Monitor中只能有一 个 Ow...

2022-05-29 22:49:45 585

原创 线程安全问题产生的原因

临界区 Critical Section: 一个程序运行多个线程本身是没有问题的 问题出在多个线程访问共享资源 多个线程读共享资源其实也没有问题 在多个线程对共享资源读写操作时发生指令交错,就会出现问题 一段代码块内如果存在对共享资源的多线程读写操作,称这段代码块为临界区 static int counter = 0;static void increment() // 临界区{ counter++;}static

2022-05-28 00:18:21 526 2

原创 线程的五种和六种状态

这是从 操作系统 层面来描述的: 【初始状态】仅是在语言层面创建了线程对象,还未与操作系统线程关联 【可运行状态】(就绪状态)指该线程已经被创建(与操作系统线程关联),可以由 CPU 调度执行 【运行状态】指获取了 CPU 时间片运行中的状态 当 CPU 时间片用完,会从【运行状态】转换至【可运行状态】,会导致线程的上下文切换 【阻塞状态】 如果调用了阻塞 API,如 BIO 读写文件,这时该线程实际不会用到 CPU,会导致线程上下文切换,进

2022-05-27 22:44:45 216

原创 守护线程Demo

守护线程:默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。log.debug("开始运行...");Thread t1 = new Thread(() -> { log.debug("开始运行..."); sleep(2); log.debug("运行结束...");}, "daemon");// 设置该线程为守护线程t1.setDaemon

2022-05-27 22:22:01 115

原创 手写SpringBoot自动装配 , 自定义spring-boot-starter-minIO

以MinIO的操作为例,将MinIO作为一个Bean对象,制作成start对象,通过导入该项目依赖的方式,完成MinIO的相关操作一. 自定义spring-boot-starter-minIO第一步:新建 MinIOTemplate 接口,只关心要实现的方法,不关心具体的实现步骤,封装成一个接口类,到时候我们要使用依赖注入的时候,只需要注入该接口类,就可以使用该类实现类的方法.(多态)第二步:当然是实现该接口类,将具体的业务操作完善,当然,涉及到bucket,minIO的

2022-05-26 16:11:42 689

原创 Spring AOP 底层用的是JDK代理还是CGLIB代理

Spring中AOP底层的实现是基于动态代理进行实现的。常见的动态代理技术有两种:JDK的动态代理和CGLIB。两者的区别如下所示:1、JDK动态代理只能对实现了接口的类生成代理,而不能针对类2、Cglib是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法进行增强,但是因为采用的是继承,所以该类或方法最好不要声明为final,对于final类或方法,是无法继承的。Spring如何选择是用JDK还是cglib?1、当bean实现接口时,会用JDK代理模式2、当bea

2022-05-26 10:21:09 1355

原创 Spring Boot的核心注解是哪个?自动配置实现过程?

1.Spring Boot的核心注解启动类上面的注解是@SpringBootApplication,它也是Spring Boot的核心注解,主要组合包含了以下3个注解:1、@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。2、@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项。如关闭数据源自动配置功能: @SpringBootApplication(exclude = { Da

2022-05-14 17:46:21 1627

原创 Gateway网关过滤器GlobalFilter返回前端JSON数据

废话不多说,直接上干货文章主旨: 将GlobalFilter拦截下来的请求,进行校验,并封装错误信息然后返回前端JSON正文先看该篇文章的示例接口:package cn.itcast.gateway;import com.alibaba.fastjson.JSON;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud...

2022-05-05 20:15:29 3252 1

转载 CAP定理

一、CAP定理C:一致性C代表更新操作成功后,所有节点在同一时间的数据保持完全一致。A:可以性A代表用户访问数据的时候,系统是否能在正常响应时间返回预期的结果。P:分区容错性P代表分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务。CAP定理在系统的实际开发和使用中不可能同时都满足的。CAP的原理图如下:...

2022-05-03 10:40:25 88

转载 重启虚拟机后dhclient进程未运行解决办法

问题分析重启虚拟机后,dhclient进程未运行的根因通常为:1.NetworkManager未开启自启动导致的dhclient进程未运行2.网卡设置未纳入NetworkManager管理导致的处理方法:1.确认dhclient是否运行 ps -ef|grep dhclient2.如果未找到dhclient进程,则确认dhclient未运行,排查NetworkManager是否运行,执行命令 systemctl status NetworkManage...

2022-04-22 09:11:21 3440 1

原创 Linux系统下mysql开启二进制日志bin_log

二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着极其重要的作用,MySQL的主从复制, 就是通过该binlog实现的。二进制日志,默认情况下是没有开启的,需要到MySQL的配置文件中开启,并配置MySQL日志的格式。配置文件位置 : /usr/my.cnf 或者/etc/my.cnf日志存放位置 : 配置时,给定了文件名但是没有指定路径,日志默认写入Mysql的数据目录。1、登录mysql

2022-04-21 15:38:49 3508 2

原创 连接教室网络注意事项

1,自身电脑网络有问题,先打开控制面板——网络和internet——网络和共享中心——更改适配器设置——本地连接(网卡或以太网),先禁用,再启用。看看是否恢复正常。2,教室上网方式:首先请将上网账号与密码保存到桌面文本文档;然后打开控制面板——网络与interent——网络和共享中心——设置新的连接或网络——连接到internet——宽带PPPOE——复制刚才保存的用户名和密码,并勾选显示字符和记住此密码——连接3,win10和win11的电脑,PPPOE拨号连接后有可能会连接不上提示错误720,此

2022-04-21 10:37:56 2287

原创 Linux查看ip地址出错,ens33不显示inet

通过ifconfig或者 ip a 来查看ip地址!如果发现ens33的ip地址隐藏起来了,解决如下:1、识别所有网络接口sudo dhclient ens332、查看ip地址sudo ifconfig ens33此命令行解析如下:sudo命令: 以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行获得IP:dhclient ens33 释放IP: dhclient -r ens33Linux ifcon.

2022-04-21 10:35:58 28202 12

原创 MYSQL高级_存储过程&函数

存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。

2022-04-15 15:23:50 248

转载 MySQL的四种事务隔离级别

1.解决脏读,提交事务同时成功同时失败(read-committed)也称为不可重复读,表示只有提交事务后才可以读2.解决不可重复读,查询事务的结果必须相同(repeatable-read)也称为可重复读,但是多次读取内容相同3.解决幻读,序列化(serializable)串行化,一、事务的基本要素(ACID)  1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也

2022-03-25 16:59:04 108

原创 Spring注解大全

Spring 注解名 功能 使用示例 @Component 将类声明成Spring的bean对象 直接写在类上 @Controller 表现层类注解 直接写在类上 @Service 业务层类注解 直接写在类上 @Repository 持久层类注解(数据层) 直接写在类上 @Bean 将方法返回值变为Spring的Bean对象 写在方法上 @Import 导入配置文件,传入配置文件class类型 ..

2022-03-24 21:05:49 752

原创 idear前端页面报红解决方案

2022-03-19 19:24:08 663

原创 Idear预设文件

第一步:打开设置第二步:设置内容第三步:使用

2022-03-15 18:05:27 110

原创 Tomcat 深度解析_02

5.Web 应用配置web.xml 是web应用的描述文件, 它支持的元素及属性来自于Servlet 规范定义 。 在Tomcat 中, Web 应用的描述信息包括 tomcat/conf/web.xml 中默认配置 以及 Web 应用 WEB-INF/web.xml 下的定制配置。5.1 ServletContext 初始化参数我们可以通过<context-param> 添加ServletContext 初始化参数,它配置了一个键值对,这样我们可以在应用程序中使用...

2022-03-11 21:30:17 723

原创 Tomcat 深度解析_01

Tomcat 专题课程内容序号 第一天 第二天 1 Tomcat 基础 Web 应用配置 2 Tomcat 架构 Tomcat管理配置 3 Jasper JVM配置 4 Tomcat 服务器配置 Tomcat集群 5 Tomcat安全 6 Tomcat性能调优 7 Tomcat 附件功能 1.Tomcat 基础1.1 web 概念1). 软件架构​

2022-03-11 21:09:07 622 1

原创 CRUD_增删改查

CRUD是指在做计算处理时的增加(Create)检索(Retrieve)更新(Update)删除(Delete)几个单词的首字母简写。CRUD主要被用在描述软件系统中数据库或者持久层的基本操作功能。In computing, CRUD is an acronym for create, Retrieve, update, and delete. It is used to refer to the basic functions of a database or persis

2022-03-07 09:14:14 1280

原创 Maven的安装及环境变量配置

找到资料中的apache-maven-3.6.1-bin.zip 解压到当前文件夹 找到资料中的 mvn_resp.rar解压到当前文件夹 把解压出来的mvn_resp文件夹 剪切到 加压出来的 apache-maven-3.6.1 目录下 配置本地仓库 在 conf/settings.xml配置文件中配置 配置中央仓库的镜像 在 conf/settings.xml配置文件中配置 <mirror> <id>alimaven</id> ..

2022-03-05 13:59:36 1952

原创 JDBC一图全解

JDBC总结

2022-03-05 13:54:47 242

原创 Idear集成maven环境

集成maven后idear报错误:不支持的发型版本5在maven项目的pom.xml配置文件中添加以下配置<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> ...

2022-03-05 13:52:33 198

空空如也

空空如也

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

TA关注的人

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