- 博客(88)
- 资源 (1)
- 收藏
- 关注
原创 RabbitMQ启动服务闪退
3.set RABBITMQ_BASE=D:\rabbitmq_server\data(自定义一个目录)6.net start RabbitMQ(用这个能起成功)1.管理员运行cmd进入RabbitMQ安装目录。
2024-02-26 17:29:44 1080
原创 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
原创 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
原创 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
原创 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
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人