这里的代码块是指独立于方法体之外的用{}括起来的代码块,包括静态代码块、非静态代码块,例如:
class A{
static int x=0;//静态属性
int y=1; //非静态属性
static{
//静态代码块
}
{
//非静态代码块
}
public A(){
//构造方法
}
public static void main(String[] args){
A class1; //加载类
A=new A() ; //实例化,创建对象
}
}
执行顺序可以概括为:
1. 静态的属性和静态的语句块都是在类加载的时候完成,非静态的东西是在创建对象的时候执行的.
2. 单个类的初始化顺序如下:
为静态属性分配内存并赋值->执行静态代码块->为非静态属性分配内存并赋值->执行非静态代码块->构造函数.
3. 有继承关系的类的初始化顺序如下:
父静属->父静块->子静属->子静块->父非静属->父非静块->父构造->子非静属->子非静块->子构造.
1,属性执行顺序优于代码块
2,静态优于非静态
3,父类优于子类
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zklth/archive/2010/07/16/5739355.aspx
相关推荐
Java基础之代码块 Java 中的代码块是指用一对花括号 {} 包围的代码区域,这些代码块可以出现在不同的位置,执行时机也不同。下面对代码块的种类、执行时机和运行顺序进行详细的解释。 普通语句块 普通语句块是指...
在Java编程语言中,了解代码块的执行顺序对于编写高效且无错的代码至关重要。这里我们将深入探讨Java中的普通代码块(实例初始化块)和静态代码块的执行顺序,并通过实例来阐述这一概念。 首先,我们需要明白两种...
Java静态代码块作用及执行顺序解析 Java静态代码块是Java语言中的一种特殊代码块,它们在类加载的时候执行,且只执行一次。它们通常用来初始化静态变量、设置静态变量的初始值等。静态代码块的作用域是整个类,而...
- Java的`Thread`类提供了设置线程优先级的方法,如`setPriority()`,但优先级并不保证绝对的执行顺序,只能影响调度概率,实际执行顺序依赖于JVM和操作系统。 7. **`Thread.yield()`**: - `Thread.yield()`方法...
- **同步机制**:`synchronized`关键字用于同步方法或代码块,防止数据竞争。 - **死锁**:多个线程互相等待对方释放资源导致的僵局。 - **线程安全**:在多线程环境下,保证数据一致性。 - **线程状态**:新建、...
在 Java 语言中,代码块和静态代码块的加载顺序是严格按照类的加载顺序执行的。具体来说,类的加载顺序如下: 1. 父类静态代码块 2. 子类静态代码块 3. 父类实例代码块 4. 子类实例代码块 在上面的实例代码中,...
今天,我们将对 Java 基础知识点进行详解,主要讲解代码块的概念、分类和执行顺序。 代码块是 Java 语言中的一种基本结构单元,它是 Java 程序的基本组成部分。代码块可以分为五种:普通块、构造块、静态块、同步块...
本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...
本压缩包"Java基础1-10章课堂代码(参考视频1.1-10.12).zip"包含了从基础到进阶的Java编程知识,对应于一系列的教学视频,从1.1到10.12,旨在帮助学习者逐步掌握Java编程的核心概念和技术。 首先,我们从第一章的...
此外,静态初始化块只在类加载时执行一次,而初始化块(也称为实例初始化块)会在每次创建类的新实例时执行。这意味着静态成员和静态初始化块对于所有类的实例都是共享的,而实例成员和实例初始化块则是每个对象独有...
这份“java--基础程序知识.rar”压缩包显然包含了关于Java基础知识的学习资料,旨在帮助初学者或有经验的开发者巩固和深化Java编程技能。下面将详细讨论Java的基础知识,包括其语法、核心概念以及常见应用。 1. **...
了解这些基础概念有助于理解和编写Java代码,同时也为面试做好准备。在实际开发中,根据具体需求选择合适的数据结构和类,能够有效提高代码的性能和可维护性。对于多线程环境,可以考虑使用`ConcurrentHashMap`这类...
在Java编程语言中,多线程是核心特性之一,它允许程序同时执行多个任务,从而提高了应用程序的效率和响应性。本节我们将深入探讨Java中的多线程概念,包括其重要性、创建方法以及相关机制。 一、多线程的重要性 1....
非静态代码块在构造器之前执行,如果类中有多个非静态代码块,也会按源码顺序依次执行。 例如,以下代码展示了不同类型的代码块: ```java class Person { String name; int age; // 静态代码块 static { ...
1 静态变量,静态代码块(类加载时执行,类不加载不执行) 2 实例变量,实例代码块(创建对象时才执行,不创建对象不执行) 3 构造函数,(创建对象时执行完2后再执行构造函数,不管构造函数是public还是private...
synchronized关键字可以修饰方法或代码块,以实现线程的同步和互斥。volatile关键字可以修饰变量,以确保变量的最新值对所有线程可见。 五、线程的优先级 在Java中,可以使用setPriority方法来设置线程的优先级。...
Java类的执行顺序是编程过程中一个非常重要的概念,特别是在深入理解和优化代码性能时。本文将详细探讨Java类的加载、初始化、执行等步骤,并通过实例分析阿里面试中可能涉及的相关问题,结合流程图帮助理解这一过程...
这种执行顺序体现了Java中静态代码块和实例代码块的执行规则: - 类的静态代码块会在任何实例被创建之前执行,并且只执行一次。 - 子类继承父类时,父类的静态代码块会在子类的静态代码块之前执行。 - 每个类的静态...
这两个静态代码块是在类加载时自动执行的,它们的执行顺序是按照它们在类中的声明顺序来的。 非静态代码块 非静态代码块是 Java 中的一种特殊的代码块,它是非静态的,意思是说它是属于对象的,而不是属于类的。非...
在Java中,代码块是包含一组语句的结构,它们按顺序执行。主要有以下两种类型: 1. **实例初始化块**:当创建类的新实例时,这些代码块会先于构造函数执行。它们可以用于初始化对象的状态,尤其是当初始化逻辑较为...