Tag: 初始化

长期运行的构造函数是否会创建半初始化对象?

我有一个类“A”,它读取XML文件并进行一些处理。 我在构造函数中添加了一个方法“load”,但我想知道如果XML文件大小很大并且需要时间加载会发生什么。 class A { public String fileName; A(String fileName) { this.fileName = fileName; load(); } private load() { //here i load some xml file by given file name; } public searchByTag(String sometag) { //some search } public extractData() { //extract some data } } 例如,如果我们有以下情况: A a = new A(“somefile”); a.searchByTag(“tag”); a.extractData(); 对象“a”是在加载文件后创建的,对吧?

java中的内联初始化块

我上课了 public class MyMain{ public static void main(String… arg){ Temp t = new Temp(){ { System.out.println(” instance initialize”); } }; } } class Temp{ int i; { i=9; System.out.println(“Static”+i); } Temp(){ System.out.println(“Temp const “+i); } } 当我执行main方法时输出到: Static9 Temp const 9 instance initialize 理想情况下,块在构造函数之前执行,但是在构造函数之后调用内联初始化块。 为什么?

在Java中,main方法之后的那些语句的初始化顺序是什么

我了解到初始化顺序的原则是: 超类首先(在这种情况下不在这里讨论) 静态变量声明和静态初始化块按出现顺序排列 实例变量声明和静态初始化块按出现顺序排列 构造函数 但我仍然对此代码的输出感到困惑: public class Test1 { static { add(2); } static void add (int num) { System.out.println(num + ” “); } public Test1() { add(5); System.out.println(“Constructor!”); } static { add(4); } { add(6); } static { new Test1(); } { add(8); } public static void main(String[] args) { System.out.println(“Main method!”); add(10); […]

为什么将HashSet (0)初始化为零?

我喜欢HashSet ()并在使用默认构造函数初始化时急切地使用它: Set users = new HashSet(); 现在,我的自动bean创建器(JBoss工具)将其初始化为: Set users = new HashSet(0); 为什么零 ? API告诉我这是初始容量 ,但将其置于零的优势是什么? 这是建议吗?

直接在java中初始化对象

是否可以直接初始化对象,就像我们在java中使用String类一样: 如: String str=”something…”; 我想为我的自定义类做同样的事情: class MyData{ public String name; public int age; } 是可能的 MyClass obj1={“name”,24}; 要么 MyClass obj1=”name”,24; 初始化对象? 或者它是如何可能的!

实例初始值设定项和* this *关键字

试图编译这段代码 public class Main { public static void main(String args[]) { new Main(); } { System.out.println(x); } //Error here int x=1; } 生成一个cannot reference a field before it is defined错误cannot reference a field before it is defined 。 但是,如果我将初始化行更改为 { System.out.println(this.x); } 它就像一个魅力,打印默认的int值0 。 这对我来说有点混乱,为什么this会有所不同? 在这种情况下,它不应该是多余的吗? 任何人都可以解释我幕后发生的事情,以明确它是如何工作的吗? PS:我知道通过在初始化程序之前声明x也可以使它工作。

实例化接口

扩展初始化界面中提出的问题? ,我们确实实例化一个接口,同时用实现的类初始化它。 我的问题是为什么首先,我们用接口实例化它? 为什么我不能用实现的类直接实例化它? 例如。 : Doc mydoc = new SimpleDoc(); Doc是接口,SimpleDoc正在实现它。 SimpleDoc有什么问题mydoc = new SimpleDoc(); 哪个会失败?

字符串变量可能尚未初始化(错误行为到第34行)

我一直试图让字符串初始化,但无济于事。 我已经尝试了所遇到的所有解决方案,我不确定是因为我的无能还是因为我需要一个新的解决方案我已经有了解决方案的逻辑,所以我只需要帮助尝试初始化字符串值。 如果有人可以提供帮助,我会非常感激! PS诅咒我想要挑战并使用srings。 -_- import java.util.Scanner; import java.util.Random; public class RockPaperScissors { public static void main (String[] args) { String player, computer; int answer; Scanner scan = new Scanner (System.in); Random generator = new Random(); answer = generator.nextInt(3) + 1; if (answer 3) answer = generator.nextInt(3) + 1; if (answer == 1) computer = […]

初始化java数组vs其他初始化?

我知道当我初始化一个char数组时:我必须这样做 char[] b= new char[5]; 要么 char[] b= new char[5]({1,2,3,4,5}); 为什么不喜欢 ArrayList list = new ArrayList(); 初始化数组: char[] b = new char[5](); ? 为什么他们不同? 它是java哲学性质还是背后的一些原因?

引用变量到Java中另一个类中实例化/初始化的对象

我问的原因是因为我得到了NullPointerException。 我现在这很容易,但我很新编程,发现这有点令人困惑。 所以说我已经在类中初始化了一个对象,并希望从另一个类访问该对象。 比如现在我正在做一个小型国际象棋游戏,在我的模型游戏类中,我有一个Board实例,一个对象。 反过来,董事会有一系列Squares。 广场[][]。 游戏有棋盘,棋盘有Square [] []。 现在,如果我想通过Board类型的对象板(在游戏中)访问Square [] []。 我只是声明一个具有相同名称和类型的变量,或者我是否必须再次初始化它? 董事会或董事会董事会=新董事会(); 注意,我已经在类Game中初始化了板,所以如果我再次执行它,它们不会是两个完全不同的Board对象吗? 引用“板”的类: public class View extends JFrame { Board board; JFrame gameWindow = new JFrame(“Chess”); JPanel gamePanel = new JPanel(); JPanel[][] boardPanel = new JPanel[8][8]; JMenuBar gameMenu = new JMenuBar(); JButton newGame = new JButton(“New game”); JButton pauseGame = new JButton(“Pause”); […]