-
Java类初始化问题5
需要在一个单例模式类里初始化另外一个类,只是让另外一个类初始化,不做任何操作,请问用new方式而不赋给另外一个值,会不会造成单例模式类永久持有新new的类?大家只需要初始化一个类而不用操作都是怎么做的呢?谢谢啦!public class TestA { private static Test instance; private TestA { [color=red]new TestB(); //这里[/color] } public static TestA getInstance() { if(instance == null) { instance = new TestA(); } return instance; } } class TestB { public TestB { //blablabla } }
问题补充:地狱牢笼 写道不操作模拟初始化做什么。申明不就行了。等到要操作的时候再初始化。
需要类B初始化一些环境,并不需要对它操作。
问题补充:guazi 写道这个是有问题的,引用private TestA {
new TestB(); //这里[/color]
}
这里是一个匿名变量,这句执行完之后该对象即被垃圾回收了,
可以这个样子:private static TestB testB = new TestB();
这样就可以永久持有了。
只是要通过类B初始化一些环境
问题补充:地狱牢笼 写道“需要类B初始化一些环境,并不需要对它操作。”
那更不明白了。
new 能初始化B。但是你又想在内存中B对象不要一直存在?而B的环境存在?不知道是不是?
对,B类初始化对其他地方有一些赋值2011年12月30日 09:35
6个答案 按时间排序 按投票排序
-
采纳的答案
引用
只是要通过类B初始化一些环境
如果你只是想通过new testB() 来初始化一些所谓的环境变量(这个变量最好不是在b中的,而是在系统中的)那是可以的,但是单例类并不会持有改对象。2011年12月30日 10:04
-
public class TestA { private static final Test instance=new TestA(); private TestA { new TestB(); // 单例类不会持有新new的类 } public static TestA getInstance() { return instance; } }
2011年12月30日 09:59
-
“需要类B初始化一些环境,并不需要对它操作。”
那更不明白了。
new 能初始化B。但是你又想在内存中B对象不要一直存在?而B的环境存在?不知道是不是?2011年12月30日 09:57
-
这个是有问题的,
引用private TestA {
new TestB(); //这里[/color]
}
这里是一个匿名变量,这句执行完之后该对象即被垃圾回收了,
可以这个样子:private static TestB testB = new TestB();
这样就可以永久持有了。2011年12月30日 09:43
相关推荐
Java 数组初始化详解 Java 数组初始化是 Java 编程语言中的一种基本概念,它允许开发者创建和初始化数组,以便于存储和操作数据。在本文中,我们将对 Java 数组初始化进行详细的介绍,包括一维数组和二维数组的声明...
类--初始化块"); 39. } 40. // 构造器 41. public SubClass() { 42. System.out.println("子类--构造器"); 43. } 44. 45. public static void main(String[]...因此,掌握类的初始化顺序是每个Java开发者必备的知识点。
在Java编程语言中,程序初始化的顺序是一个关键概念,它涉及到类加载、对象创建以及执行流程的安排。了解这些顺序对于编写高效、无错误的代码至关重要。以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**...
静态初始化块用于初始化类级别的静态变量,它们只在类加载时执行一次。 2. **成员变量初始化**:接下来,初始化父类的非静态成员变量,这是通过调用父类的构造器实现的。Java规定每个子类实例在构造之前必须先调用...
在Java编程语言中,初始化块是程序执行时用于初始化对象或类的重要机制。这里我们将深入探讨两种类型的初始化块:静态初始化块(Static Initializer Block)和对象初始化块(Instance Initializer Block)。这两种...
Java 变量初始化的时机可以分为两类:实例变量初始化和类变量初始化。 实例变量初始化 实例变量初始化可以在三个地方进行: 1. 定义实例变量的时候指定初始值; 2. 非静态初始化代码块中对实例变量指定初值; 3. ...
### Java中类的初始化顺序详解 #### 一、概述 在Java编程语言中,类的初始化是一个非常重要的概念。类的初始化涉及到多个方面,包括静态成员变量、实例成员变量、静态初始化块、实例初始化块以及构造函数等。本文...
它用于初始化类级别的静态变量。在`init`目录下的文件可能包含了不同静态初始化的示例。 3. **实例化阶段**: 当我们创建一个新的对象时,Java会进行实例初始化。首先,分配内存空间,然后调用构造函数。实例初始...
详细讲解java类中静态变量,普通标量,对象、基本类型的初始化顺序。
构造方法用于初始化类的新实例,普通方法执行特定任务,静态方法与类关联而非实例,抽象方法则在接口或抽象类中定义,需由子类实现。方法的参数传递、返回值和重载也是重要的知识点,理解这些能帮助我们编写更灵活...
5. **初始化类的子类**。 6. **JVM启动时作为主类的类**。 例如,如果我们有一个`Singleton`类,其中包含静态变量和静态初始化代码块,如下所示: ```java class Singleton { private static Singleton singleton...
本文将详细介绍6种初始化Java List集合的方法,并通过代码示例帮助理解每种方法的使用和特点。 1. 常规方式 这是最常见的初始化List的方式,通过创建ArrayList实例并逐个添加元素。自JDK 7以后,可以省略泛型类型的...
总结起来,Java初始化块是Java中用于对象和类初始化的重要工具,它们在不同场景下提供了一种灵活的方式来控制对象和类的状态。理解初始化块的工作原理对于编写高效且无错误的Java代码至关重要。在编写代码时,应谨慎...
45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip...
44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...
### Java 类中静态域、块,非静态域、块,构造函数的初始化顺序 #### 一、概述 在 Java 编程语言中,类的初始化顺序对于理解程序的行为至关重要。特别是当涉及到静态域(静态变量)、非静态域(实例变量)、静态块...
本文将深入探讨Java中的初始化过程,包括对象的构造器初始化以及类成员的初始化顺序,同时也会涉及Java的垃圾回收机制,即内存的自动清理。 首先,让我们详细了解一下Java中的构造器初始化。构造器是Java中用于初始...