public class StaticTest {
/**
* @param args
*/
public static void main(String[] args) {
//A a = null;// new A();// TODO Auto-generated method stub
A a = new B();
A b = new A();
B bb = new B();
}
}
class A {
static {
System.out.println("static A ");
}
public A(){
System.out.println("construct A");
}
}
class B extends A{
static {
System.out.println("static B");
}
public B(){
System.out.println("construct B");
}
}
console output:
static A
static B
construct A
construct B
construct A
construct A
construct B
分享到:
相关推荐
System.out.println("Static block executed"); } } ``` 在上面的代码中,我们定义了一个静态代码块,它只执行一次,用于初始化静态变量。 静态导入包 Java 中的静态导入包是指使用 static 关键字修饰的导入包,...
System.out.println("This is a static block."); } public static void main(String[] args) { // 类初次加载时,静态代码块被执行 } } ``` #### 五、静态内部类 ##### 5.1 定义 静态内部类是一种特殊的...
- **回收时机**:垃圾回收器并不会立即回收内存,其回收时机由虚拟机根据系统负载等因素自动决定。 - **主动通知垃圾回收**:可以通过调用`System.gc()`等方法来请求进行垃圾回收,但这只是建议而非命令,具体是否...
System.out.println("Static block is being initialized!"); } } ``` 这段代码展示了如何使用静态初始化块来初始化类中的静态资源。 #### 六、静态方法和变量的访问方式 静态方法和变量可以通过以下两种方式...
System.out.println("parent static block"); } public Parent() { System.out.println("parent constructor"); } } class Child extends Parent { static String childName = "hello"; { System.out....
### Java对象与内存控制 ...综上所述,Java中对象与内存控制涉及多个方面,包括实例变量与类变量的区别、变量的初始化时机、构造器的工作原理、final修饰符的使用等。理解这些概念对于编写高效可靠的Java程序至关重要。
其次,我们要了解**静态代码块**(Static Initializer Block)。静态代码块是在类加载时执行的一段代码,它不依赖于类的实例,而是与类本身相关联。静态代码块通常用来初始化类级别的变量,或者执行一些仅需执行一次的...
- 在`ClassLoaderTest`类中,静态代码块中的`System.out.println("执行静态块staticblock");`语句会在类首次被加载时执行。 3. **初始化实例变量**: - 实例变量的初始化发生在对象创建的过程中,可以通过构造...
**解答**: EJB (Enterprise JavaBeans) 提供了多种事务管理策略,其中 Transaction Level 指的是 EJB 方法调用时的事务级别。共有 7 种 Transaction Level: - **Required**: 如果当前线程中已经存在事务,则加入该...