自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (1)
  • 收藏
  • 关注

原创 Mybatis原理分析

MyBatis的基本工作原理就是:先封装SQL,接着调用JDBC操作数据库,最后把数据库返回的表结果封装成Java类。

2024-08-13 22:05:19 886

原创 RabbitMQ启动服务闪退

3.set RABBITMQ_BASE=D:\rabbitmq_server\data(自定义一个目录)6.net start RabbitMQ(用这个能起成功)1.管理员运行cmd进入RabbitMQ安装目录。

2024-02-26 17:29:44 1080

原创 解决pip下载速度过慢的问题

解决pip速度慢

2023-10-11 17:49:41 207

原创 SpringBoot与前端交互遇到的一些问题

SpringBoot打的jar包在Linux运行报错百度找了很多都是一样的答案,但是解决不了我的问题,于是我新建了一个springboot项目发现打的jar包可以在Linux上运行。检查了下只要把下面这2个地方拷贝到我的项目里就能成功打包了。

2023-08-27 15:54:06 424

原创 SpringBean的生命周期和循环依赖

如图,循环依赖分为三种,总的来说就是依赖形成了一个闭环,而打破这个闭环的就是今天重点要讲的三级缓存。调用Bean构造方法或工厂方法实例化Bean,将bean添加到三级缓存singletonFactories里面。利用依赖注入完成Bean中所有属性值的配置注入,如果出现了循环依赖问题,会从三级缓存中解决问题。如果Bean实现了各种Aware 接口,则调用对应的set方法。postProcessBefore对 Bean 进行加工操作,此处非常重要,Spring 的 AOP 就是利用它实现的。

2023-08-14 13:32:40 198

原创 ReentrantLock源码解析和AQS常见问题分析

本文利用ReentrantLock作为阅读AQS的切入口,通过问答的方式让大家更好的去理解今天要掌握的点,也欢迎大家说说自己的答案。

2023-08-03 09:33:32 216

原创 idea各种工具栏消失了(maven,database,ant,project,terminal,build)

我的是build被隐藏了,点击build就能展示出来了

2023-06-12 16:27:32 2902 1

原创 spring源码-代码的特殊写法

在阅读spring源码中,可能会有很多种代码写法在工作中都没遇见过,阅读起来有一定的难度,在本文中,我会把我认为有难度的代码写法拿出来,并举例子说明清楚,方便大家阅读并理解源码。

2023-06-11 15:31:48 635

原创 实用的正则表达式

在很多标签对里面找不为空的标签,如截图,空的标签对1500个,不为空的只有一个。

2023-03-24 10:57:31 104

原创 Java的stream包的几个使用

java8引入的stream包不知道大家使用过没有,处理集合真的超级方便,目前工作中用到的stream包比较少,以下是我用到过的几个场景,希望可以帮助到大家。

2023-03-21 14:02:46 419

原创 unity2d导入psb文件注意事项

导入psb多个图层是方便制作2d骨骼动画今天开始我的unity导入psb文件就一直报这个错,之前都没问题,重新unity和重启电脑都没用,百度也没找到解决的办法,可能是我百度的方式不对?所以大家是怎样百度的?求指导。。。

2023-03-20 22:16:37 1617 2

原创 Unity通过vscode进行debug

因为C#插件升级后,Debugger for Unity识别不到C#文件导致无法生成调试的配置文件。那么我们不在C#文件中去生成不就好了?随便创建一个txt文件,如:test.txt。躲bug生成Launch.json。

2023-03-19 10:49:52 451

原创 MySQL和Oracle的row_number开窗函数分组排序

MySQL和Oracle的开窗函数分组排序

2023-03-14 17:06:37 306

原创 Mac idea使用diagrams查看类图

Mac idea使用diagrams查看类图一、进入类图右键(control+点击触摸板)-> diagrams ->show diagram快捷键command+option+shift+u二、在此页面使用右键添加父类2根手指同时点击触摸板弹出菜单,即windows的右键出来的效果快捷键:空格例如加上AbstractQueuedSynchronizer...

2022-05-28 11:35:16 1768 1

原创 图文Debug详解 ThreadLocal内存泄漏的原因

一、前言在分析ThreadLocal导致的内存泄露前,需要了解一下内存泄露、强引用与弱引用以及GC回收机制。这样才能更好分析ThreadLocal泄漏的原因。如果了解上述问题可直接跳到第二节。1.1 内存泄漏如果不会被使用的对象或者变量占用的内存不能被回收,就是内存泄漏。如果泄漏的数据量足够大,可能会引起内存溢出,导致程序异常结束。1.2 强引用与弱引用强引用: 如 String name = new String(); 一个对象具有强引用,不会被垃圾回收器回收。当内存空间不足,Java虚拟机

2022-05-23 09:54:25 3849 2

原创 CountDownLatch和CyclicBarrier的区别

一、前言在JDK的并发包里提供了几个非常有用的并发工具类。如线程等待的CountDownLatch和CyclicBarrier。二、等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作后再执行后续的代码。2.1 应用场景1个线程等多个线程:当程序需要从3个接口获取数据的时候,可以同时开3个线程去获取数据,等数据都获取到了,主线程再进行下一步操作。1个线程等多个线程:解析Excel的多个shell页,可以开多个线程去读取。多个线程等待:

2022-05-15 18:12:56 688

原创 Java线程池七个参数详解

java多线程开发时,常常用到线程池技术,这篇文章是对创建线程池时的7个参数的详细介绍。

2022-05-10 21:04:31 9324 1

原创 深度剖析 Synchronized 锁升级过程

锁升级:【无锁】【偏向锁】【轻量级锁】【重量级锁】锁升级原理锁优化

2022-05-03 11:36:14 979

原创 IDEA中Git暂存代码暂存区的使用

IDEA中Git暂存代码暂存区的使用一、问题引入二、解决方法2.1 IDEA解决2.1.1 暂存起来:在新分支中, 点击版本控制VCS-Git-Stash Changes2.1.2 读取暂存:点击VCS-Git-UnStash Changes2.2 通过Git命令来完成操作一、问题引入​ 在日常工作中, 通常都按照迭代功能划分分支开发。 可是突然上个分支有一个很紧急的问题bug,需要修改优化, 此时都是在新分支上开发, 随意进行分支切换, 很容易导致代码混乱,不利于代码管理, 这时候需要有一个暂存当前代

2022-04-28 10:36:22 9726

原创 Linux编译并运行java文件

Linux编译并运行java文件1.把java文件上传到Linux上注意: 包路径需要一致2. 编译代码javac current/ConcurrentTest.java3. 运行代码注意: 执行运行命令的时候需要在current这个包的上一级目录下执行。java current/ConcurrentTest...

2022-01-23 21:17:48 1495

原创 我上榜了【CSDN榜单18名】

CSDN榜单18名记录一下第一次上榜如图

2022-01-19 11:35:29 298

原创 python安装指定版本的包

python安装指定版本的包一、安装包的方法1. 默认安装该包的最新版本pip install 包名2.安装指定的版本pip install 包名==版本号比如:pip install pandas==0.24注意:等号写法为==,而不是=。等号前后不能有空格。...

2022-01-19 11:14:43 12181

原创 【错误】SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:852)‘),)

'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:852)

2022-01-18 22:48:07 6745 4

原创 java中集合Collection转list对象

java中集合Collection转list对象最简单的办法如下,注意导包别错了import com.google.common.collect.Lists;Collection<ClassPo> collList = classDaoManager.getListByIds(idList);ArrayList<ClassPo> classPoList = Lists.newArrayList(collList);...

2021-11-03 16:16:25 14549 1

原创 java.lang.UnsupportedOperationException异常处理

java.lang.UnsupportedOperationException异常处理private String[] otherUserFromArray = new String[]{“3”, “4”, “发放”};List<String> userFromList = Arrays.asList(otherUserFromArray);在使用 Arrays.asList()转化数组成为list的时候,生成了ArrayList, 表面上看是 java.util.ArrayList,实

2021-10-29 09:36:49 137

原创 IDEA导入Spring源码环境搭建(图文解析)

IDEA导入Spring源码环境搭建(图文解析)IDEA导入Spring源码环境搭建(图文解析)一、环境准备二、下载源码2.1 fork出一个自己的仓库2.2 复制git地址去idea下载2.3 配置Gradle2.4 设置gradle-wrapper.properties2.5 配置build.gradle文件2.6 然后往下继续寻找,找到如下代码段三、spring-aspects模块IDEA导入Spring源码环境搭建(图文解析)一、环境准备jdk1.8IDEA2021用来阅读和开发

2021-10-24 20:02:16 972

原创 Git报错解决:OpenSSL SSL_read: Connection was reset, errno 10054 错误解决

OpenSSL SSL_read: Connection was reset, errno 10054 错误解决打开Git命令页面,执行git命令脚本:修改设置,解除ssl验证git config --global http.sslVerify "false"

2021-10-18 16:08:32 414

原创 Spring学习(五):动态代理的两种实现方式(全网最容易懂)

Spring学习(五):动态代理的两种实现方式(全网最容易懂)前言要学习SpringAOP之前,肯定要弄清楚什么是动态代理,动态代理是怎样实现的,以及动态代理能解决什么问题。一、什么是动态代理1、字面意思,代理就是代替别人去做一些事情,如线下店代替工厂去卖电脑、代理工厂做售后工作,线下店就是代理商,从卖给工厂的获得的钱提取分成就是增强的方法。2、Java中就是在不改变别别的类,对类做增强处理,如打印日志、事物的控制,权限的管理,后续我们都会介绍。二、两种实现动态代理的方法1、基于JDK的动

2020-12-20 14:53:09 7256 1

原创 Spring学习(三 ):注解的应用

Spring学习(三 ):注解的应用(一)、把Bean注入容器的注解名称作用@Component通用组件@Controller控制层@Service服务层@Repository数据层(二)、用于注入数据的1、@Autowired,自动按照类型注入如IAccountDao会按照类型找到AccountDaoImpl,如果没有类实现IAccountDao,使用Autowired会报错如果有2个类实现了IAccountDao,首先按类型找到这2个实现类

2020-12-14 11:50:07 238 1

原创 Spring学习( 二 ):IOC控制反转和DI依赖注入

Spring学习( 二 ):IOC控制反转和DI依赖注入1、IOC的概念一句话:把创建对象的权利交给了工厂,原来通过new 来创建,自己可以控制,如果通过Factory创建就把创建去权交出去了。

2020-12-13 22:39:57 141

原创 解决GitHub下载慢的方案

提高GitHub下载速度前言众所周知,GitHub是最大的面向开源及私有软件项目的托管平台,但是由于是外国网站,下载源码的时候难免会很慢,很浪费时间,这里我主要介绍2个提升速度的方法。一、码云码云:https://gitee.com/1、创建仓库2、导入仓库3、创建,等待一小会儿就好了二、直接下载.zip包http://gitd.cc/...

2020-12-11 10:03:17 154

原创 Spring学习( 一 ):程序的解耦和自己设计一个BeanFactory

Spring学习( 一 ):程序的解耦和自己设计一个BeanFactory前言我们在学习完工厂模式之后,发现网上给的例子,根本体现不了工厂模式的作用。先不说存在有的例子本身就是错误的,主要是例子中的代码太简单,可以说没必要用工厂模式,只不过是为了说明实现方式和原理。所以,会产生一种错觉:还不如直接new 一个对象来的方便,有效。一、介绍一下工厂模式我们先介绍一下工厂模式的好处,然后再开始用简单的例子来演示工厂模式的实现。1、工厂模式是为了解耦:把对象的创建和使用的过程分开。就是Class A

2020-12-10 22:00:31 136

原创 Spring Bean的作用域

Spring Bean的作用域目前Bean的作用域有以下5种,作用域描述singleton在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,bean作用域范围的默认值。prototype每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean()。request每次HTTP请求都会创建一个新的Bean,该作用域仅适用于web的Spring WebApplicationContext环境。

2020-12-09 21:05:57 176

原创 十大经典排序算法(二)选择排序(Selection Sort)

十大经典排序算法(二)选择排序算法描述首先在未排序序列中找到最小元素,存放到排序序列的起始位置.然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。动图演示代码实现找到最小值的索引。把第 i 次循环的 i 上的值和最小值交换。public class A2SelectionSort { public static void main(String[] args) { int[] array = {3,44,3

2020-12-04 17:33:50 157

原创 十大经典排序算法(一)冒泡排序(Bubble Sort)

十大经典排序算法(一)冒泡排序算法描述相邻的2个数字进行比较,如果第一个数字大于第二个,把它们2交换位置。对每一对相邻数字做相同的操作。重复第一第二步,直到排序完成。动图演示代码实现public class A1maopao { public static void main(String[] args) { int[] array = {3,44,38,5,47,15,16,26,27,2,46,4,19,50,48}; mySort(array

2020-12-04 15:30:29 155 1

原创 MySQL优化、回表、覆盖索引图文详解

MySQL优化环境:MySQL5.7一、总结1、覆盖索引:覆盖索引->减少回表次数-》MySQL5.6后增加了索引下推Explain 的Extra字段, Using index condition很多公司为了节约成本,存储介质使用的是机械硬盘,怕随机读取,随机寻址很消耗性能,这时可以打开 MRR(multi range read),在回表前吧ID读取到buffer里面,进行排序,把随机操作变为顺序操作。覆盖索引,因为是覆盖,所以可以避免排序用到的临时文件。利用覆盖所以加最左原则,减少

2020-12-01 22:42:07 698 1

原创 MySQL基础

MySQL基础一、MySQL简介1、MySQL的基本架构连接器是啥一、MySQL简介全程:My Structured Query Language(结构化查询语言)1、MySQL的基本架构连接器是啥我们要进行查询,第一步就是先去链接数据库,那这个时候就是连接器跟我们对接。他负责跟客户端建立链接、获取权限、维持和管理连接。链接的时候会经过TCP握手,然后身份验证,然后我们输入用户名密码就好了。验证ok后,我们就连上了这个MySQL服务了,但是这个时候我们处于空闲状态。...

2020-12-01 11:17:51 146

原创 多线程之Runnable、Callable和Future的详解和区别

Runnable、Callable和Future的详解和区别在程序运行中,执行的时间和用户的体验是密切相关的,人们不希望用一个经常卡顿的网站或应用,这时候多线程能给程序带来质的提升。一、Runnable简介Runnable接口只有一个抽象的run()方法,此方法是在Thread.start()的时候由JVM调用run方法,创建一个线程,并调用run方法。例子public class RunnableTest { public static void main(String[] arg

2020-11-22 22:08:32 1719 1

原创 格式化控制台日志打印出来的SQL语句

格式化控制台日志打印出来的SQL语句1、打开UltraEdit2、把sql贴进去3、ctrl + A 全选4、ctrl + r 替换5、输入 ^p,全部替换

2020-11-19 17:52:34 365

原创 史上最简单理解Java反射

前言反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,今天主要学习反射的几种用法。一、基本反射技术1.1 根据一个字符串得到一个类getClass方法 String name = "张三"; Class c1 = name.getClass(); System.out.println(c1.getName());打印结果如下:java.lang.StringClass.forName比如我们获取java.lang.St

2020-10-27 16:33:40 401

PLSQL8.0.0.1483.rar

PLSQL

2021-10-19

空空如也

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

TA关注的人

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