Java源码解析
a327369238
这个作者很懒,什么都没留下…
展开
-
Java源码解析(8) —— ClassLoader(3)
//检查类签名private void checkCerts(String name, CodeSource cs) { int i = name.lastIndexOf('.'); String pname = (i == -1) ? "" : name.substring(0, i); Certificate[] certs = null;...原创 2019-12-04 19:44:47 · 396 阅读 · 0 评论 -
Java源码解析(7) —— ClassLoader(2)
/** * 由虚拟机调用,这是一个private方法,但我在ClassLoader源码中并未看到有地方调用 * 看名字及源码说明,是由虚拟机加载类的时候内部调用,百度查询估计是加载jdk类时 * 系统类加载器通过反射调用该方法(jdk类中有许多类似用法) */ private Class loadClassInternal(String name) throws C...原创 2018-05-11 19:56:04 · 675 阅读 · 0 评论 -
Java源码解析(6) —— ClassLoader(1)
ClassLoader —— 类加载核心类类加载核心类,关于类加载详见:Java类的加载。原创 2017-02-13 20:45:45 · 610 阅读 · 0 评论 -
Java源码解析(1) —— Object
Java基类Objectjava.lang.Object,Java所有类的父类,在你编写一个类的时候,若无指定父类(没有显式extends一个父类)编译器(一般编译器完成该步骤)会默认的添加Object为该类的父类(可以将该类反编译看其字节码,不过貌似Java7自带的反编译javap现在看不到了)。 再说的详细点:假如类A,没有显式继承其他类,编译器会默认添加Object为其父类;若有,那么那个显原创 2016-09-09 20:32:13 · 4669 阅读 · 2 评论 -
Java源码解析(2) —— Class(1)
Class——反射基石Java基本类之一,反射机制的基础,是一个运行时类。其意义为:类的抽象,即对“类”做描述:比如类有修饰、字段、方法等属性,有获得该类的所有方法、所有公有方法等方法。声明1.Class的源码太长,这里分5部分解析,一些方法的实现源代码较长,这里就没有贴出来了,我会着重将叙述其作用,至于其实现逻辑,以本人现有水平估计也很难一一讲解清晰,大家姑且看之,若其中有错误地原创 2016-10-09 14:53:43 · 8966 阅读 · 1 评论 -
Java源码解析(5) —— Class(4)
Class最后一部分源码,这一部分大都是private方法、属性、类,都是Class本身各种方法的实现细节,涉及到了很多Class的实现原理,较为深奥,网上能找到的资料也比较少,目前只懂皮毛,仅供参考,所以,我这一部分说的可能是不正确的,需要抱着怀疑的态度看待!咳,就这样,闪人。原创 2017-02-13 17:59:07 · 1727 阅读 · 0 评论 -
Java源码解析(4) —— Class(3)
@CallerSensitive public Class[] getDeclaredClasses() throws SecurityException { // be very careful not to change the stack depth of this // checkMemberAccess call for security reas原创 2017-02-08 20:46:14 · 910 阅读 · 0 评论 -
Java源码解析(附录)(5) —— WildcardType
WildcardType 泛型表达式通配符表达式,泛型表达式,也可以说是,限定性的泛型,形如:? extends classA、?super classB。源码public interface WildcardType extends Type { //获得泛型表达式上界(上限) Type[] getUpperBounds(); //获得泛型表达式下界(下限) Typ原创 2016-09-30 15:18:50 · 5526 阅读 · 0 评论 -
Java源码解析(附录)(2) —— TypeVariable
TypeVariable —— 类型变量 TypeVariable,类型变量,描述类型,表示泛指任意或相关一类类型,也可以说狭义上的泛型(泛指某一类类型),一般用大写字母作为变量,比如K、V、E等。源码public interface TypeVariable<D extends GenericDeclaration> extends Type { //获得泛型的上限,若未明确声明上边界则默原创 2016-09-27 20:35:09 · 6010 阅读 · 0 评论 -
Java源码解析(附录)(3) —— GenericDeclaration
GenericDeclaration可以声明类型变量的实体的公共接口,也就是说,只有实现了该接口才能在对应的实体上声明(定义)类型变量,这些实体目前只有三个:Class(类)、Construstor(构造器)、Method(方法)(详见:TypeVariable —— 类型变量)。源码public interface GenericDeclaration { //获得声明列表上的类型变量数组原创 2016-09-30 13:46:19 · 1937 阅读 · 0 评论 -
Java源码解析(附录)(4) —— GenericArrayType
GenericArrayType —— 泛型数组泛型数组,描述的是形如:A<T>[]或T[]类型。源码public interface GenericArrayType extends Type { //获得这个数组元素类型,即获得:A<T>(A<T>[])或T(T[]) Type getGenericComponentType();}概述GenericArrayType,泛型数组原创 2016-09-30 11:07:11 · 3338 阅读 · 0 评论 -
Java源码解析(附录)(1) —— ParameterizedType
Java类型之参数化类型源码public interface ParameterizedType extends Type { //1.获得<>中实际类型 Type[] getActualTypeArguments(); //2.获得<>前面实际类型 Type getRawType(); //3.如果这个类型是某个类型所属,获得这个所有者类型,否则返回null原创 2016-09-22 14:44:43 · 4200 阅读 · 0 评论 -
Java源码解析(3) —— Class(2)
Class 源码详解续(2)关于Class,详见:Java源码解析(2) —— Class(1)。源码//如果该Class对象是本地类或匿名类,返回包含这个类的方法的信息(Method对象)public Method getEnclosingMethod() {...}//如果该类具有(内部)本地类或匿名类,获取其信息,包括Class对象、name以及描述。private原创 2016-10-12 15:54:26 · 1934 阅读 · 0 评论