原创 (二)jvm對象的創建和訪問

一 對象的創建 虛擬機首先會檢查是否能在常量池中定位一個類的符號引用,檢查這個符號引用是否已經被加載解析和初始化。 類加載檢查通過後,會爲新生對象分配內存,對象所需內存的大小在類加載完成後就已經確定。 在虛擬機中爲對象分配內存的方式有兩種

原创 從尾到頭打印鏈表

題目:輸入一個鏈表,從尾到頭打印鏈表每個節點的值 Public classListNode(){        Int var;        ListNode next=null;        Public ListNode(int

原创 替換空格

題目:請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。 Public class replace(StringBuffer str

原创 (一)jvm虛擬機運行時數據區域

java虛擬機在執行java程序時會把他所管理的內存劃分爲幾個不同的數據區域 一 程序計數器        程序計數器是一塊較小的內存區域,是線程執行當前字節碼的行號指示器,,通過改變計數器的值來選取下一個字節碼的執行指令,分支,循環,跳

原创 (三)jvm對象的回收

怎麼判斷對象是否可以回收? 一:引用計數算法 在對象中添加一個引用計數器,每當有一個地方引用他時,計數器加1,當引用失效時,計數器減1,當計數器爲0時,就表明該對象已經不能被使用了 缺點是不能解決對象之間相互循環引用的問題 二:可達性分析