`
snrqtdhuqf
  • 浏览: 79590 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java静态方法、构造方法运行结果实例

    博客分类:
  • Java
阅读更多

进行了java开发有一段时间了,遇到一个有趣的问题,在此特意记录一下运行程序。

例1:

package com.yunix;

public class Test {
	
	public Test() {
		System.out.print("3");
	}
	static {
		System.out.print("1");
	}
	{
		System.out.print("2");
	}
	
	public static void main(String[] args) {
		for(int i=0;i<10;i++){
			new Test();
			System.out.println();
		}
	}
}

 运行结果为:

123
23
23
23
23
23
23
23
23
23

 例2:

package com.yunix;

public class Test {
	
	public Test() {
		System.err.print("3");
	}
	static {
		System.out.print("1");
	}
	{
		System.out.print("2");
	}
	
	public static void main(String[] args) {
		for(int i=0;i<10;i++){
			new Test();
			System.out.println();
		}
	}
}

 运行结果为(此结果不唯一,但是1一直在2的前面,3的位置不确定):

12
2
2
2
2
2
2
2
2
2
3333333333

 

分享到:
评论
2 楼 西铁城 2013-04-18  
例2可否给出详解?
1 楼 西铁城 2013-04-18  
这个在Thinking in java 中有专门的讲解。可以看看。

相关推荐

    java面试题静态加载顺序构造方法

    java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); static{ System.out.println("tttt"); } X(){ System....

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    java 静态块实例块构造器调用

    Java编程语言中,类的初始化过程涉及到静态块(static block)、实例块(instance block)以及构造器(constructor)。这些块的执行顺序对于理解和编写复杂的Java程序至关重要,特别是在涉及继承关系时。下面我们将...

    java的静态域实例域

    在Java编程中,类的域...总之,理解和熟练运用Java的静态域和实例域以及它们与构造方法的关系是Java程序员的基本技能。通过合理的设计和使用,可以有效地组织和管理类的状态,为代码的健壮性和可维护性打下坚实基础。

    java构造方法

    在创建一个对象时,Java首先初始化类中的静态成员,然后是实例成员,最后才是构造方法。这意味着如果一个类中有多个成员变量,它们的初始化顺序将按照代码中声明的顺序进行。 #### 八、总结 构造方法是Java编程...

    Java常见笔试、面试题目深度剖析,方法重写详解、静态代码块与构造方法执行顺序问题

    本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...

    Java静态工厂方法的实例详解

    Java静态工厂方法是一种特殊的工厂方法,它可以返回类的实例,而不是通过构造器来获取实例。静态工厂方法通常以valueOf、getInstance、newInstance等命名,具有三个特点:具名、环保、多子。 具名:静态工厂方法...

    Java构造方法解析.zip

    Java构造方法解析 ...总结起来,Java构造方法是初始化类实例的关键工具,它们允许我们在创建对象时定制初始化过程,确保对象的正确状态。理解并熟练运用构造方法及其特性对于编写高效、可维护的Java代码至关重要。

    java中静态代码块与构造方法的执行顺序判断

    在Java编程语言中,了解静态代码块和构造方法的执行顺序是至关重要的,尤其是在处理类的初始化和对象的创建时。下面将详细解释这些概念及其执行逻辑。 首先,静态代码块(也称为静态初始化器)是由`static`关键字...

    java中构造方法和方法全面解析.pdf

    5. 子类的非静态构造方法。 例如: ```java class SuperClass { SuperClass() { System.out.println("SuperClass constructor"); } } public class SubClass extends SuperClass { SubClass() { System.out....

    利用PowerMock模拟静态方法和私有方法的示例

    它的核心功能之一就是能够模拟静态方法、构造函数、final类和方法、私有方法等,这些都是传统单元测试难以处理的部分。 首先,理解静态方法的测试挑战。静态方法与对象实例无关,它们属于类本身,因此无法通过依赖...

    java中静态与非静态的区别

    - **静态构造函数**在.NET运行库加载类时执行,通常是在第一次调用类成员之前。 - **实例构造函数**在创建对象实例时执行。 3. **初始化次数**: - **静态构造函数**只执行一次,这有助于确保静态成员的初始化仅...

    Java构造方法解析.pdf

    构造方法在创建对象时由系统自动调用,通常用于初始化类的非静态成员变量。下面详细解析Java构造方法的特性和使用方法。 构造方法的特性: 1. 方法名与类名相同:构造方法的名字必须与类名完全相同,这是Java语法...

    java 使用静态成员变量计算内存中实例化的对象数目

    在Java中,静态修饰符用于声明类级别的变量或方法,这意味着它们属于类本身,而不是类的任何实例。静态变量被所有类的实例共享,而每个实例都有其自己的非静态变量副本。因此,静态变量在内存中只有一份,无论创建了...

    通过反射调用静态方法

    在Java中,反射API(java.lang.reflect)允许我们获取类的信息,包括类名、构造函数、方法和字段,甚至可以在运行时创建和操作这些类的对象。这对于动态绑定、元编程和框架开发具有重要意义。 要调用一个类的静态...

    Java语言中的构造方法私有化.pdf

    在Java中,除了单态模式,构造方法私有化还常用于其他设计模式,如工厂模式(Factory Pattern)和抽象工厂模式(Abstract Factory Pattern),以及作为静态工具类(Static Utility Class)的实现方式,防止这些类被...

    JAVA静态成员和实例成员的加载时机

    JAVA静态成员和实例成员的加载时机,先有对象还是先load类的静态成员,先有实例还是先调用构造方法等

    深入理解java构造器机理

    静态方法不能使用 this 关键字,因为静态方法不属于类的实例,所以 this 也就没有什么东西去指向。构造器的 this 指向同一个类中,不同参数列表的另外一个构造器。 四、“super”关键字的用法 构造器和方法 都用...

    生成静态的方法

    静态方法通常用于那些不需要访问类实例状态的操作,例如工具方法、计算方法或常量定义。 2. 静态变量 静态变量也是与类关联,而不是与类的每个实例关联的变量。所有类的实例共享同一份静态变量的拷贝,这意味着改变...

    Java 反射调用静态方法的简单实例

    通过这个例子,我们可以看到,Java反射机制不仅可以用于实例方法的动态调用,也可以方便地调用静态方法。这在某些场景下非常有用,比如插件系统、框架设计、单元测试等,能够提高代码的灵活性和可扩展性。但是,反射...

Global site tag (gtag.js) - Google Analytics