继承类同理: 静态>普通 基类>继承类 先打印基类的静态方法以及静态初始化块(根据出现的先后顺序),再打印子类的静态方法及静态初始化块(先后顺序)。 再打印基类普通的方法以及普通实例化块(先后),最后打印基类的构造函数;再打印子类的普通方法及普通实例化块(先后),最后打印子类的构造函数。 ...
分类:
其他好文 时间:
2019-10-15 12:53:22
阅读次数:
70
前言 在Java面试中,简历上有写JVM(Java虚拟机)相关的东西,JVM的类加载机制基本是面试必问的知识点。 在Java面试中,简历上有写JVM(Java虚拟机)相关的东西,JVM的类加载机制基本是面试必问的知识点。 类的加载和卸载 JVM是虚拟机的一种,它的指令集语言是字节码,字节码构成的文件 ...
分类:
其他好文 时间:
2019-10-10 20:37:28
阅读次数:
73
代码块 就是一块代码,是一对大括号括起来的内容 方法中:限制变量的生命周期 类中 方法外: 构造代码块:没有关键字修饰,在每次创建对象时,在构造方法执行前进行执行 用途:可以对成员 变量进行初始化。不能对静态常量赋值; 静态代码块:需要使用static修饰。随着类的加载而加载执行,只有在类加载时加载 ...
分类:
其他好文 时间:
2019-10-09 19:36:16
阅读次数:
71
在读本篇文章之前如果你读过这篇文章 "SpringBoot自动装配原理解析" 应该会更加轻松 准备工作 我们知道SpringBoot的自动装配的秘密在 包下的 文件中,而嵌入Tomcat的原理就在这个文件中加载的一个配置类: 首先看一下上方的几个注解 1. 这个注解是决定配置类的加载顺序的,当注解里 ...
分类:
编程语言 时间:
2019-10-09 00:05:17
阅读次数:
118
一、加载 1.1 加载阶段需要完成以下三件事情 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 1.2 数组类与非数组类 (一)非数组类: 一个非数组类的加载阶段(准确地说,是加载阶段中获取类的二进制字节流的动作)是开发人员可控性最强的,因为加载 ...
分类:
其他好文 时间:
2019-10-08 20:31:32
阅读次数:
110
JVM的类加载机制是什么?有哪些实现方式? 类加载机制: 类加载机制: 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装在方法区内的数据结构。类的加载最终是在堆区内的Class对象,Clas ...
分类:
其他好文 时间:
2019-10-08 12:44:18
阅读次数:
104
JVM平台上还可以运行其他语言,运行的是Class字节码。只要能翻译成Class的语言就OK了。挺强大的。 JVM厂商很多 垃圾收集器、收集算法 JVM检测工具 关于类的加载: Java代码中,类型(interface, class,enum等,有些是在运行时候生成的,比如动态代理)的加载、连接与初 ...
分类:
其他好文 时间:
2019-10-02 10:35:52
阅读次数:
87
类从被加载到虚拟机内存中开始,到卸载出内存开始,它的整个生命周期如下 加载 连接初始化 验证 准备 解析 使用 卸载 加载 连接初始化 验证 准备 解析 使用 卸载 加载 连接初始化 验证 准备 解析 使用 卸载 验证 准备 解析 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程 ...
分类:
其他好文 时间:
2019-09-13 12:55:42
阅读次数:
52
类的加载器加载 就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象连接验证 是否有正确的内部结构,并和其他类协调一致准备 负责为类的静态成员分配内存,并设置默认初始化值解析 将类的二进制数据中的符号引用替换为直接引用初始化 就是我们以前讲过的初 ...
分类:
其他好文 时间:
2019-09-11 12:02:27
阅读次数:
80
1、定义: 1、 Java中静态变量只能在类主体中定义,不能在方法中定义。 静态变量属于类所有而不属于方法。 2、 静态块:用static申明,JVM加载类时执行,仅执行一次 构造块:类中直接用{}定义,每一次创建对象时执行 执行顺序优先级:静态块>main()>构造块>构造方法 3、类的加载顺序 ...
分类:
编程语言 时间:
2019-09-11 10:15:56
阅读次数:
115