1、檢查類別是否載入。
當虛擬機器遇到new指令時,首先檢查指令的參數是否能在常數池中定位為一個類別的符號引用,檢查該符號引用代表的類別是否載入、分析和初始化。否則,執行類別載入過程。
2、為目標分配記憶體。
在完成類別載入後,虛擬機會開始為目標分配記憶體,此時確定所需記憶體的大小。只需在堆上分配必要的記憶體即可。
3、為分配的儲存空間初始化零值。
物件的記憶體分配完成後,物件的記憶體空間需要初始化為零,保證物件即使沒有初始值,也可以直接使用。
4、對受眾進行其他設定。
分配記憶體空間,初始化零值後,虛擬機器還需要對物件進行其他必要的設置,設定場所在物件頭部,包括該物件所屬類別、類別元資料資訊、物件hashcode 、GC代理年齡等資訊。
5、執行init方法。
在執行上述步驟後,即使虛擬機器中的物件成功,Java程式也需要實作init方法,因為此時的物件只是初始化的零值,沒有真正根據程式中的程式碼指派初始值,所以呼叫init方法後,這個物件真的可以使用。
1.SpringMVC,Spring Web MVC是一種基於Java的實作了Web MVC設計模式的請求驅動類型的輕量級Web框架。
2.Shiro,Apache Shiro是Java的安全框架。
3.Mybatis,MyBatis 是支援普通 SQL查詢,預存程序和進階映射的優秀持久層框架。
4.Dubbo,Dubbo是一個分散式服務框架。
5.Maven,Maven是專案管理和建置自動化工具。
6.RabbitMQ,RabbitMQ是用Erlang實現的一個高並發高可靠AMQP訊息佇列伺服器。 7.Ehcache,EhCache 是純Java的進程內快取框架。
以上是java中怎麼創建對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!