首先我们知道,对象是类的实例。那么什么是类呢?类其实也是一个对象,不过是一个特殊的对象,包含了类方法(静态方法)、构造方法以及对象方法,并且还包含有内部结构的信息。JVM创建该类的对象时,类对象向JVM提供自身的结构信息,给新对象分配内存空间,并且JVM会执行类的构造方法初始化内部实例。所创建的对象内部含有指向其类对象入口地址指针的引用,对象自身的入口地址由引用它的变量掌握。这样,程序就可以通过变量找到对象,再通过对象找到存放于类对象的方法,以执行对象的操作;而通过对象寻址方法时,肯定还会把该对象的入口地址传递给在类对象中的方法,这样才能操作实际对象。这些都是底层机制实现的。比如:String s = new String("hello"); s.toUpperCase();由此看来this的意义不是唯一的。对于方法、静态成员,它应该指向类对象的入口地址;而对于一般成员,它又应该指向对象的入口地址。可能是由内部机制判断。具体的细节应该更复杂,我认为大致应该如此。个人理解,仅供参考。
s.toUpperCase();由此看来this的意义不是唯一的。对于方法、静态成员,它应该指向类对象的入口地址;而对于一般成员,它又应该指向对象的入口地址。可能是由内部机制判断。具体的细节应该更复杂,我认为大致应该如此。个人理解,仅供参考。