java 静态方法中为什么不可以使用关键字this _super_Java static方法里为什么不能使用this关键字,和Super...
Static方法是類方法,先于任何的實例(對象)存在。
即Static方法在類加載時就已經存在了(JAVA虛擬機初始化時),但是對象是在創建時才在內存中生成。
而this指代的是當前的對象。
static叫靜態方法,也叫類方法。
即在程序啟動的時候,就會為static方法分配一塊內存空間,沒有static的其他方法,非靜態方法,必須在類實例化時,才有內存空間,所以在類實例化之前是無法調用的jvm有類加載器,第一次加載類時執行類中的static域,jvm會專門劃分一個內存區域給static程序塊,可以成為靜態區。
this指針是指向類的對象,在實例化對象時jvm會在堆區分配內存給一個具體的對象,this指針指向這個對象。而類中的static域始終
是在靜態區分配內存,this指向堆區,所以不能調用。
static是屬于類的。this是對象指針。
而?super代表子類對父類滿參構造函數的初始化,也是需要產生對象才可以使用
但是考慮到虛擬機加載順序為先加載類,當被實例化才產生對象。
所以如果并存則表示類和對象同時加載,顯然是不合邏輯的。
拙見,有何不足之處請指教,今天做項目的時候無意中發現了,實習生的一個錯誤,指正并且穩固
標簽:Java,對象,方法,實例,static,jvm,Super,加載
來源: https://blog.csdn.net/qq_33188563/article/details/98732070
總結
以上是生活随笔為你收集整理的java 静态方法中为什么不可以使用关键字this _super_Java static方法里为什么不能使用this关键字,和Super...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以下关于java中布局管理说法错误的是_
- 下一篇: java美元兑换,(Java实现) 美元