后端
Spring源码启动过程以及拓展点
容器启动过程
第一步先调用this();构造方法,这时父类构造器会初始化容器的 beanFactory 属性,属性为DefaultListableBeanFactory,带有存储BeanDefinition 和单例 bean 的功能
新建一个注解Bean定义读取器 new AnnotatedBeanDefinitionReader(this); 这个读取器主要是初始化环境变量,以及注册 一些
LeetCode练习day7-贪心
* [1. 分配饼干]
* [2. 不重叠的区间个数]
* [3. 投飞镖刺破气球]
* [4. 根据身高和序号重组队列]
* [5. 买卖股票最大的收益]
* [6. 买卖股票的最大收益 II]
* [7. 种植花朵]
* [8. 判断是否为子序列]
* [9. 修改一个数成为非递减数组]
* [10. 子数组最大的和]
* [11. 分隔字符串使同种字符出现在一起]
保证每次操作都是局部最
图解LeetCode——792. 匹配子序列的单词数(难度:中等)
一、题目
给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 。
字符串的 子序列 是从原始字符串中生成的新字符串,可以从中删去一些字符(可以是none),而不改变其余字符的相对顺序。
例如, “ace” 是 “abcde” 的子序列。
二、示例
2.1> 示例 1:
【输入】 s = "abcde", words = ["a","bb","
17. equals和==的区别
文章参考:
#
1、背景介绍
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有
Buffer/ByteBuffer/ByteBuf详解
ByteBuffer
ByteBuffer是一个抽象类,NIO编程中经常会使用,Netty常用的ByteBuf实际上也是对其的一种封装
Byte即字节,一个8位的二进制
Buffer即缓冲区,所谓缓冲区,其实就是一个临时存储数据的容器(可以理解为一个数组),而且一般可以重用
缓冲区
缓冲区有什么用呐?
减少实际的物理读写次数
缓冲区创建时分配固定内存,这块内存区域可被重用,减少动态分配和
实战!使用 阿里 Arthas 工具分析 CPU 飙高
Arthas 是阿里开源的 Java 诊断工具,相比 JDK 内置的诊断工具,要更人性化,并且功能强大,可以实现许多问题的一键定位,而且可以一键反编译查看源码,甚至是直接进行生产代码热修复,实现在一个工具内快速定位和修复问题的一站式服务。
今天,我就带你使用 Arthas 定位一个 CPU 使用高的问题,系统学习下这个工具的使用。
首先,下载并启动 Arthas:
curl -O https://
