自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Spring Boot】org.springframework.beans.factory.support.BeanDefinitionOverrideException

因为有一个Bean被重复定义

2022-02-14 10:48:37 1067

原创 对象创建

之前说到的类加载部分以及JVM内存模型,讲到的是对象创建中的一个小步骤(类加载)以及对象创建完成之后(JVM内存模型)如何使用的部分。现在来理解下对象创建 对象创建 主要流程: 检查类是否加载 如果没有加载,进入类加载部分,如果已经加载,则直接进入下一步 分配内存(接下来的步骤需要注意和类加载中类似的步骤分开) 栈上分配 or 堆上分配 栈上分配 对象分配内存时,JVM会通过对象逃逸分析确定对象是否能被外部访问,如果不会,则可以将对象在栈上分配内存(随着栈帧出栈销毁,减少GC压力)。同时,如果

2021-03-10 15:53:53 129

原创 JVM内存模型

对于JVM来说主要包括几部分 类装载子系统: 加载 -> 验证 -> 准备 -> 解析 -> 初始化 a. 加载:通过IO读取文件,只有使用到这个类的时候才会加载 b. 验证:检查class文件是否正确 c. 准备:为静态变量分配内存,并且赋默认值 d. 解析:将符号引用替换为直接引用,处理静态方法。符号引用就是指某些静态方法(代号)替换为指向数据所在内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成)。与之相对的还有动态链接(运行期间完成),在栈帧中存在一块

2021-03-08 00:51:46 132

原创 类加载器

Java中为我们提供了以下几种类加载器 BootstrapClassLoader:引导类加载器,是c++语言实现的(所以在Java程序中没有对象表示),主要加载jre/lib下的jar包 System.getProperty("sun.boot.class.path"); ExtClassLoader:扩展类加载器,主要加载jre/lib/ext下的jar包 System.getProperty("java.ext.dirs"); AppClassLoader:程序类加载器,是我们平常最常用的 Syste

2021-03-07 02:12:00 219 1

原创 code review规范

英文文档:https://github.com/google/eng-practices 中文文档:https://github.com/zijinshi/google_eng_practice

2020-12-29 11:11:53 187

原创 MQ复习笔记:RabbitMQ

MQ: Message Queue 优劣势 优势:异步解耦、削峰填谷 劣势:增加系统复杂度 常用MQ MQ 单机吞吐 消息延迟 RabbitMQ 万级(次之) 微秒 ActiveMQ 万级(最差) 毫秒 RocketMQ 十万级(最好) 毫秒 Kafka 十万级(次之) 毫秒 RocketMQ 常用概念 Broker: RabbitMQ server Virtual Host: 可以理解为不同的数据库 Connection: TCP连接(长连接) Channel:轻量级

2020-12-16 09:46:19 109

原创 统计代码执行时间的方法

java.lang.System System.currentTimeMills() System.nanoTime() java.util.Date Date.getTime() StopWatch org.springframework.util.StopWatch StopWatch stopWatch = new StopWatch(); stopWatch.start(); stopWatch.stop(); stopWatch.getTotalTimeMillis() org.a.

2020-11-26 16:06:44 181

原创 并发复习笔记

CPU缓存行:64bytes 几种常见的概念 内核空间与用户空间:针对于内存来划分的 内核态与用户态:针对于CPU来划分的 KLT与ULT:针对于线程的管理工作是由内核去完成还是程序自己完成来划分 并发三大特性: 原子性:一个或多个操作,要么全部执行,要么全部不执行,synchronized/lock 可见性:一个线程修改共享变量,其他线程可以看到修改的值,volatile(MESI) 有序性:因为存在指令重排(编译器,CPU)程序执行顺序要按照代码先后顺序执行,volatile(内存屏障..

2020-11-20 14:37:26 145 1

原创 zookeeper复习笔记1:基本概念

zookeeper是什么:分布式协调框架 基本特性 1. 文件系统数据结构: - 无相对路径的概念,所以操作的时候都需要使用全路径 - 节点类型 持久节点: 直接创建的节点都是持久节点 临时节点[-e]: 和sessionId绑定,session退出后会被服务器删除(定期扫描删除),临时(序号)节点无子节点 持久序号节点[-s]:和持久节点类似,但创建时会默认增加序号(10位) 临时序号节点[-e -s]:和临时节点类似,也是会增加序号 container节点[]:如果没有子节点,会被定期删除(v

2020-11-16 14:31:27 148

原创 引入jackson-dataformat-xml的影响

最近项目发生一件怪事:调用其他接口的时候,返回数据从json变为了xml。而且直接通过浏览器访问自己的接口获取数据时,返回的也是xml格式。于是排查了下原因: 调用其他API出错原因 项目中使用的RestTemplate进行调用,当引入jackson-dataformat-xml,RestTemplate的messageConverter里面会增加MappingJackson2XmlHttpMessageConverter,并且优先级高于MappingJackson2HttpMessageConvert

2020-11-12 10:38:23 2800 2

原创 【划重点系列】单例模式

单例模式 单例模式实现方式有以下几种 懒汉模式 饿汉模式 内部静态类 enum实现

2020-08-26 23:04:08 111

空空如也

空空如也

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

TA关注的人

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