public class Test4 {
static{
System.out.println("静态初始化块...");
}
{
System.out.println("初始化块...");
}
Test4(){
System.out.println("构造方法...");
}
/**
* @param args
*/
public static void main(String[] args) {
Test4 t = new Test4();
// TODO Auto-generated method stub
System.out.println("==test4==");
}
}
上面的程序执行的结果是:
静态初始化块...
初始化块...
构造方法...
==test4==
2. 对于继承关系的类初始化
public class Test5 {
public static String str= "父类静态变量...";
public String str2= "父类变量...";
static{
System.out.println(str);
System.out.println("父类类静态初始化块...");
}
{
System.out.println(str2);
System.out.println("父类类初始化块...");
}
Test5(){
System.out.println("父类类构造方法...");
}
}
public class Test4 extends Test5{
public static String str= "子类静态变量...";
public String str2= "子类变量...";
static{
System.out.println(str);
System.out.println("子类静态初始化块...");
}
{
System.out.println(str2);
System.out.println("子类初始化块...");
}
Test4(){
System.out.println("子类构造方法...");
}
/**
* @param args
*/
public static void main(String[] args) {
Test4 t = new Test4();
// TODO Auto-generated method stub
System.out.println("==test4==");
}
}
结果:
父类静态变量...
父类类静态初始化块...
子类静态变量...
子类静态初始化块...
父类变量...
父类类初始化块...
父类类构造方法...
子类变量...
子类初始化块...
子类构造方法...
==test4==
分享到:
相关推荐
总结来说,对于Java面试中常出现的关于类初始化顺序的问题,开发者应当掌握以下几点: 1. 单个类内成员的初始化顺序:静态变量、静态初始化块、变量、初始化块、构造器。 2. 在继承关系中,子类的静态成员会在父类...
Java语言中的类初始化顺序是面试中常见的问题,尤其对于Java程序员和工程师来说,理解这一概念至关重要。本篇文章将深入解析类初始化的顺序以及在继承情况下的表现。 首先,我们需要明确类初始化顺序的基本规则: ...
首先,让我们明确类初始化的含义。在Java中,类的初始化主要涉及以下三个阶段: 1. 静态变量和静态初始化块 2. 实例变量和初始化块 3. 构造器 在上述每个阶段中,又有父类和子类之分。根据Java的语法规则,当一个...
初始化顺序为:静态初始化块 -> 构造器 -> 实例初始化块。 12. **内部类的实现方式** 内部类分为:成员内部类、局部内部类、匿名内部类和静态内部类。 13. **Java实现排序和序列化** 可以使用Java内置的`...
### Java面试题目精选知识点梳理 #### 一、求职过程篇概览 - **1.1 程序员这个职业** - **职业感受**:介绍了作为一名程序员的职业体验,包括日常工作内容、工作压力等方面。 - **程序员是否吃青春饭**:讨论了...
- 确保所有成员变量在构造方法中被初始化后就不会再被修改。 2. **重载(Overload)与重写(Override)的区别:** - **重载**:在同一类中,方法名相同但参数列表不同(参数个数、类型或顺序不同)。 - **重写**...
JVM类加载机制指的是JVM如何加载Java类的过程,它包括加载、验证、准备、解析、初始化等几个阶段。类加载器负责加载类文件,包括启动类加载器、扩展类加载器和应用程序类加载器。双亲委派模型是类加载机制中的一种...
文档提到了Java中类初始化的顺序问题,这是面试中常见的考察点之一。在Java中,类的初始化顺序涉及到静态变量、非静态变量、构造函数等多个方面。例如: - 类中的静态变量和静态代码块会首先被加载和执行。 - ...
- **类加载过程**:加载、验证、准备、解析和初始化。 - **双亲委派模型**:类加载请求会由子类委托给父类去完成,防止类被重复加载。 ### 5. 性能优化 - **JVM调优**:包括调整堆大小、设置GC参数、选择合适的GC...
Java类的成员变量初始化顺序是面试中经常被问及的问题,它涉及构造方法、静态变量和实例变量的初始化顺序。掌握这个顺序对于理解类的加载过程以及对象创建过程中的变量状态至关重要。 Java的JVM调优也是一个高阶...
4. 初始化了一个没有run()方法的线程类:在Java中,如果我们创建了一个线程类,但没有实现run()方法,这并不会出错。因为Thread类已经实现了空的run()方法,我们可以直接继承Thread类或实现Runnable接口。 5. 局部...
JVM的运行过程包括类加载、验证、准备、解析和初始化,以及后续的执行。 JDK(Java Development Kit)是Java开发所需的全套工具,包括JRE(Java Runtime Environment)的所有内容,以及编译器javac、文档生成器...
- 初始化:通过`init()`方法加载Servlet,仅执行一次。 - 服务:每次请求都会调用`service()`方法,它会根据请求类型调用`doGet()`或`doPost()`等方法。 - 销毁:服务器关闭或不再需要Servlet时,调用`destroy()`...
在JAVA的面试过程中,面试官经常通过设计一些关于类的初始化顺序的问题来评估应聘者对JAVA基础的理解深度。其中,静态变量与实例变量的区别及它们的初始化顺序是考察的重点之一。本文将详细解析这一知识点,帮助读者...
### Java面试题解惑系列:类的初始化顺序详解 在Java面试中,关于类的...通过以上的分析,我们可以得出结论:Java中的类初始化顺序是一个非常重要的概念,掌握它不仅有助于面试,更能帮助开发者编写更高质量的代码。
- 加载、验证、准备、解析和初始化的过程。 - 双亲委派模型的工作原理及其优点。 - 类加载器的种类及其作用。 - **常见面试题**: - 自定义类加载器的方法? - 类加载过程中可能发生哪些错误? - **3.2 对象...
- **静态代码块**:在类被加载时仅执行一次,主要用于初始化类级别的资源。 #### 7. Java 中的抽象类和接口有什么区别? **答案解析:** 抽象类和接口都是 Java 中实现多态的重要手段,但它们有一些明显的区别: ...