问一个关于类加载和声明的问题 java 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去掉p.name的时候没有执行是因为P1类没有加载,加上p.name的时候P1类加载了,所以静态块自动执行。 执行到P1 p=null;时不会加载类,在执行p.name时,由于是调用P1类的静态变量,就会加载P1类。然后就会加载P1类中的静态块或静态变量。 看一下下面的例子,class Person{ static{ System.out.println("wangwuyi"); } static String name = "jing"; public Person(){ System.out.println("qing"); System.out.println(dsdf); }}public class Static { public static void main(String[] args) { Person p = null; System.out.println(p.name); }}Person p= null;的时候没有初始化类,因为没有new,没有掉要构造器,但是p.name的时候初始化了类,初始化类的时候肯定是先执行静态初始化块的内容。有趣的是类的生命周期是类加载、连接、初始化、使用、卸载。然而调用p.name的时候正是初始化阶段,应该执行完了连接阶段,怎么没有把System.out.println(dsdf);这一错误检测出来那?求解释 没有new,构造函数不被调用 没有new,构造函数不被调用这个是肯定的,我的问题是类的生命周期中“连接”的作用不是“类是否合法”吗??我感觉上面的类有问题怎么没有检测出来??? 没有new,构造函数不被调用你这个能编译通过吗 没有new,构造函数不被调用你这个能编译通过吗你可以运行试试 http://www.cnblogs.com/alexlo/archive/2013/03/05/2944573.html这个也许能帮到你... System.out.println(dsdf);编译错误啊 静态成员不属于类, 只要有一个静态成员被调用,静态的东西都会被加载,而且只会加载一次。你要是new的是肯定是加载静态成员 。定义以个变量指向空,类是什么也不会做的。 补补Java基础可以不,别误人子弟。。 补补Java基础可以不,别误人子弟。。我觉得java基础挺好呵呵 你有啥见解说啊 我哪说的不对 ,你指出来。 补补Java基础可以不,别误人子弟。。我觉得java基础挺好呵呵 你有啥见解说啊 我哪说的不对 ,你指出来。可能是我反应过度,语气有点重只有一点“静态成员不属于类”,静态成员本来就是属于类的,实例成员属于对象的,静态变量也叫类变量,静态方法也叫类方法。 补补Java基础可以不,别误人子弟。。我觉得java基础挺好呵呵 你有啥见解说啊 我哪说的不对 ,你指出来。可能是我反应过度,语气有点重只有一点“静态成员不属于类”,静态成员本来就是属于类的,实例成员属于对象的,静态变量也叫类变量,静态方法也叫类方法。应该说静态成员不属于类对象。是属于类。 java DOM XML appendChild没用啊 如何判断一个框体是否关闭了?求解 问个正则表达式的菜鸟问题 加入背景图的问题 如何访问https的webservice 又是一道继承题 〔急〕给一个正方形里的四个等腰三角形填上不同的颜色 请教string的+的问题 谢谢了 文本数据源,如果导入到数据库中(在线等) 很纠结的一个问题,java中的字符串怎样高效查找是否有某子串? 十六进制转图片不显示图片,哪里出错了? 金蝶BOS开发的前景
static{
System.out.println("wangwuyi");
}
static String name = "jing";
public Person(){
System.out.println("qing");
System.out.println(dsdf);
}
}public class Static { public static void main(String[] args) {
Person p = null;
System.out.println(p.name);
}
}Person p= null;的时候没有初始化类,因为没有new,没有掉要构造器,但是p.name的时候初始化了类,初始化类的时候肯定是先执行静态初始化块的内容。有趣的是类的生命周期是类加载、连接、初始化、使用、卸载。然而调用p.name的时候正是初始化阶段,应该执行完了连接阶段,怎么没有把System.out.println(dsdf);这一错误检测出来那?求解释
没有new,构造函数不被调用
没有new,构造函数不被调用这个是肯定的,我的问题是类的生命周期中“连接”的作用不是“类是否合法”吗??我感觉上面的类有问题怎么没有检测出来???
没有new,构造函数不被调用
你这个能编译通过吗
没有new,构造函数不被调用
你这个能编译通过吗你可以运行试试
你要是new的是肯定是加载静态成员 。
定义以个变量指向空,类是什么也不会做的。
补补Java基础可以不,别误人子弟。。
补补Java基础可以不,别误人子弟。。我觉得java基础挺好呵呵 你有啥见解说啊 我哪说的不对 ,你指出来。
补补Java基础可以不,别误人子弟。。我觉得java基础挺好呵呵 你有啥见解说啊 我哪说的不对 ,你指出来。
可能是我反应过度,语气有点重只有一点“静态成员不属于类”,静态成员本来就是属于类的,实例成员属于对象的,静态变量也叫类变量,静态方法也叫类方法。
补补Java基础可以不,别误人子弟。。我觉得java基础挺好呵呵 你有啥见解说啊 我哪说的不对 ,你指出来。
可能是我反应过度,语气有点重只有一点“静态成员不属于类”,静态成员本来就是属于类的,实例成员属于对象的,静态变量也叫类变量,静态方法也叫类方法。应该说静态成员不属于类对象。是属于类。