源码
文章平均质量分 62
从基础到框架
Rsun04551
也许当我老了,也一样Code;不为别的,只为了爱好。
展开
-
如何通过IDEA查看注解逻辑实现
日常写代码的过程中会使用到很多Spring框架提供的注解,也会读到别人写的自定义注解,很多时候会好奇注解背后的实现逻辑。本文就简单地记录一下,如何通过代码中的注解,使用IDEA定位到注解的逻辑实现位置。以下方法适用于官方注解/自定义注解,以及通过切面实现的自定义注解。原创 2023-02-12 11:33:22 · 1467 阅读 · 0 评论 -
源码分析基础
当子父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成,若要访问父类中的成员变量,必须使用关键字this来完成。Java体系在设计时定义了一个所有对象的父类Object,自定义类super调用的就是该类。3、抽象类必须由子类重写所有抽象方法才能实例化该子类。2、抽象类不可以被实例化,不能被final修饰。只要是构造方法默认第一行都是super()作用:this用来调用成员变量。4、抽象类不一定非要有抽象方法。1、方法只有声明,没有实现体。3、super关键字。原创 2022-11-12 21:47:04 · 416 阅读 · 0 评论 -
Java并发编程之ConcurrentHashMap源码分析
在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMapHashtable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占,相当于所有线程进行读写时都去竞争一把锁,导致效率非常低下。原创 2021-05-03 11:37:37 · 296 阅读 · 3 评论 -
HashMap、HashTable和HashSet区别源码分析
开局一张图,内容全靠编1、HashMap、HashTable 实际上是数组和链表的结合2、HashSet内部是基于HashMap实现的,也就是hashMap的key形成了HashSet,value为private static final Object PRESENT = new Object();HashMap元素key相同的话,不会另外添加到HashMap中,而是更新相同key的value,这就保证了Hashset不能存储相同的数据public boolean add(E e) {原创 2021-04-29 21:55:28 · 154 阅读 · 2 评论 -
ArrayList与LinkedList区别源码分析
源码分析原创 2020-05-22 14:58:37 · 119 阅读 · 0 评论 -
String源码分析
首先,将一个类分为几个部分,分别是类定义(继承,实现接口等),全局变量,方法,内部类等等,再分别对这几个部分进行说明,这样到最后类的全貌也就比较直观了1、实现接口public final class String implements java.io.Serializable, Comparable<String>, CharSequence {Serializable:这个序列化接口没有任何方法和域,仅用于标识序列化的语意Comparable:这个接口只有一个compareT原创 2021-04-30 16:32:45 · 120 阅读 · 3 评论 -
Object源码解析
package java.lang;public class Object { /** * 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用 */ private static native void registerNatives(); /** * 对象初始化时自动调用此方法 */ static { registerNatives(); } /** * 返回此O原创 2021-05-03 00:45:29 · 135 阅读 · 0 评论 -
到底该不该看源码(懂这三点儿就够了)
1、不要为了看源码而看源码2、代码积累到一定程度,遇到问题自然就去查源码了,然后你就看懂了3、两年内不要刻意去看源码,可以点开简单了解一下就行,前两年疯狂做项目就行了,后期项目做的多了,你自己就会有疑问,每次写代码就会问自己为什么要这样写?底层的原理是什么?很自觉的带着问题就去看源码了,如果你没有这样的疑问,那说明你也不适合去看源码了,写写业务代码,了了一生。原创 2019-07-16 14:16:17 · 913 阅读 · 0 评论