- 博客(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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅