- 博客(10)
- 收藏
- 关注
原创 String,String Builder,String Buffer-源码
文章目录String源码分析常用的APIisEmpty()length()charAt()substring()equals()equals()与“==”intern()一些基础Java基本数据类型和引用类型Java自动装箱/拆箱StringBuilder定义的常量构造方法append()方法StringBufferStringBuilder 和 StringBuffer 适用的场景是什么?扩展小知识参考链接StringString是一个很普通的类源码分析//该值用于字符存储private fin
2021-08-03 15:00:39 146
原创 Integer-源码
Integer 是java5 引进的新特性先上一个小实验: public static void main(String[] args) { Integer a1 = 100; Integer a2 = 100; System.out.println(a1 == a2); Integer b1 = 1000; Integer b2 = 1000; System.out.println(b1 == b2);.
2021-08-03 12:42:47 118
原创 LinkedList-源码
概述LinkedList 继承自 AbstrackSequentialList 并实现了 List 接口以及 Deque 双向队列接口,因此 LinkedList 不但拥有 List 相关的操作方法,也有队列的相关操作方法。LinkedList 和 ArrayList 一样实现了序列化接口 Serializable 和 Cloneable 接口使其拥有了序列化和克隆的特性。继承了AbstractSequentialList抽象类,在遍历的时候,推荐使用迭代器进行遍历。但是只支持浅克隆,在Lin
2021-08-03 12:36:47 115
原创 ArrayList-源码
文章目录概述类的属性构造方法add,grow以及工具类底层分析remove方法分析fail-fastArraylist与Vector的区别参考链接概述(1)ArrayList 是一种变长的集合类,基于定长数组实现。(2)ArrayList 允许空值和重复元素,添加元素时,会扩容机制生成一个更大的数组。(3)可以保证在 O(1) 复杂度下完成随机查找操作。(4)ArrayList 是非线程安全类。为追求效率,ArrayList没有实现同步(synchronized),如果需要多个线程并发访问,用
2021-08-03 11:07:10 97
原创 Spring-初见
文章目录组成Spring Boot与Spring CloudIOCDI1、常量注入2、Bean注入3、Properties注入p命名和c命名注入Bean**Singleton****Prototype****Request****Session**自动装配@Autowired@Qualifier@Resource**小结**静态and动态代理静态代理动态代理AOP第一种方式( 通过 Spring API 实现)第二种方式 ( 自定义类来实现Aop )第三种方式(使用注解实现)参考链接:一句话概括:Spr
2021-07-26 23:20:56 177
原创 数据结构详解
文章目录线性表线性表的顺序表示线性表的链式表示栈 (stack)栈的顺序存储栈的链式存储结构应用队列(Queue)循环队列(判满)队列的链式存储结构双端队列串树计算机科学中的树二叉查找树笛卡尔树AVL树红黑树B树(B-)B+ 树算法冒泡排序选择排序插入排序希尔排序归并排序快速排序基数排序堆排序参考链接线性表线性表的顺序表示静态分配#define MaxSize 10 // 定义最大长度 typedef struct { int data[MaxSize]; // ElemType = int,
2021-07-24 19:31:33 334
原创 缓存穿透,击穿,雪崩详解
文章目录前言缓存穿透将空数据存入缓存布隆过滤器缓存击穿互斥锁优点:缺点:提前"使用互斥锁(mutex key)定时任务更新热点key设置key 不失效资源保护(限流)缓存雪崩加锁排队随机值拓展LRU与LFU参考链接前言缓存在大并发系统中的重要作用不言而喻。缓存属于内存操作,微秒或毫秒级别。在互联网公司绝对绕不过这个缓存。缓存穿透缓存穿透的概念很简单,用户想要查询一个数据发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓
2021-07-23 00:03:44 272
原创 Redis.conf
Redis.conf单位配置文件对大小写不敏感# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes…………包含# include /path/to/local.conf# include /path/to/other.conf
2021-07-20 23:43:54 67
原创 HashMap的转化时机
HashMap的转化时机 /** * 使用红黑树(而不是链表)来存放元素。当向至少具有这么多节点的链表再添加元素时,链表就将转换为红黑树。 * 该值必须大于2,并且应该至少为8,以便于删除红黑树时转回链表。 */ static final int TREEIFY_THRESHOLD = 8; /** * 当桶数组容量小于该值时,优先进行扩容,而不是树化: */ static final int MIN_TREEIFY_CAPACITY
2021-07-20 15:46:46 149
原创 HashMap的源码分析
HashMap的历史HashMap最早是在jdk1.2中开始出现的,一直到jdk1.7一直没有太大的变化。但是到了jdk1.8突然进行了一个很大的改动。其中一个最显著的改动就是:之前jdk1.7的存储结构是数组+链表,到了jdk1.8变成了数组+链表+红黑树。另外,HashMap是非线程安全的,进行增删改操作的时候,是不能保证数据的一致性的。红黑树是一个自平衡的二叉查找树,也就是说红黑树的查找效率是非常的高,查找效率会从链表的o(n)降低为o(logn)。HashMap名词介绍名
2021-07-19 20:32:19 91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人