自定义博客皮肤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 968

原创 对象创建

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

2021-03-10 15:53:53 67

原创 JVM内存模型

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

2021-03-08 00:51:46 74

原创 类加载器

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 162 1

原创 code review规范

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

2020-12-29 11:11:53 105

原创 MQ复习笔记:RabbitMQ

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

2020-12-16 09:46:19 56

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

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

2020-11-26 16:06:44 110

原创 并发复习笔记

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

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

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

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

2020-11-16 14:31:27 90

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

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

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

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

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

2020-08-26 23:04:08 62

空空如也

空空如也

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

TA关注的人

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