自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

道阻且长,行则将至!

是一个程序员,也是一个文学爱好者,希望能不辜负每一份热爱!

  • 博客(29)
  • 收藏
  • 关注

原创 第二章《鸣鹿谷之殇》

他抡起山海枪,使出最强的一招“山崩海啸”,银龙狂舞,无数枪影向熊淼一众人刺去,一两个功力较差的人直接命陨当场,这使得除熊淼之外的其他人有些迟疑了,他们看向熊淼,好像等着他出手打开局面。”云万山不舍地看着江小婉,道:“我依稀记得你我相遇的那个夜晚,我们相遇于镜湖之上,那晚月光如注,你的出现就像在镜湖里投下了一块巨石,湖面泛起了层层涟漪,那涟漪荡漾在我的心头,没有尽头。熊淼眼看战局久攻不下,招式也变得越来越凌厉,突然,他眼前一亮,他发现云万山好像有意背靠着草庐,他看了一眼紧闭的房门,接着将刀向草庐内掷去。

2024-04-24 20:00:25 17

原创 第一章 《阴阳交错》

房间里一位身穿白色衣服的女子面色苍白,额头布满冷汗,一头乌黑的长发也变得湿漉漉,从她紧凑的双眉间,仿佛能感觉到她正在经历的痛苦,床边围着几个身穿粉色宫服的宫女,有的在给那女子擦汗,有点则握着她的手,嘴里在跟她说着话,一个身穿麻色普通衣服的老妇人,在有条不紊地忙碌着,但是她眼里满是焦急,似乎情况不容乐观。男子猛地推出草庐的内门,一个身穿粉色衣服的女子正躺在一张简易的床上,她拥有娇好的容颜,眉如柳叶,一双明亮眼睛顾盼生辉,挺翘的鼻梁下是一张樱桃小嘴,她腆着肚子,正艰难地用双手撑起自己的身子。

2024-04-24 19:58:28 182

原创 从Redis反序列化UserDetails对象异常后发现FastJson序列化的一些问题

最近在使用SpringSecurity+JWT实现认证授权的时候,出现Redis在反序列化userDetails的异常。通过实践发现,使用不同的序列化方法和不同的fastJson版本,异常信息各不相同。所以特地记录了下来。

2023-11-24 19:04:29 570

原创 Spring循环依赖源码分析

说到Spring的循环依赖,我们常会提起过三级缓存,那三级缓存究竟是什么?又有什么作用?Spring是怎么实现循环依赖的?带着这些问题,我们一起来开启这篇文章。

2023-10-24 18:11:07 238

原创 Spring动态代理源码分析

说到Spring的核心功能,Spring AOP是始终绕不过去的一个点。而说到Spring AOP,开发中我们经常会用到这个功能,比如:日志记录、权限校验、事务管理等。我们也大概知道它基于动态代理实现的,那除了Spring AOP,Spring还有哪些地方使用到了动态代理?Spring中的动态代理又是如何实现的?让我们跟着这篇文章来一探究竟。

2023-10-20 19:13:23 369

原创 Spring核心扩展点BeanDefinitionRegistryPostProcessor源码分析

我们知道,只要在一个Java类上加上@Component、@Service、@Controller等注解,就可以被加载到Spring容器中,除了以上方式,加了@Bean和@Import好像也可以将对象添加到Spring容器中,究竟Spring是如何实现这些功能的呢?让我们一起来一探究竟。

2023-10-17 13:18:07 653

原创 Spring推断构造器源码分析

Spring中bean虽然可以通过多种方式(Supplier接口、FactoryMethod、构造器)创建bean的实例对象,但是使用最多的还是通过构造器创建对象实例,也是我们最熟悉的创建对象的方式。如果有多个构造器时,那Spring是如何推断使用哪个构造器来创建bean对象实例的?

2023-10-13 18:50:33 385

原创 Spring自动装配源码分析

Spring中的自动装配确实帮我们简化了一些属性的配置,但是对于简单类型,如String、int等基本数据类型,是无法使用自动装配的。同时在存在多个存在歧义的对象时,自动装配也会返回不确定的结果,甚至会抛出异常。日常开发中,我们更多的是使用@Autowired注解(或@Resource注解)进行依赖注入,这种方式即实现了自动装配的灵活性,也兼顾了手动装配的可预知性。

2023-10-13 13:31:05 266

原创 synchronized锁膨胀过程

锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁(但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级)。JDK1.6中默认是开启偏向锁和轻量级锁的,我们也可以通过-XX:-UseBiasedLocking来禁用偏向锁。

2023-10-08 23:25:33 257

原创 一个程序员的诗集【现代诗篇】

是一个程序员,也是一个文学爱好者,不负热爱

2022-07-02 23:49:45 343 1

原创 一个程序员的诗集【古诗篇】

是一个程序员,也是一个文学爱好者,不负热爱!

2022-07-02 22:38:15 1003

原创 一个程序员竟然喜欢上了写诗

​ 我是一个程序员,但我喜欢写诗。关于我喜欢写诗这件事是在无意中发现的:默认,突然心血来潮想弄个公众号(一个键盘侠),奈何总想水文章,于是就打算显摆下自己幼儿园语文接近满分的文学底蕴,然后就写了几首,发现好像是自己的一个爱好,就不定时写写!我最喜欢的古文是《岳阳楼记》,其中一句是我影响最深的–迁客骚人,多会于此。览物之情,得无异乎?所以我大概有成为“骚人”的梦想吧!毕竟我现实中挺内敛的。  我自诩程序员为“键盘侠”,所以我写的第一首诗为《键盘赋》,来内涵下开发人员的死对头(产品?.

2021-10-16 22:03:40 217

原创 记一次Spring源码分析(01.准备工作及java知识补充)

​ ​​ 关于Spring我就不再多介绍了,本文主要介绍Spring源码阅读的准备工作。说到spring框架,我们都知道是其基于反射和动态代理实现的。那我们就来看看反射和动态代理……1.源码获取及编译  直接从GitHub获取,我就不再其他描述了。2.Spring流程图  Spring的本质是一个bean对象的容器,里面存放了bean对象。那容器最核心的是:存储、获取(查询)、生命周期等,例如我们java中Map,put()存储元素,get()获取元素。那.

2021-03-27 23:39:03 204

原创 JVM篇(05.垃圾回收)

​ ​​ 关于JVM垃圾回收,我们知道有各种垃圾回收算法和各种垃圾回收器。本文将对这些知识进行介绍。1.垃圾回收什么是垃圾?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占用的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。1.1 内存溢出1.2 内存泄漏2.垃圾回收算法3.垃圾回收器​    我们先看下classFile的.

2021-03-25 01:44:17 372 1

原创 JVM篇(04.JVM内存结构[运行时数据区])

​ ​​ 我们最熟悉的JVM内存结构就是堆(heap)和栈(stack),除了堆和栈,还有什么?这就是我们今天要讨论的内容。1.JVM内存结构图​    我们先看下JVM结构图    JDK1.8中的内存结构    从上图可以发现:JVM运行时数据区(Runningtime Data Area)有如下几个组成部分:程序计数器(Program Counter Regist.

2021-01-13 00:53:21 489

原创 JDK1.8HashMap源码解析

本文HashMap源码解析是基于JDK1.81. 数据结构  JDK 1.8中,HashMap底层是由“数组+链表+红黑树”组成,如下图,而在 JDK 1.8 之前是由“数组+链表”组成。  JDK1.8中HashMap引入红黑树的主要原因是为了解决链表太长查找的性能变差的问题。2. 继承关系  3. HashMap  下面我们一起来分析HashMap类的源码。3.1 相关字段 /** * 默

2021-01-05 00:08:45 171

原创 JVM篇(03.阅读class字节码)

​ ​​ class文件是JVM的输入,是JVM实现平台无关、技术无关的基础。java虚拟机规范中定义了class文件的结构。class文件格式概述​    我们先看下classFile的结构(查阅java 虚拟机规范)ClassFile{ u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info co.

2020-11-10 09:38:00 144

原创 JVM篇(02.JAVA ASM简介)

​ 我们知道Java是静态语言,而python、ruby是动态语言,Java程序一旦写好很难在运行时更改类的行为,而python、ruby可以。不过基于bytecode层面上我们可以做一些手脚,来使Java程序多一些灵活性和Magic,ASM就是这样一个应用广泛的开源库。​ 可能我们在开发中几乎对ASM没有印象,我记得当时学习cglib反向代理的时候,就需要映入asm.jarASM概述ASM是一个Java字节码操纵框架,它可以动态生成类或者增强既有类的功能ASM可以直接产生二进制class文件.

2020-11-10 09:09:51 740

原创 JVM篇(01.JAVA体系与JVM)

JVM篇(01.JAVA体系与JVM)    关于JVM,可能我们最大的印象就是JDK、JRE和JVM三者的关系。然后就是有些程序可能需要比较大的堆内存,需要在启动配置上配置:-Xms -Xmx等。我记得我第一份工作是做银行系统的,当时系统比较老,没有用到redis缓存,然后程序启动的时候就会创建比较多的监听对象和缓存对象,当时我们就需要配置-Xms -Xmx这两个参数,否则程序会出现OOM。那么我们就从JDK、JRE及JVM三者的关系开始,深入的了解下JVM。

2020-11-09 12:32:53 188 1

原创 Java类加载过程(二)-- 自定义类加载器

    接着上篇博客,下面我们来看看如何自定义类加载器自定义类加载器    JVM中除根类加载器之外的所有类加载器都是ClassLoader子类的实例,开发者可以通过扩展ClassLoader的子类,并重写该ClassLoader所包含的方法来实现自定义的类加载器。    ClassLoader类有如下两个关键方法:loadClass(String name, boolean r

2020-05-31 20:32:00 425

原创 Java类加载过程(一)

    不知不觉从事开发快三年了,这三年自己学的也挺多,但是由于工作用不上,又忘了;最后发现,自己连一个Java类是怎样运行的都不知道,于是拿起曾经的入门书本《疯狂Java》,结合自己的理解,把停更一年多的博客写起来_^_。JVM和类    当调用Java命令运行某个Java程序时,该命令将会启动一个java虚拟机进程,不管该java程序有多么复杂,该程序启动了多少个线程,它们都处于该java虚拟机进程里。同一个JVM的所有

2020-05-31 08:47:26 305

原创 权限管理系统实现思路(SpringCloud+Thymeleaf)(二)

   下面主要来说说Thymeleaf模板使用和权限分配的实现思路。   先看效果图:

2018-11-25 12:23:38 613

原创 权限管理系统实现思路(SpringCloud+Thymeleaf)(一)

权限管理系统实现思路(SpringCloud+Thymeleaf)

2018-11-23 20:36:38 1355

原创 Thymeleaf的普通表单提交与AJAX提交

为Java实体对象添加后台校验注解: //String类型的校验: @NotEmpty -- 不能为空 max=16 -- 最大长度为16 @NotEmpty(message = "songName不能为空") @Size(max = 16 , message = "songName长度不能超过16") private String songName;...

2018-07-02 19:59:32 22817 3

原创 SpringCloud与Thymeleaf整合demo

最近在学习SpringCloud微服务的整合,这段时间也挺迷茫的,不太确定自己的方向,特别是前端这块。最后综合各方面的因素,决定学习Thymeleaf模版引擎,它也是SpringBoot官方推荐的模版引擎。 先来介绍下Thymeleaf: - Thymeleaf是⾯向Web和独⽴环境的现代服务器端Java模板引擎, 能够处理HTML, XML, JavaScript, CSS甚⾄...

2018-06-04 22:10:03 5115 1

原创 用websocket实现实时聊天功能

最近想实现网页版的仿QQ聊天工具,本来想用ajax实现的,但是一想到要一直轮询,就感觉有点蠢。后来在网上找到了websocket相关的资料,就拿来跟大家分享下(不是很熟练,现在只实现了群聊,单聊的前端不会写了。但可以跟大家说说思路)。服务器端代码:首先要创建类WebSocketConfig实现ServerApplicationConfig接口,ServerApplicationConfig项目...

2018-02-25 00:27:24 9504 6

原创 用session监听实现唯一登录及普通类调用Service层的方法的实现思路

最近在写项目的时候遇到一个问题:如何实现用户唯一登录?一开始的想法是给t_user表添加一个字段login_status(登录状态),用户登录前去查询t_user的login_status的值,login_status为未登录状态,则可以进行登录;否则,不能登录。但是在用户非正常退出的情况下(即用户未点击“退出”按钮或浏览器非正常关闭),login_status的值一直为登录状态,用户无法进行登录...

2018-02-06 21:18:20 1554

原创 JavaWeb实现好友验证的思路

需求分析:大家在一些网站注册账号的时候,有时会忘记密码或者账号被盗,正规的网站都是通过手机发验证码的,这可能要调用第三方来实现。因为我是自己做的小项目,这是想有这么个验证的流程,所以我这里就用好友验证来代替。思路分析:1.从数据库中查找出所有的好友,放入一个集合(friendTemList)2.创建一个存放其他名字的集合(otherTemList),用来混淆用户视听3.创建一个随机数x(0-

2017-12-23 21:25:12 2197

原创 java网页版加好友功能实现思路

刚毕业出来工作,感觉像条咸鱼。。。,闲来无事就写了个基于SSM的在线影院的项目,想加个类似网页版QQ的功能,包括加好友及聊天。一直不知道存放好友的数据表(t_friend)该怎么设计?按传统的设计思路把数据表设计成一列表示用户名(userName),一列表示好友名(friendName),一一对应?虽然这样设计的好处是数据之间的关系一目了然,但是明显不适合用来存放好友数据,那A是B的好友,B必然是A

2017-12-10 15:13:05 8409 7

空空如也

空空如也

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

TA关注的人

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