this = null; 为什么有语法错误???
解决方案 »
- 垃圾回收问题
- 为什么java小程序只能编译不能运行
- Scanner 的hasNext(pattern)为什么是返false?
- 为什么swing的菜单弹出速度没有win32的快,总是要停顿一下?
- 想问一个java缓冲区的问题
- socket 流读取结束判断问题----------------很让人郁闷
- 求一段上传文件的代码,不要求太复杂的,只要有简单的上传功能就行。
- 快来救命!SOS!!,我定义了一个package Geshan,放在文件夹Geshan中。。(再线等待))
- 遇到问题了!!!!!!!!
- 怎么用Applet获得当前页面的环境变量??
- 向高手求java取得两种日期的方法mmdd和mmddhhmmss
- 求一正则表达式!急!
至于为什么this是个常量,这个也不得而知。
方法将其存在自己的局部变量区的第一个位置.用javap打开class文件,然后看看非静态方法的指令集.会经常看到一个指令aload_0
这个"0"这个位置实际上就是this.虚拟机指令只能读取他,不能改变他.
与其说"不可以改变"不如说"没有办法改变"
this是对当前对象的引用,肯定是常量了?为什么这么肯定?当前对象也可以指向其他的地址。————————————————————————————————————————————————
当前对象可以指向其它地址吗?How?
试试看 this = 什么东西能成功呢?
如果你是说的Object o = new Object();
o = new Object();这种情况的话,那么。这里o的确是指向了两个对象,但这里o本身不是对象,o只是一个引用而已,用C++的话来说,是一个指针常量。new Object() = new Object()总不能成功吧!
class superx{
int i;
}
class subx extends superx{ public void test(){
int i=superx.this.i;}
}
这个"0"这个位置实际上就是this.
是一个地址,..
就像C++里的指针地址一样..
地址怎么能付值呢??
B说:嗯,睡着了。this已经存在了,怎么能是空呢?
B已经睡着了,怎么还能回答呢?