自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zzzzzzyn的博客

Java弱鸡,个人博客:https://zzzzzzyn.github.io/

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

原创 记一次Spring循环依赖问题

Spring循环依赖1. 问题SpringBoot 2.1.4报错如下,看了一下是循环依赖的问题。即 A -> B,B -> A( 我的代码里 A 服务内部注入了 B 服务,B 服务内部也注入了服务 A)2. 错误代码3. 解决使用 @Lazy 令两个服务中的其中一方懒加载使用 setter 方式注入骚操作,使用 lombok4. 原理只知道构造注入会造成循环依赖,有空回来填坑...

2020-05-14 15:19:17 178

原创 JVM的一些相关问题

内容都是攒的,不喜勿喷!常见问题1. JVM 年轻代到年老代晋升过程?对象在Form和To之间来回复制,年龄达到15(默认值,可通过 MaxTenuringThreshold 修改),晋升老年代分配对象超过eden内存的一半,直接进入老年代。小于eden一半但没有内存空间,进行minor GC,survivor也放不下,进入老年代动态年龄判断,某个年龄对象超过survivor...

2020-04-22 22:26:28 213

原创 LinkedHashMap源码(JDK1.8)

1. 概述LinkedHashMap继承了HashMap,并在其基础上维护了一条双向链表,用来保证顺序访问。2. 源码分析2.1 内部类和属性LinkedHashMap的内部类继承了Node,并根据需要增加了before,after属性。这两个属性你肯定似曾相识,在LinkedList中使用过。其实他们的功能其实是一样的,定位前一个或后一个entry。// 头结点transient L...

2020-04-19 21:24:59 144

原创 ThreadLocal简析

1. 属性ThreadLocal有三个属性threadLocalHashCode、nextHashCode、HASH_INCREMENTthreadLocalHashCode属于对象的,每个ThreadLocal对象hashcode在初始化时确定且不可变nextHashCode属性是静态的随着ThreadLocal类的加载而加载,分配一个AtomicInteger对象,用来以原子的方式获取...

2020-04-10 16:56:57 238

原创 Mybatis的缓存

缓存实现Mybatis的缓存实现应用了装饰器模式,基础缓存为PerpetualCache,其余的缓存类都在装饰PerpetualCache来实现不同的功能,下面图是部分实现1. PerpetualCache这个缓存比较简单,使用Map来达到缓存的目的。下边是他的源码,比较简单,只贴出了部分public class PerpetualCache implements Cache { ...

2020-04-06 18:10:25 172

原创 计算机网络笔记

第一章1.3 因特网的组成两种通信方式客户端服务器方式(C/S方式),Client/Server方式就像我们Java开发的系统,部署一个网站,那个网站所在主机就是服务器。用户通过浏览器访问网站,浏览器就是客户端对等方式(P2P方式),Peer-toPeer方式数据交换方式电路交换:基本可以做到实时通信电路交换的过程:建立连接–>通信–>关闭连接适用场...

2020-03-23 12:12:56 120

原创 测试图片

2020-02-25 11:39:04 142

原创 Jenkins简单图文教程

配置环境系统配置—>配置邮件通知环境配置,jdk,node,git,maven等插件安装(就比如安装Publish Over SSH)开始构建任务6. 构建maven任务构建vue项目安装publish over ssh插件系统管理===》插件管理===》可选插件===》搜索publish over ssh安装系...

2019-12-05 14:02:50 159

转载 idea在debug模式下的类自动加载

idea在debug模式下的类自动加载idea类的自动加载idea类的自动加载debug时需要修改代码,但修改完还需要重启感觉特别麻烦,就找到了以下这个方法,当代码修改后,idea会自动加载修改的类ctrl+alt+s打开设置框,勾选设置ctrl+shift+a弹出的页面搜索registry,并勾选打开项目设置 ...

2019-11-04 20:29:36 1495

原创 linux权限命令(乞丐版)

linux简单的权限笔记权限管理文件目录基本操作文件/目录所有者查看文件的所有者修改文件所有者文件/目录所在组修改文件所在组其他组改变用户所在组权限基本介绍rwx的权限解读rwx作用到文件rwx作用到目录修改权限通俗方式简易方式修改文件持有者权限管理文件目录基本操作文件/目录所有者默认文件的创建者是文件所有者查看文件的所有者ls -ahl:查看文件所有者下图所示:红线是文件所有者,蓝...

2019-10-21 21:47:23 144

原创 linux笔记和常用指令

linux笔记和常用指令vim关机和重启用户管理1. 添加用户2. 删除用户3. 查看用户信息4. 切换用户组管理1. 创建组2. 删除组用户和组相关文件实用指令vimvi和vim的三种常见模式命令模式(可以使用快捷键)输入模式(输入i进入输入模式)底线模式(读取,存盘,替换,离开vim)q:直接退出q!:强制退出w:写入磁盘w!:强制写入磁盘wq:写入磁盘并退出wq!:...

2019-10-20 17:33:31 174

原创 Rabbitmq个人笔记

Rabbitmq个人笔记关于消息通信生产者和消费者生产者消费者信道AMQP元素交换机队列绑定多租户模式(多虚拟主机)持久化关于消息通信本章问题消息通信概念—生产者、消费者和代理AMQP元素—交换机、队列和绑定虚拟主机消息持久化消息从生产到消费的生命周期生产者和消费者rabbitmq扮演代理服务器(提供投递服务,==》邮局),在我的理解中消息队列使用的就是生产者消费者模式生产...

2019-10-02 21:21:01 110

转载 String类和常量池

String类和常量池String对象的创建方式String str1 = "abc";String str2 = "abc"; // 此时str1 == str2,因为他们都是常量池中的abcString str3 = new String("abc") // 这会在堆中创建一个abc新对象,此时str1≠str3第一种:直接赋值,若字符串存在于常量池中,会直接引用常量池中字符串...

2019-09-27 21:20:52 230 1

原创 Intellij idea中查看当前方法都被哪些类引用

Intellij idea中查看当前方法被那些类引用了当我们想要查看类中的方法都被谁引用时,可以点击这个方法,然后快捷键 Alt + F7 ,弹出如下窗口,点击yes,就可查看到所有的引用树了...

2019-09-26 13:53:40 8394

原创 Intellij idea中查看当前类中所有方法

Intellij idea中查看当前类中所有方法当我们想要查找类中的方法,而类方法又特别多的时候,可以使用快捷键 Alt + 7 (没有修改过快捷键的话),就可以方便地查找了...

2019-09-26 13:46:23 4435

原创 Git常用命令以及误删除文件的恢复

Git常用命令配置类命令版本库操作分支操作关于冲突解决关于撤回操作撤回本次commit文件的误操作(退回到某个版本)配置类命令设置git的用户信息(以后的git提交都会带上这些信息)git config --global user.name "???"git config --global user.email ???????@???.com查看所有配置信息git config --...

2019-09-21 13:49:33 703

原创 一些常用的工具类

下面为大家介绍一些常用的apache工具类(轮子工厂)2333~apache轮子工厂

2019-09-19 10:19:16 200

原创 Java文件流操作

Java文件流基本操作文件流的分类1. 字节流2. 字符流3. 缓冲流文件流的分类1. 字节流所有字节流实现类都继承自抽象类InputStream和OutputStream,下面是一些常用的字节流(输入流和输出流都是一一对应的)FileInputStream:实现对文件字节的读取操作ByteArrayInputStream:把内存中的一个缓冲区作为输入源,从内存数组中读取数据字节(一般...

2019-09-18 15:03:28 633

转载 docker笔记之环境的安装(一)

docker环境的安装Centos 7下安装Centos 7下安装Docker要求CentOS 系统的内核版本高于3.10(Centos 7环境下),可以使用下方命令查看内核版本uname -r // 查看内核版本确保yum包更新到最新yum update // 更新yum卸载旧版本(如果安装过旧版本的话)yum remove docker docker-common do...

2019-09-16 23:52:01 109

原创 Jfinal启动项目后访问404问题

Jfinal启动项目后访问404问题Jfinal启动项目后访问路径报错解决方法Jfinal启动项目后访问路径报错一般情况下是jetty启动成功,但jfinal没有启动,所以显示未找到,可以再Jfinal的config中添加一句输出来查看是否启动成功// 方法没有全部列举public class DemoConfig extends JFinalConfig { // 加载配置信息...

2019-08-30 11:15:24 2146

原创 Java多线程编程笔记(附PDF)

Java多线程编程笔记Java多线程编程核心技术链接:https://pan.baidu.com/s/1waW7B9PTmkNMS-qkh6LNKg 提取码:cm4i

2019-08-20 15:26:41 597

原创 设计模式之单例模式

谈一谈单例模式1. 什么是单例模式2. 设计原则3. 使用场景4. 代码实现(懒汉式,饿汉式)5. 优缺点及总结1. 什么是单例模式定义算法族,分别封装起来,使他们之间可以相互替换2. 设计原则封装变化多用组合,少用继承针对接口编程3. 使用场景针对同一类型问题的多种处理方式,仅仅是具体行为有差别时;需要安全地封装多种同一类型的操作时;出现同一抽象类有多个子类,而又需要使...

2019-08-19 15:23:57 392

原创 算法图解笔记(附PDF下载地址)

算法图解笔记分治策略散列函数广度优先搜索分治策略分治策略(分而治之)是一种解决问题的思路,使用递归实现工作原理:找出简单基线条件(递归中的概念,基线条件指函数不再调用自己;递归条件指函数调用自己)缩小问题规模使接近基线条件(编写涉及数组的递归函数时,基线条件通常是数组为空或只包含一个元素。陷入困境时,请检查基线条件是不是这样的。)代表算法:二分查找,快排散列函数散列表适用场景...

2019-08-08 20:29:32 11319 4

原创 mysql开启慢查询日志

mysql开启慢查询日志https://www.cnblogs.com/jiqing9006/p/9098181.html

2019-08-06 16:55:54 95

原创 Tcp三次握手和四次挥手(乞丐版)

Tcp三次握手和四次挥手(乞丐版)三次握手简易过程:目的:四次挥手简易过程目的三次握手为了准确无误地将数据送达目标处,TCP 协议采用了三次握手(three-way handshaking)策略。用 TCP 协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了 TCP 的标志(flag) —— SYN(synchronize) 和A...

2019-08-06 15:01:42 209

原创 http返回结果的状态码

http返回结果的状态码类别原因短语1XXInfomational(信息性状态码)接收的请求正在处理2XXsuccess(成功状态码)请求正常处理完毕3XXredirection(重定向状态码)需进行附加操作完成请求4XXclient error(客户端错误状态码)服务器无法处理请求5XXserver error(服务器错误状态码)...

2019-08-06 12:44:15 223

原创 http无状态协议如何保存用户状态

http无状态协议如何保存用户状态http无状态协议如何保存用户状态?http无状态协议如何保存用户状态?HTTP 是一种不保存状态,即无状态(stateless)协议。HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理常见的有以下两种解决方案:基于Session实现的会话保持在会话开始时(客户端第一...

2019-08-05 22:39:23 3058

原创 Java8新特性之Optional类(三)

Optional类简介常用API简介Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。常用API...

2019-08-04 12:30:00 183

原创 Java8新特性之Stream流(二)

Stream流简介语法创建stream中间操作简介Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元...

2019-08-03 14:11:13 1247

原创 Java8新特性之Lambda表达式(一)

使用Lambda表达式是为了使代码变的更加简洁紧凑。

2019-08-02 19:41:11 264

原创 LinkedList源码个人笔记

LinkedList源码个人理解简介核心源码内部类基本参数构造方法add方法(重要)addAll方法(重要)get方法总结简介LinkedList底层是链表实现的,所以增删快(插入高效),查询慢。LinkedList继承自AbstractSequentialList,实现了List,Deque,Cloneable,Serializable。LinkedList继承Abstrac...

2019-07-31 16:48:13 177

原创 为什么Object数组无法被强制转换

为什么Object数组无法被强制转换ArrayList中的错误案例原因今天在进行数组的强制类型转换的时候爆了个异常Exception in thread “main” java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;直接上代码。ArrayList中的错误案例List...

2019-07-29 22:53:26 2767

原创 oracle中不能插入&的问题

关于oracle中不能插入&的问题oracle插入字段不能插入**&**的问题,比如下边这个语句&就不能被插入update app_item_img set icon = 'method=queryImg&imgName=grid_operation'where id = 'test'可以改用chr(38)来改写替换,如下update app_ite...

2019-07-26 12:45:51 1688

原创 HashMap源码个人笔记

hashmaphashmappub方法扩容方法hashmappublic class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { private static final long serialVersion...

2019-07-24 11:40:43 122

原创 == 和 equals 的区别

== 和 equals 的个人理解==的使用基本数据类型引用数据类型equals()的使用Java中判断两个变量是否相等有两种方式,分别是 == 和 equals==的使用基本数据类型基本数据类型指的是byte,short,int,long,float,double,char,boolean。对这些基本数据类型判断是:值是否相等引用数据类型引用类型指的是继承自Object类的对象...

2019-07-18 13:38:43 92

原创 ArrayList源码个人笔记

ArrayList源码的个人理解简介核心源码基本参数构造方法trimToSizeadd方法和grow方法(重要)add的重载方法总结简介ArrayList底层是数组实现的,所以特性也是查询快增删慢。但和数组不同的是它可以实现动态增长,在知晓数据的大概容量时可使用ensureCapacity方法进行手动扩容。ArrayList继承自AbstractList,实现了List,RandomAcce...

2019-07-14 13:08:19 138

原创 设计模式之策略模式

谈一谈策略模式1. 什么是策略模式2. 设计原则3. 使用场景4. 代码实现(诸葛亮的锦囊妙计,每一个锦囊就是一个策略。)5. 优缺点及总结1. 什么是策略模式定义算法族,分别封装起来,使他们之间可以相互替换2. 设计原则封装变化多用组合,少用继承针对接口编程3. 使用场景针对同一类型问题的多种处理方式,仅仅是具体行为有差别时;需要安全地封装多种同一类型的操作时;出现同一...

2019-07-12 22:58:23 147

原创 为什么Java许多项目的工具类都是抽象的?

为什么Java许多项目的工具类都是抽象的?为什么项目里许多工具类都定义为抽象类为什么项目里会出现一些common包为什么项目里许多工具类都定义为抽象类防止创建实例因为他是工具类,提供的方法肯定都是static的,一般直接由class.method()调用,防止其直接创建实例。为什么项目里会出现一些common包公共模块方便统一维护实习的时候学到了许多东西,感觉最深的就是编码的一些规范(...

2019-07-12 17:06:19 1830 2

原创 springboot拦截器的使用

springboot拦截器的使用使用场景如何使用总结使用场景处理所有请求的共同问题,例如:解决乱码问题解决权限验证问题如何使用编写拦截器类TestInterceptor 实现HandlerInterceptor 接口并实现相应方法// 实现HandlerInterceptor 接口并实现方法@Componentpublic class TestInterceptor im...

2019-07-09 14:57:25 170

原创 关于Ajax跨域的解决方案

关于Ajax跨域的解决方案和一些个人理解Ajax跨域的原因Ajax跨域的解决方案Ajax跨域的原因浏览器限制跨域(协议、主机名、端口有一个不同就会产生跨域)xhr请求(XMLHttpRequest)当以上三个条件同时满足时才会产生ajax跨域Ajax跨域的解决方案只要破坏上述三个条件之一就可以解决跨域问题浏览器的启动参数上来设置,使浏览器不做跨域校验(不常用)以谷歌浏览器...

2019-07-04 15:49:11 178

空空如也

空空如也

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

TA关注的人

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