自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ThreadLocal内存泄漏示例

ThreadLocal内存泄漏是老生常谈的问题了,原理就不多说了,这里只简单回顾下Thread类有个属性threadLocals,其实就是个map。这个map的结构如下,key是ThreadLocal对象,是一个弱引用,value是调用threadLocal.set时设置的值。下面我们通过示例来看看,ThreadLocal是如何造成内存泄漏的。

2024-01-27 20:48:10 590

原创 spring RestTemplate自定义HttpMessageConverter

Override// 如果MediaType是text/json类型,返回true@Override// 利用json工具将数据转换成java对象,这里用的是hutool的json工具类。@Override// 这里只演示read,所以canWrite返回false.@Override@Override// GenericHttpMessageConverter用的是canRead(Type type, Class<?// 所以这个方法可以不用管@Override。

2023-05-20 17:36:40 2896 2

原创 浅谈springboot启动过程

为了后文方便,我们先来回顾一下spring的一些核心概念。spring最核心的功能无非是ioc容器,这个容器里管理着各种bean。ioc容器反映在java类上就是spring的核心类ApplicationContext。ApplicationContext有众多的子接口和子类,不同的实现类有不同的功能。

2023-05-02 09:29:09 2334 2

原创 TCP Nagle算法及示例

TCP nagle算法是说,一个TCP连接只允许有一个未被确认的小数据包,如果有小数据包未被确认,其他要发送的小数据包先被缓存起来,等收到确认后, 把这些数据包再一块发送出去。

2023-02-11 19:35:41 2979

原创 Rabbitmq基本使用以及与springboot集成简单示例

Rabbitmq基本使用以及与springboot集成简单示例,rabbitmq基本概念,常见问题。

2022-10-28 22:00:00 3388

原创 kafka的入门基本使用以及与springboot集成

本文总结了kafka的基本使用,包含下载安装,基本的消息发送与消费,并介绍kafka中的一些概念以及与springboot的集成。

2022-08-07 14:09:59 3185 1

原创 idea打开svn子目录下的工程无法看到Subversion菜单

有时候我们的java项目不在svn版本控制的根目录下(也就是含有".svn"文件夹的目录),可能在某个子目录下,如果我们在idea中打开这个子目录项目,会发现无法进行版本控制相关的操作,没有"Subversion"菜单,只有一个"Version Control"选项卡,且选项卡下没有内容显示,如下图。想要更新或提交代码也没地方可操作。此时我们只需要点击 VCS -> VCS Operations -> Enable Version Control Integration...然后在弹出的

2022-03-25 21:00:00 1399

原创 vmware workstation player配置centos7固定ip

网上关于在vmware中配置centos固定ip的有很多,不少都是基于NAT模式,但是这种配置方式需要先进入到虚拟机的如下界面进行设置,vmware workstation pro有如下界面,但是对于免费版的vmware workstation player没有如下界面,不知道怎么配置,可能有办法配置,但是我没发现。经过尝试发现,可以通过配置成桥接模式来设置固定ip。具体配置方式如下。首先将虚拟机的网络设置成如下桥接模式,桥接模式下可以把虚拟机的网络和主机的当成同等地位,它们是在同一个局域网,所以在

2022-03-08 22:21:05 2935

原创 mybatis jdbcType的作用,无效的列类型错误解决办法

在使用mybatis时,我们可以指定jdbcType,对jdbcType一直有疑惑,有时候可以不加,有时候不加又会报错,网上对于jdbcType的解释也不是很全面,或者可能就是错的,今天专门研究了下,算是对这个知识点有了些了解。首先说结论,对于如下一条insert语句(这里只是做测试,实际中肯定不会这么写),如果我们的age传的空,那么对于mysql数据库可以正常插入,对于oracle数据库,会报错“无效的列类型”。也就是说对于mysql数据库的插入来说,jdbcType是没用的,oracle数据库是有

2022-02-16 12:48:48 8735 2

原创 springboot自动配置原理

springboot自动配置可以使我们省去很多编码工作,往往只需要引入一个包,所有需要的bean及配置就自动处理好了,那么springboot是如何实现自动配置的,我们又如何利用自动配置来为我们工作,本文就做一个探讨。springboot加载配置类的流程springboot自动配置的原理其实是在@EnableAutoConfiguration这个注解,一般我们使用springboot时都会使用@SpringBootApplication,其实这个注解已经包含了@EnableAutoConfigura

2022-02-14 11:43:18 4817

原创 springmvc自定义处理器映射器和处理器适配器

springmvc通过处理器映射器(HandlerMapping)和处理器适配器(HandlerAdapter)来处理http请求,当一个请求经过DispatcherServlet后,DispatcherServlet会选择一个合适的处理器映射器和处理器适配器来对请求进行处理。通过自定义处理器映射器和处理器适配器,我们可以学习掌握springmvc是如何处理一个请求的,因此本文就通过自定义映射器和适配器,来看看springmvc是如何使用映射器和适配器来处理请求的。直接自定义没什么意思,我们先确定一

2022-01-13 07:31:37 3815 1

原创 前后端分离使用shiro登录认证cookie跨域问题踩坑

基于cookie, session的登录认证一般后端需要将session id保存在cookie中,这样下次请求时浏览器带上cookie,服务器才知道是同一个会话,根据session id取出session中保存的用户信息,以确定用户是否已登录。在前后端分离模式下,前端一般通过ajax请求向服务器请求数据,但是如果前后端部署在不同的域名下,因为一些安全机制,cookie无法跨域携带,所以如果还想基于cookie, session来实现就要做一些配置以实现cookie可以跨越携带。...

2021-10-30 11:26:49 3548

原创 mysql字符集和校对规则(character sets and collations)详解

mysql字符集(character sets)是指一系列符号以及符号对应的编码的集合,比如英文字母可以用ASCII编码,中文可以用GBK或者UTF8编码。校对规则(collations)则是指一种比较字符的规则,这种比较规则决定了mysql如何进行排序以及如果对字符比较大小。mysql的character sets和collations有很多种,而且可以在多个维度去配置,包含服务器的配置和客户端的配置,对于初学者往往容易搞混,有时候出了乱码等问题也不知道怎么排查。今天笔者就详细梳理一下mysql中的c

2021-08-15 22:01:20 5931 1

原创 mysql安装详解(installer方式和zip压缩包方式)

通过mysql installer安装mysql installer可以认为是一个mysql安装器,通过这个installer,我们可以安装和卸载mysql的很多应用,如不同版本的mysql,mysql workbench等。这种方式安装mysql相关应用很方便,推荐用这种方式。首先下载mysql installer,下载地址https://dev.mysql.com/downloads/installer/可以看到页面上写了X86, 32bit,这个不用担心只有32位版的,我们在安装my...

2021-08-08 17:22:18 11625 3

原创 idea 2021版本错误提示反应慢

idea更新到2021后,最后开发经常发现,写了个错误语句后,老半天不提示错误。或者把有错误的地方改对,还是提示有错误,非得手动编译一下效果才反应出来。有时候还会出现明明某个mapper接口有方法,可以就是不提示或者提示有错误。后来把版本改回2020.03就好了,不知道是我电脑的问题还是idea版本的问题。比如下图的warning提示,有时候我明明在for循环里加上了语句,过了好久还是提示empty body。...

2021-08-07 12:10:51 5904 10

原创 《程序员的自我修养—链接、装载与库》pdf书签,目录分享

在网上下载到《程序员的自我修养—链接、装载与库》pdf版本,拜读之后受益匪浅,但是因为下载的pdf没有书签,所以想要查找某一章的内容不是很方便,于是自己制作了一下书签文件,将书签文件导入pdf,就可以自动生成pdf书签啦!书签文件:链接:https://pan.baidu.com/s/1aeky9Iy0ztS_Z3Iyl-I4RQ提取码:tz2r书签文件的使用方式可以看我的另一篇文章。https://blog.csdn.net/jerry741/article/details/11844.

2021-07-07 20:59:55 5679

原创 计算机组成原理(第2版)唐朔飞 - 详细目录分享(无pdf)

网上很多版本的计算机组成原理pdf是没有目录的,于是自己做了下目录,本来想着把自己做好目录的pdf分享一下,但是咱是遵纪守法的人,觉得这样不妥,于是把自己做好的目录用FreePic2Pdf这个小工具提取了出来,分享给有需要的人。怎么再导入自己的pdf,可以看下面的教程。首先下载FreePic2Pdf这个软件,很多网站可以下载,我是在脚本之家下载的,这里把我下载的分享出来吧,方便大家下载。FreePic2Pdf下载:链接:https://pan.baidu.com/s/1uHwhIH-zFzvuidh

2021-07-03 16:35:25 3342

原创 mysql日期时间函数

本文内容取自mysql官方文档,本文只是针对官方文档内容做了个总结,并列举了一些例子方便对函数进行理解,文中包含了官方文档所列出的所有日期时间相关的函数。官方文档地址:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html为了避免产生歧义,首先说明一下,文中所说的日期(date)是指只包含年月日的日期,也就是不包含时间部分,时间(time)是指只包含时分钞(毫秒)的时间部分,也就是不包含日期部分,日期时间(da

2021-07-02 22:16:08 1516

原创 tomcat10部署springboot项目404

今天在把springboot项目打成war包部署到tomcat 10时404,访问不到,同样的war部署到tomcat8就可以了。

2021-04-26 22:09:42 4092 4

原创 使用idea进行java项目开发实现热部署-debug及jrebel方式

对于比较大的项目,启动往往会比较慢,所以我们希望在开发过程中修改完代码后可以不用重启就可以让我们修改的代码生效。要想在不重启的情况下使修改的代码生效,目前我所知道的是有三种方式:idea debug方式启动、idea中安装jrebel插件以及使用spring-boot-devtools方式。spring-boot-devtools平时不怎么用,这里不做讨论,这里只研究另外两种方式。由于这两种方式的演示用视频比较好,所以我录制了一个视频,有兴趣的可以看一下,有不足的地方欢迎大家批评指正。本文只是做一个总结

2021-04-24 20:55:13 507 1

原创 通过java模拟mysql join原理

mysql join连接查询时究竟是如何关联两张表的,我们通过java来模拟一个mysql join的过程,就很容易理解了。这里我们就不和mysql打交道了,直接用java模拟,假设有table1和table2两张表,table1只有一个int类型的字段a, table2只有一个int类型的字段b, 我们分别用如下两个类来模拟。后面的关联查询时我们用a字段和b字段进行关联。//表1的数据结构,只有一个字段apublic class Table1 { int a; @Overri

2021-04-18 15:28:15 687

原创 spring aop @annotation的用法

@annotation用在定义连接点时,对连接点进行限制。比如我们想对标注了@Deprecated的方法进行拦截,可以如下定义。@Servicepublic class ServiceA { @Deprecated public void testa() { System.out.println("testa"); }}@Servicepublic class ServiceB { public void testb() { S

2021-04-09 23:41:02 10990

原创 Could not create connection to database server getServerCharset NullPointerException

今天在开发时遇到如下一个错误,原因是数据库版本问题。mysql数据库驱动用的是5.1.34,本来一直连的线上数据库也是mysql5,这样是没问题。今天想连一下本地数据库做一些测试,由于我本地数据库安装的是mysql8,所以启动的时候报了如下错误,把本地数据库也安装为mysql5就可以了。com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database

2021-04-09 21:51:48 619 1

原创 java通过jni调用dll文件报错java.lang.UnsatisfiedLinkError

项目中需要对接其他系统,需要通过一个jar包调用对方系统接口,但是这个jar包通过jni调用了.dll文件,一开始在ide中运行提示在“C:\Program Files\Java\jdk1.8.0_271\jre”目录下无法找到.dll文件,好吧,那就把对方提供的.dll文件复制到“C:\Program Files\Java\jdk1.8.0_271\jre”目录下,复制完成后可以正常启动了。但是后来将项目把成jar包,以java -jar xxx.jar启动时却报如下错误。Exception i

2021-01-27 20:57:41 1578 1

原创 java list只有两个元素时,循环删除(remove)元素不会报ConcurrentModificationException异常

我们都知道,java中的ArrayList在使用增强for循环或iterator循环中调用list本身的remove方法删除元素时会报ConcurrentModificationException异常,通过iterator的remove方法来删除就不会报异常了。当然增强for循环只是个语法糖,本质还是用的iterator。今天想试验一下这个异常,于是写了如下代码。public static void main(String[] args) { List<String> list =

2021-01-07 12:38:41 508

原创 windows mysql启动错误:由于找不到MSVCP120.dll,无法继续执行代码,重新安装程序可能会解决此问题。

今天由于一些原因重装了系统,重装完成后下载mysql解压版启动mysql时报错了:“由于找不到MSVCP120.dll,无法继续执行代码,重新安装程序可能会解决此问题。”,看来是有文件缺失,一般这种情况是程序所依赖的某些windows支持库没有安装。后改用安装版mysql,也就是下载mysql的msi文件进行安装,安装过程中会检查系统要求是否符合,如下图,可以看到我是本机缺少vc++2013导致了。因为我本机正好需要安装visual studio,所以我没有像网上说的去下载对应的vc++进行安装

2020-12-13 16:27:28 6177

原创 java中一个有意思的字符串intern问题

内容

2020-12-08 20:49:20 319

原创 ClassNotFoundException和NoClassDefFoundError的区别

首先从语法上来说,ClassNotFoundException是一个Exception,也就是个异常,而且是一个非运行时异常,需要显示处理异常,NoClassDefFoundError是一个Error,也就是个错误。Error不用显示处理,一般发生Error错误会导致整个线程终止运行。接下来我们先做个实验,看一下结果,然后再来总结。实验1:Class.forName加载类测试代码如下public class Demo1 { public static void main(Strin

2020-12-01 21:26:18 306

原创 spring data jpa cascade级联操作研究

由于平时用mybatis比较多,刚接触spring data jpa的时候,对一对多,多对多关联映射以及关联之间的级联操作学的很迷糊,于是自己实验总结了一下spring data jpa中的6种级联操作。spring data jpa的级联操作有如下6种CascadeType.ALL,CascadeType.DETACH,CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH,CascadeType.REMOVE。其中ALL代表包含所有

2020-11-18 23:55:39 3778 3

原创 01背包问题暴力解法

背包问题暴力解法

2020-11-18 20:33:28 2707

原创 cannot import name ‘preprocessing‘ from ‘keras.layers‘

今天在学习《Python深度学习》时,按照书中的如下写法导入时报错,无法从keras.layers导入preprocessing。我安装的tensorflow版本为2.3.0,keras版本为2.4.3。from keras.datasets import imdbfrom keras.layers import preprocessing# 报错信息Traceback (most recent call last): File "e:\mystudy\python\tf_demo.py"

2020-10-20 20:06:01 5060 1

原创 kettle通过命令行参数传递数据库连接信息

在用kettle进行数据库数据同步时,需要设置数据库连接信息,但是一般开发环境和生产环境数据库不一样,如果在开发阶段把数据库连接信息写死,那么在生产环境部署时又要重新打开.krt或.kjb文件重新编辑数据库连接信息。解决方法是数据库连接信息可以通过命令行参数传入,这样只需要在启动时改变一下参数就可以了。下面以配置一个简单的表输入为例来说明。新建一个转换,数据库连接信息设置如下,注意我们都是用的变量,没有写死数据库连接信息。这里说个小插曲,如果我们定义的数据库连接没有在转换中用到,那么下次打开文件的时候这

2020-09-29 17:17:06 3033 2

原创 java不同包中含有全限定类名相同的类时的加载顺序

问题:如果有两个不同的jar包中含有两个全限定类名完全相同的类,那么如果我们程序中使用到了这个类,会加载哪一个呢,今天我们就来做个试验看看。为了做试验,我们建立如下三个module,其中main是一个springboot项目,其中引用了demo1和demo2两个模块。如下图demo1和demo2中都有一个com.demo.DemoClass类,如下然后我们在main类中写一个接口,访问com.demo.DemoClass中的info字段,如下。好了,启动项目...

2020-09-24 12:56:32 8337 3

原创 mall项目所需软件

github 40k start的mall商城项目所需安装的软件,由于比较多,自己整理了一份,分享给有需要的人。链接:https://pan.baidu.com/s/1YF58oOx_6aKpE-f7MX4vJg提取码:1z2o

2020-09-18 22:38:34 553

原创 spring cloud gateway整合nacos通过服务名获取不到服务404

今天在参照这篇文章https://blog.csdn.net/forezp/article/details/85210153测试spring cloud gateway整合nacos时,想如下配置,就可以通过服务名来调用服务接口,不用配置rooter了。但是测试发现总是404,后来发现是版本问题。spring: application: name: chaoyue-gateway cloud: gateway: discovery: locator.

2020-09-11 18:03:13 7982 9

原创 vue element admin登录逻辑,登录流程

说明:本文只是自己学习过程中的一点记录,不算教程,所以写得比较粗,仅供参考。首先从配置的路由可以看出,login页面会进入login组件找到@views/login/index,可以发现登录逻辑处理函数是调用store中的actions "user/login"进行登录处理。找到@/store/modules/user.js,可以看到有一个login的actions,这个actions就是处理登录逻辑。在处理登录逻辑时调用了一个login函数,注意下面那个login函数在页面..

2020-09-10 14:50:26 1322

原创 Nacos从配置中心读取配置报错null com.alibaba.nacos.api.exception.NacosException: null

在学习从nacos配置中心读取配置时报错如下。com.alibaba.nacos.api.exception.NacosException: null at com.alibaba.nacos.api.config.ConfigFactory.createConfigService(ConfigFactory.java:45) ~[nacos-api-1.0.0.jar:na] at com.alibaba.nacos.api.NacosFactory.createConfigService(Na

2020-09-04 13:15:25 6275 2

原创 datagrip只导出表结构

datagrip导出数据表以及数据其实是用的mysql自带的mysqldump程序来导出。关于如何导出,网上已经有很多文章了,这里就不多说了。但是在导出界面没有只导出表结构这个选项,如果想要只导出表结构,可以自己手动在导出命令加上个-d选项。...

2020-08-25 15:59:35 11771

原创 A fatal error has been detected by the Java Runtime Environment: EXCEPTION_ACCESS_VIOLATION

今天把一个springboot项目打成jar包,然后通过java -jar启动时没启动起来,报了如下错误。## A fatal error has been detected by the Java Runtime Environment:## EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000010014ed4, pid=18668, tid=0x00000000000028d8## JRE version: Java(T...

2020-08-24 09:57:04 5735 3

原创 bat文件执行命令缺失,少字符

今天写bat文件的时候出现了如下奇怪的现象,第2个“echo 我是一句话”这个命令的echo被“吃掉了”。为了说明这个问题,我先说一下我对bat文件做了什么操作。一开始我是在idea上新建的bat文件,刚建好后默认是utf8编码,但是用utf8编码运行会乱码,如下。于是我就转成了GBK编码,但是idea转GBK后,自动把回车符给设置成了LF格式,但是windows上默认的是CR LF格式,这就有问题了,CR LF占两个字节,LF占一个字节,在读取bat文件的回车时,按两个字节去读,但是实际只有一个字节,

2020-07-01 10:30:50 1501 3

空空如也

空空如也

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

TA关注的人

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