1、类的加载顺序
1)虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化
2)只有在调用new方法时才会创建类的实例
3)类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法
4)类实例销毁时候,首先销毁子类部分,再销毁父类部分
public class Parent { public static int t = parentStaticMethod2(); { System.out.println("父类非静态初始化块"); } static { System.out.println("父类静态初始化块"); } public Parent() { System.out.println("父类的构造方法"); } public static int parentStaticMethod() { System.out.println("父类类的静态方法"); return 10; } public static int parentStaticMethod2() { System.out.println("父类的静态方法2"); return 9; } @Override protected void finalize() throws Throwable { // TODO Auto-generated method stub super.finalize(); System.out.println("销毁父类"); } }
public class Child extends Parent { { System.out.println("子类非静态初始化块"); } static { System.out.println("子类静态初始化块"); } public Child() { System.out.println("子类的构造方法"); } public static int childStaticMethod() { System.out.println("子类的静态方法"); return 1000; } @Override protected void finalize() throws Throwable { // TODO Auto-generated method stub super.finalize(); System.out.println("销毁子类"); } }
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Parent.parentStaticMethod(); // Child child = new Child(); } }
输出
父类的静态方法2
父类静态初始化块
父类类的静态方法
类中static 方法在第一次调用时加载,类中static成员按在类中出现的顺序加载。当调用静态方法2时输出
父类的静态方法2
父类静态初始化块
父类的静态方法2
注释掉Parent.parentStaticMethod();
去掉注释Child child = new Child();
父类的静态方法2
父类静态初始化块
子类静态初始化块
父类非静态初始化块
父类的构造方法
子类非静态初始化块
子类的构造方法
相关推荐
Java基础知识整理 Java是一种广泛应用于软件开发的编程语言,拥有丰富的基础知识体系。本文将对Java基础知识进行系统性的整理和总结,涵盖面向对象、访问控制权限、Final关键字、内部类、集合等多个方面的知识点。 ...
JAVA核心面试知识点整理 Java是目前企业开发中最常用的编程语言之一,Java面试知识点涵盖了Java语言的方方面面,包括Java基础知识、Java高级知识、Java设计模式、Java框架等等。以下是Java核心面试知识点的整理。 ...
Java是一种广泛使用的面向对象编程语言,其核心特性之一就是多态性。多态性赋予了Java代码灵活性和可扩展性,使得程序可以处理多种不同类型的对象而无需知道具体...在实际开发中,这些知识点是Java程序员必备的基础。
"Java基础知识梳理" Java 是一种广泛使用的编程语言,适合初学者对 Java 相关知识的总结。下面是 Java 基础知识的梳理: 一、Java 开发环境 * JDK(Java Development Kit):可以开发编译与运行 JAVA 程序的工具...
Java核心面试知识整理包括了对JVM内存区域、垃圾回收机制、GC算法、JVM类加载机制、Java集合框架以及Java IO/NIO等多个方面的深入讲解。以下是对这些知识点的详细介绍: JVM内存区域:JVM内存区域包括了程序计数器...
Java知识点整理 Java是一种广泛使用的面向对象的编程语言,它具有丰富的API(应用程序接口)和强大的功能。在Java考试中,掌握以下知识点至关重要: 1. **JAVA SE**(Java标准版)是Java的核心部分,包括基础语法...
JAVA面试核心知识点整理 本文档旨在为Java开发者提供一个 hệ thống的面试知识点整理,涵盖了Java的核心概念、JVM的工作原理、Java编程语言的基本语法和高级特性等多方面的知识点。下面是对该文档的详细解读。 ...
Java是一种广泛使用的面向对象的编程语言,以其跨平台、健壮性和安全性著称。本资料主要涵盖了Java...通过阅读“Java整理.docx”、“java知识.docx”和“JAVA基础知识.docx”文档,你可以更系统地学习和复习这些知识。
本文将深入探讨在"JAVA核心知识点整理"中涉及的关键概念和技术。 一、Java基础 Java的基础知识包括语法、面向对象特性(封装、继承、多态)、异常处理、输入/输出流以及集合框架。了解基本类型、类、接口、包的概念...
"JAVA核心知识点整理.zip"这个压缩包文件包含了对Java进阶学习的重要知识点的详细概述,主要集中在PDF文档"JAVA核心知识点整理.pdf"中。以下是这份资料可能涵盖的主要内容: 1. **Java基础**:首先,你会学到Java的...
JAVA核心知识点整理--》从Java基础-->Java数据结构-->框架-->Java中间件,缓存JAVA核心知识点整理--》从Java基础-->Java数据结构-->框架-->Java中间件,缓存JAVA核心知识点整理--》从Java基础--&...
通过对这些知识的梳理,能够帮助Java开发者更好地准备面试,同时也加深对Java技术的了解和掌握。 首先,关于JVM的知识点,JVM(Java Virtual Machine)是运行Java程序的核心虚拟机,它可以将Java字节码转换为具体...
由于文件内容包含了一些链接,指向具体的GitHub项目,说明作者在整理Java知识点的过程中还参考了网上的资源,并结合自己的思考进行了整理。这些项目是作者为了学习目的而进行的公开分享,内容可能涉及到机器学习、...
Java架构知识库整理PDF版是一份详尽的资源,涵盖了Java开发和架构设计的各个方面,旨在为Java学习者提供一个全面的学习指南。这份文档可能包含了从基础语法、面向对象编程概念,到高级并发处理、内存管理、性能优化...
java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料 java开发实践案例 项目学习 源代码 供参考java基础知识学习资料...
2.1. 线柱2.2.... JAVA8 与元数据.2.4. 垃圾回收与算法2.4.1. 如何确定垃圾2.4.1.1. 引用计数法.2.4.1.2. 可达性分析.2.4.2. 标记清除算法(Mark-Sweep)2.4.3. 复制算法(copying)2.4.4. 标记整理算法(Mark-Comp
Java核心知识整理 Java是一种广泛使用的面向对象编程语言,它具有跨平台、对象导向、简单易学等特点。作为Java工程师,需要掌握Java的多方面知识点,包括但不限于JVM(Java虚拟机)原理、Java内存模型、垃圾回收...
自己在网上找的相对好一点的java复习资料,留个纪念 。详细讲述了Java课程的知识点
java核心知识点整理 1.Java中没有多继承,而是用接口来代替多继承 2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强类型...