jvm层面的this

this关键字
        jvm虚拟机会给每个对象分配this,代表当前对象
        
        理解:
            相对于人话的 “我的”,每个人的 我 都是指自己
            谁调用,this就是谁
            【相对于一个隐藏的成员变量,存地址值,指向自己】            
                【对象名.this是什么?  对象名不可能点this的,this只能在其所在类方法中使用】
            
        对象的真正地址是在jvm运行的,拿不出来,但是用其.hashcode方法出来的可以当作其地址
            this.hashcode()
            注意:    这个方法是根据实际地址映射哈希值,
                    地址相同映射的哈希值一定相同,
                    哈希值相同的地址不一定相同
                    当然这个比较深入,一般不做考虑,当成一对一关系
        【使用】    
            1 用于区分当前类的属性与局部变量
            2 this不能在类定义的外部使用,只能在类定义的方法中使用,this可以访问本类的属性,方法,构造器this(构造器参数);,
                访问构造器只能在构造器中使用,在构造器中调用另一构造器,而且这条语句必须是第一条语句
                其他方法不能调用构造器?(不对的)
            3 this.方法与直接调用方法是在底层有区别的
                非静态方法编译后有局部变量this在变量表中,可以用this调用,在this转要调用方法的内存地址
                (与直接调用多了一个中间件this)
                静态方法编译后,局部变量表中没有this,不能在其中使用this
            4 this先看本类有没有属性与方法,没有【this也会向父类寻找】

你可能感兴趣的:(jvm)