主函数:是一个特殊的函数,作为程序的入口,可以被jvm调用。 主函数的定义: public:代表着该函数访问权限是最大的。 static:代表主函数随着类的加载就已经存在了。 void:主函数没有具体的返回值。 main:不是关键字,但是是一个特殊的单词,可以被jvm识别。 String[] arg ...
分类:
编程语言 时间:
2020-03-14 18:21:24
阅读次数:
110
当成员被静态修饰后,就多了一种调用方式,除了可以被对象调用外,还可以直接被类名调用。 类名.静态成员 static特点: 1.随着类的加载而加载 静态会随着类的消失而消失,说明它的生命周期最长。 2.优先于类的对象存在 静态先存在,对象后存在 3.被所有对象所共享 4.可以直接被类名所调用 没有被s ...
分类:
编程语言 时间:
2020-03-13 01:47:25
阅读次数:
66
一:类的加载过程 分为三个比较大的阶段,分别是加载阶段,连接阶段和初始化阶段,五个主要的阶段。 在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始。另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通 ...
分类:
其他好文 时间:
2020-03-12 18:28:30
阅读次数:
47
ClassLoader,类加载器子系统: 负责从文件系统或网络中读取class文件,class文件所在开头有特定的文件标识 ClassLoader只负责class文件的加载,是否能运行,则由Execution Engine决定 加载类的信息存放在一块称为方法区的内存空间。除了类的信息,方法区还可能会 ...
分类:
其他好文 时间:
2020-03-10 14:17:00
阅读次数:
53
内存结构概述 1.内存结构概述 2.类加载器与类的加载过程 3.类加载分类器 4.ClassLoader的使用 5.双亲委派机制 6.其他 这是一个可供参考的简图: 类加载器子系统Class Loader: 字节码文件——》类加载器子系统,包括:加载【引导类加载器、扩展类加载器、应用类(系统)加载器 ...
分类:
其他好文 时间:
2020-03-08 20:06:25
阅读次数:
83
一、main函数中实例化对象 父类 子类 运行结果 二、main函数中不实例化对象 运行结果 三、结论 类在加载时: 父类静态变量 父类静态代码块 子类静态变量 大于子类静态代码块 类在实例化时: 父类非静态变量 父类匿名代码块 父类构造函数 子类非静态变量 子类非静态代码块 子类构造函数 ...
分类:
编程语言 时间:
2020-03-06 15:18:31
阅读次数:
79
本文介绍了JDK的SPI和Dubbo的SPI用法,分析了JDK的SPI源码和Dubbo的SPI源码。
分类:
其他好文 时间:
2020-03-05 23:39:21
阅读次数:
98
1. 类加载器的分类 1. JVM 自带的类加载器 根类加载器( BootStrap ) 拓展类加载器 ( Extension ) 系统 (应用) 加载器 ( System / AppClassLoader) 2. 开发者自己创建的类加载器 java.long.ClassLoader 的子类 2. ...
分类:
编程语言 时间:
2020-03-01 12:53:04
阅读次数:
76
类的初始化过程 类的加载过程.png + 加载 将 Class 文件以二进制的形式加载到内存中 + 验证 校验 Class 文件是否安全,是否被正确的修改等 + 准备 为类变量申请内存,设置默认值,(初始化变量的默认值,比如int初始化为0,reference初始化为null) 但是达到类的初始化之 ...
分类:
编程语言 时间:
2020-03-01 12:27:08
阅读次数:
75
1.static可以用来修饰类的成员:成员变量和成员方法 2.static修饰的类成员的特点: 随着类的加载而加载,随着类的消失而消失,也就是说它的生命周期最长。 优先于对象的存在,静态先存在,对象后存在 被所有对象共享 可以直接被类名调用,也可以用对象调用 3.实例变量和类变量的区别: 实例变量存 ...
分类:
编程语言 时间:
2020-02-29 20:47:32
阅读次数:
71