Ⅰ java中 数据初始化的三种方法是什么
public
class
staticinitialization
{
public
static
void
main(string[]
args)
{
system.out.println("creating
new
cupboard()
in
main");
new
cupboard();
system.out.println("creating
new
cupboard()
in
main");
new
cupboard();
t2.f2(1);
t3.f3(1);
}
static
table
t2
=
new
table();//1:标记位1
static
cupboard
t3
=
new
cupboard();//2
标记位2
}
//
/:~
/**
1:要执行main方法,必须先加载staticinitialization,加载过程中,发现有静态变量t2,首先执行t2
=
new
table()
new
table()需要实例化table,必须先加载table类
加载table类的过程中,发现table类也有静态变量,首先执行static
bowl
b1
=
new
bowl(1);过程和上面一样,要去创建bow1
创建之前加载bow1类,加载完毕,调用bow1的构造方法,于是打印出“bowl(1)”
b1实例化(创建)完成
然后执行static
bowl
b2
=
new
bowl(2);
再次调用bow1构造方法,打印“bowl(2)”
这时候table类加载完毕,开始实例化t2变量,调用table类构造方法,打印“table()”
执行b2.f(1);
打印“f(1)”
2:道理和上面1一样,只是在cupboard中,static变量初始化完毕之后,还要去初始化一个非static变量
最后执行main中的方法,注意的是,此时table,cupboard
这2个类的加载过程已经完成,之后创建这2个类的实例的过程中,不再去初始化static变量
有其他问题在hi我
*/
Ⅱ java 初始化和实例化的区别
初始化往往是说给变量赋值
实例化,往往是调用类的构造函数,创建实例
Ⅲ Thinking in Java 5.7.4非静态实例初始化
加花括号的话是类的实例字段初始化器(也叫实例字段初始化块),是一个合法的java语法单元,可以在其中为类的实例字段(属性)赋值。不加的话,就是在类中直接为实例字段赋值了,java只允许直接在类中进行字段的初始化,不允许直接在类中为字段赋值。初始化与赋值有点不同,初始化是带类型的,如:
Mug mug3=new Mug(3);这个可以直接放在类中。
而Mug mug4;
//下面这句是赋值,只能放在实例字段初始化器中
mug4=new Mug(4);
Ⅳ java初始化
你说“在java初始化时,顺序为静态变量-静态初始化块-非静态变量-非静态初始化块-构造函数”
请问你在哪知道的,我也希望了解一下
我一直觉得构造函数会在静态初始化块之后
对 非静态变量-非静态初始化块-构造函数 这样的排列倒是有点...
------------------------------------------------------------------
我在javaEye上找了找相关文章:
1在new B一个实例时首先要进行类的装载。(类只有在使用New调用创建的时候才会被java类装载器装入)
2,在装载类时,先装载父类A,再装载子类B
3,装载父类A后,完成静态动作(包括静态代码和变量,它们的级别是相同的,安装代码中出现的顺序初始化)
4,装载子类B后,完成静态动作
类装载完成,开始进行实例化
1,在实例化子类B时,先要实例化父类A
2,实例化父类A时,先成员实例化(非静态代码)
3,父类A的构造方法
4,子类B的成员实例化(非静态代码)
5,子类B的构造方法
确实~
Ⅳ JAVA 对象的初始化到底有几种形式
1、构造器
创建对象时初始化,比较常见。
classa{
publica()
{}
}
public
2、初始化块
较少见,用于有特殊要求的类。
static
{
}
3、方法
即setter方法,虽然方便(不必在创建对象时一次性初始化),但是可能引发空指针异常。
Ⅵ java中的类是如何初始化的
类的初始化有3种方法,一种是new关键字,还有就是克隆,还有一个忘记了,作为初学者你只要学会new就可以了。例如Person类。
Person p = new Person();
类名 对象名 = new 类的构造函数;
Ⅶ java中什么是实例初始化
实例初始化就是在内存中开辟一个类的对象 如:
public class Animal{
public Animal(){ }
public void mthod(){ }
}
在main函数中通过语句 Animal a = new Animal();
表示把类Animal实例化,a为其对象引用
Ⅷ 请问java中实例化和初始化区别是什么
初始化一次,实例化多次,你这么记就没问题了!
比方一个类,第一次被使用的时候,静态的资源,包括变量,方法,静态代码块,会进行初始化。
实在记不住,这么想好了,第一次使用,才叫初始化,对吧,那么初始化最先加载的,当然是静态的资源。
比如,一个类,有静态变量,static int a=1;这个静态变量,就会被初始化,当你第二次调用该类的时候,不必重新给a开辟内存,直接调用已有的。
而实例化,则是一个类new一次,就产生一个实例,比方一个类A。
A a1=new A();
A a2=new A();
a1和a2,就叫做A的实例。创建A对象实例的过程,就叫做实例化。
Ⅸ 请问JAVA怎么实现初始化程序
1:27class parent
{
int i = 9;//定义初始化
int j;
parent()
{
System.out.println("i = " + i);
j = 39;
System.out.println("j = " + j);
}
static int x = prt("static parent.x initialized.");//静态定义初始化
static int prt(String s)
{
System.out.println(s);
return 47;
}
}
public class getToKnowConstructingOrder extends parent
{
int k = prt("getToKnowConstructingOrder.k initialized.");//定义初始化
getToKnowConstructingOrder()
{
prt("k = " + k);
prt("j = " + j);
}
static int y = prt("getToKnowConstructingOrder.y initialized.");//静态定义初始化
static int prt(String s)
{
System.out.println(s);
return 63;
}
public static void main(String[] args)
{
prt("getToKnowConstructingOrder constructor.");
getToKnowConstructingOrder s = new getToKnowConstructingOrder();
}
}
执行结果:static parent.x initialized. 1
getToKnowConstructingOrder.y initialized. 2
getToKnowConstructingOrder constructor. 3
i = 9 4
j = 39 5
getToKnowConstructingOrder.k initialized. 6
k = 63 7
j = 39 8
详细运行过程分析:首先,要执行getToKnowConstructingOrder里面的main,需要加载main所在的.class文件,在加载的过程中,JVM发现getToKnowConstructingOrder有父类的,所以转入首先加载parent类的.class文件,形成parent类对象,实现对parent类中静态成员的初始化,于是出现了结果1,然后parent类的.class文件加载完毕,重新回来继续完成加载getToKnowConstructingOrder类的.class文件,形成getToKnowConstructingOrder类对象,该对象对getToKnowConstructingOrder类中的静态成员完成初始化,出现了结果2。
由于执行main函数需要的所有类的.class文件都已经完成了加载,开始执行main函数,于是出现了结果3,要实例化一个getToKnowConstructingOrder实例(即完成非静态成员的定义初始化,接着完成调用构造函数),必须先实例化一个parent类(即完成非静态成员的定义初始化,接着完成调用构造函数),于是出现了结果4,5,此时父类的实例化完成,回来接着进行子类的实例化,于是出现了结果6,7,8。
这里还有一些细节:子类不会自动调用父类的静态方法,除非用super.prt()。
Java程序执行包括加载类和实例化类两个阶段。
加载类阶段与实例化类阶段都是按照先父类后子类的顺序进行。
加载类完成,立即形成Class类的一个对象,名字就是所加载类的类名,然后,该Class类的对象完成所加载类的静态成员的初始化。
JVM启动的时候就加载了Class类,并且分配空间,完成了相关的初始化。
一个类的静态成员并不存在于new出来的堆区空间中,而是存在该类对应的Class类对象的空间里。
另外,站长团上有产品团购,便宜有保证
Ⅹ java语言,什么是初始化啊初始化和实例化一样吗
java中不管对象也好,还是基本数据类型也好,你声明它的时候,它们都称为变量,在你使用变量前给变量进行赋值,这就是变量的初始值,因此叫变量初始化。
实例化是指对象的创建,一般是指通过 new 关键字(当然还有其他途径,比如反射),在堆中为对象分配内存,这就是实例化。举个非常简单的例子,你知道飞机会飞,但飞机在你脑海里只是个概念,当真的把飞机制造出来,变成实实在在的,存在于物质世界(java中称内存)的东西时,你才能用它来飞。如果在物质世界(内存)中根本就不存在,那就无法使用。因此,实例化可以说将概念(类),变成实际存在(内存中存在)的过程就称为实例化。