java关于static的一点小疑问

最近帮同学写代码的时候发现了一个有意思的现象那就是在static方法中this关键字不能使用

如图

java关于static的一点小疑问java关于static的一点小疑问

java关于static的一点小疑问

这我就很迷惑了然后后来查了一下《Java编程思想》,那上面说在调用非static的方法时编译器会把这个对象的引用变量作为参数传入方法中,然后就用this关键字来表示这个引用变量

然后我就用jdk自带的反汇编器反汇编看了看:

java关于static的一点小疑问

从图中可以看出两个方法的反汇编语句确实是不同的,test2的aload_0表示局部引用变量入栈,iload_1表示局部int型变量入栈这个是符合我们的预期的。

未完待续。

原创文章转载请注明出处