关于类的构造方法的个人理解。。高手进来指点一下!!! 本帖最后由 liuyuanyuan0802 于 2011-07-26 01:12:30 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在第二步中。。是谁对变量初始化 给默认值的。。只有这么不明白。。是JVM吗? 在第二步中是JVM给变量初始化的。例如:public class MyJava { private int a = 5; private int b; public MyJava() { System.out.println(a); System.out.println(b); } // 这是非静态代码块 { b = 60; }}如果你要new一个MyJava对象,它的过程是这样的。1、看你MyJava这个类加载了没,没有的话就按我之前说的,对类进行加载、连接、初始化。2、为对象分配内存空间,将对象的实例变量自动初始化为其变量类型的默认值。这里将属性a和b的值都设置成了0,这是由JVM完成的。3、初始化对象,给实例变量赋予正确的初始值。这里执行“a = 5”(这是在声明a时的显式初始化)及“b = 60”(这是在非静态代码块中的显式初始化)。4、执行构造方法,输出“5和60”。5、返回MyJava对象在堆区中的地址。 返回MYJava对象在堆中的地址是不是存放在对象变量里面? 这样就完成对象的初始化了 可以使用对象了 是吗? MyJava obj = new MyJava();在堆区中创建的MyJava对象地址就存放在obj引用变量中。然后就可以用了 求解 怎么数组越界 如何解决 哪儿有svn的详细教程 eclipse生成.class 下面的数组定义,分配在堆还是栈中? 关于serversocket监听! [求助]各位哥哥姐姐帮我一下,急阿! 用什么咚咚可以在Windows XP下开发标准JAVA程序?谢谢!!!! 怎么能让我的applet不被人反编译? 如何得到一个文件的生成时间? where is thinking in java to download?? 代码求解? 谢谢 java中实现SQL命令
例如:
public class MyJava {
private int a = 5;
private int b; public MyJava() {
System.out.println(a);
System.out.println(b);
} // 这是非静态代码块
{
b = 60;
}
}
如果你要new一个MyJava对象,它的过程是这样的。
1、看你MyJava这个类加载了没,没有的话就按我之前说的,对类进行加载、连接、初始化。
2、为对象分配内存空间,将对象的实例变量自动初始化为其变量类型的默认值。这里将属性a和b的值都设置成了0,这是由JVM完成的。
3、初始化对象,给实例变量赋予正确的初始值。这里执行“a = 5”(这是在声明a时的显式初始化)及“b = 60”(这是在非静态代码块中的显式初始化)。
4、执行构造方法,输出“5和60”。
5、返回MyJava对象在堆区中的地址。
返回MYJava对象在堆中的地址是不是存放在对象变量里面? 这样就完成对象的初始化了 可以使用对象了 是吗?
然后就可以用了