1. 程式人生 > >Student s = new Student();在記憶體中做了哪些事情?

Student s = new Student();在記憶體中做了哪些事情?

Student s = new Student();在記憶體中做了哪些事情?】

     1載入Student.class檔案進記憶體

     2記憶體為s開闢空間

     3記憶體為學生物件開闢空間

     4對學生物件的成員變數進行預設初始化

     5對學生物件的成員變數進行顯示初始化

     6 通過構造程式碼塊對學生物件進行初始化(若沒有就不執行)

     7通過構造方法對學生物件進行初始化 (通過構造方法對學生物件的成員變數賦值)    物件初始化完畢。

     8學生物件初始化完畢,把物件地址賦值給s變數,讓變數s指向學生物件。

相關推薦

Student s = new Student();在記憶體哪些事情

【Student s = new Student();在記憶體中做了哪些事情?】      1載入Student.class檔案進記憶體      2在棧記憶體為s開闢空間      3在堆記憶體為

Student s = new Student();在記憶體哪些事情?

載入Student.class檔案進記憶體,如果該類有父類,要先載入其父類 在虛擬機器棧中為引用變數s開闢空間(棧中不會預設初始化) 在堆記憶體中為學生物件開闢空間,進行預設初始化(0,null) [

Java建立物件在記憶體哪些事情

Student s = new Student();//做了哪些事情?A:把Student.class檔案載入到記憶體B:在棧記憶體給s變數開闢一個空間C:在堆記憶體為學生物件申請一個空間D:給成員變數進行預設初始化E:通過構造方法給成員變數進行顯示初始化F:通過構造方法給成

javanew一個物件jvm哪些事情

new一個物件時Jvm做了哪些事情: 之前沒有進行過類載入(1)類載入並初始化類中的靜態屬性(賦預設值,如果靜態屬性有自己賦值,則顯示自己賦的值)                                          (2)執行靜態程式碼塊 之前進行過類載入,則

申請陣列記憶體空間時哪些事情

申請陣列時,除了分配申請的空間之外,還會分配一些空間儲存和這塊記憶體相關的資訊 1、_CrtMemBlockHeader,放在申請的記憶體空間之前,包括兩部分:[1]這塊記憶體的相關資訊。[2]申請記憶體之前連續4個位元組,值為fd typedef struct _CrtM

關於類、方法、對象(實例):通過一個例子看一下self都哪些事情

就會 就是 style 寫代碼 obj 這一 charm self 將不 我們在定義一個類時,經常會在類的各個方法中看到self,那麽在程序執行時self到底起了什麽作用,什麽時候要加self,這一點需要我們思考並好好理解。之前在學習時沒有想這麽多,加之用p

Mybatis與Spring整合時哪些事情

 這篇部落格主要是來分析MyBatis與Spring整合後Spring幫我們做了哪些事情,以及整合後使用MyBatis有什麼變化。 首先來看看整合包下有什麼東西吧。 第一個模組annotation:這裡做了一個註解(MapperScan),用於掃描mapper。以及mappe

String str = new String("content") 建構函式有沒有返回值?new關鍵字到底在物件初始化什麼?

看到String str = new String("content")時想到一個問題:在我印象裡,建構函式時沒有返回值的,那麼建立的物件是如何賦值的呢?有沒有方法確定知道建構函式有沒有返回呢? 建構函式時沒有返回值的,賦值因為new關鍵字。 new的內部是呼叫了一個叫void * oper

String str = new String("content") 建構函式有沒有返回值?new關鍵字到底在物件初始化什麼?

看到String str = new String("content")時想到一個問題:在我印象裡,建構函式時沒有返回值的,那麼建立的物件是如何賦值的呢?有沒有方法確定知道建構函式有沒有返回呢? 建構函式時沒有返回值的,賦值因為new關鍵字。 new的內部是呼叫了一個叫v

java的方法之new一個物件的時候JVM都那些事情

——之前沒有進行類載入    *1.類載入,同時初始化類中靜態的屬性(賦預設值,隨即賦宣告的值), * 2.執行靜態程式碼塊  3. 為類分配記憶體空間,初始化非靜態的屬性 (賦預設值)      4.呼叫父類構造器 5.父類構造器執行完後,如果自己宣告屬性的同時有顯示的賦

js使用new操作符什麼事情

例:var obj = new Base(); 該步一共做了三件事:即 var obj = {}; obj.__proto__ = Base.prototype; Base.call(ob

創建一個對象都在內存什麽事情

什麽 分配 首地址 位置 內存 一個 new class文件 class 創建一個對象都在內存中做了什麽事情? 1:先將硬盤上指定位置的Person.class文件加載進內存。 2:執行main方法時,在棧內存中開辟了main方法的空間(壓棧-進棧),然後在main方法的棧

String s=new String("abc); 建立幾個String Object?

原 https://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html 棧(stack):主要儲存基本型別(或者叫內建型別)(char、byte、short、int、long、float、double、boolean)和物件

vue原始碼分析1-new Vue哪些操作

首先我們可以看到vue的原始碼在github上有,大家可以克隆下來。 git地址 我們主要看src下的內容。 1.現在我們來分析下 new Vue都做了哪些操作 var app = new Vue({ el: '#app', mounted:{ console.log(t

spring框架在開發為我們哪些事?

開發中利用spring可以減輕程式設計師工作負擔,提高程式碼的複用率,降低程式的耦合性,簡化程式碼易於程式的擴充套件和維護。那麼spring是如何實現這些功能的呢,spring在開發中為我們做了哪些事呢? 1、spring實現了ioc 即控制反轉,將物件的建立的控制權由程式

理解編譯器在編譯過程什麼

今年開了作業系統課,課上老師提了一個問題:從一個儲存程式程式碼的文字檔案到可執行的程式,編譯器做了啥?由於之前買過<<深入瞭解計算機系統>>這本書,剛買來時受熱就翻了其中一部分章節,其中就有講到上述所問的講解,索性就參考其上的講解寫出來

mongodb 在yii2 框架的使用(本人在框架功能擴充套件,非非官方下載的yii2的操作)

1. 在\common\mongo\中增加一個檔案,這個檔名使用mongodb中的表明作為名字 譬如:mongodb中collection的表名為:catalog_product 增加檔案  \common\mongo\catalog_product.php 檔案內部的結

oracle的commit過程什麼

    oracle中的commit過程速度快,預設情況下同步操作,當然也可以選擇非同步。     commit過程中大致做了四件事情:     1.產生SCN。     2.等待LGWR將餘下的日誌緩衝資料寫線上重做日誌,並將SCN寫入日誌,到此事務基本上結束了,查詢V$

new一個物件具體什麼

1、建立一個新物件,如:var person = {};2、新物件的_proto_屬性指向建構函式的原型物件,這樣新物件就擁有了建構函式中的方法。3、將建構函式的作用域賦值給新物件。(也所以this物件指向新物件)4、執行建構函式內部的程式碼,將屬性新增給this新物件。5、

iPhone X熱銷 蘋果哪些用心良苦的事兒?

iphone x前不久,蘋果推出了本年度首款新手機iPhone8,銷售首日,Apple store門前沒有慣性的長龍,莫說是黃牛搶購,連普通消費者都鮮有問津。網上甚至流傳著一個經典的段子,消費者問店家:iPhone8有沒有貨?店家回復:有啊,有啊!消費者接著說:“那給我來一臺iPhone7吧”!段子的真假無從