adg*_*gfs 2 java constructor initialization
我有一个类"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
}
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我们有以下情况:
A a = new A("somefile");
a.searchByTag("tag");
a.extractData();
Run Code Online (Sandbox Code Playgroud)
对象"a"是在加载文件后创建的,对吧?
Sim*_*nni 10
是的,执行该段代码的线程将在返回A实例之前通过所有负载.
从技术上讲,对象"a"是在加载之前创建的(内部加载可以安全地引用它),但只有在构造函数返回时才将其赋值给变量"a",这意味着它在完成执行时也会加载( ) 方法.