1.就是上面new A()的getName(),取实例变量name值
2.a1和a2是一样的,都是指向new A()分配的堆上
3.指向同一址空间,操作起来是一样的效果a1.getName()结果为"ss" static A a1=null;
static A a2=null;
是迷惑性的东西,在里面没有用到在方法changeValue()方法中的a1,a2一直是操作的new A()实例
在changeValue引用类的静态变量应该要用
B.a1;
B.a2;注意作用域就行了。
2.a1和a2是一样的,都是指向new A()分配的堆上
3.指向同一址空间,操作起来是一样的效果a1.getName()结果为"ss" static A a1=null;
static A a2=null;
是迷惑性的东西,在里面没有用到在方法changeValue()方法中的a1,a2一直是操作的new A()实例
在changeValue引用类的静态变量应该要用
B.a1;
B.a2;注意作用域就行了。
解决方案 »
- eclipse的一个问题
- 改错
- serializable后,类中字符串在文件中是如何编码的?
- 如何单击一个按钮,弹出一个固定的面板?Java Gui开发,先谢谢了
- 现在不知道,年、月、日,只知道天数是300,或周数是7 ,怎么求日期?
- JSP调Servlet问题,求高手解答,,谢谢(d)
- 大家快来抢分啊:怎样从URI标识的资源中读数据:
- 面试时总有人要我谈谈uml,我一无所知,应说说点什么可以过关?
- Java与Delphi、C++相比,哪一点值得我们留口水....;.
- 一个resultset的getXXX问题?
- 搞java 的兄弟们,有多少人用过6688 这款手机的?
- 怎么样把vector数组中的数据写到文件中去
地址
a1,a2指向同一地址空间
2.是地址传递,此时a1,a2都是指向同一个实例.跟是否静态无关.
3.是指向同一地址空间
a2 = a1; 是值传递,Java中无论是什么值都是"pass by value"的
当a2 = a1之后,a1和a2就指向了同一地址空间。
static关键字的作用是声明一个变量或者是一个方法为静态的。当一个变量为静态变量时那么它就不依赖于对象而存在了。例如:Math类中的静态常量PI,你如果要使用这个量,那么你不必创建Math类的对象,可以直接通过Math.PI来使用。静态方法也是一样,它不依赖于对象,所以在静态方法中不能使用this,super关键字。