【正文】
這個變量容納了具體的值,并置于堆棧中,能夠更高效地存取。對于這些類型的數據存儲,一個特別有用的技巧就是它們能存在于其他媒體中。這樣做是安全的,因為它們永遠都不會改變。執(zhí)行這些代碼時,會在堆里自動進行數據的保存。創(chuàng)建程序時, Java編譯器必須準確地知道堆棧內保存的所有數據的 “ 長度 ” 以及 “ 存在時間 ” 。有六個地方都可以保存數據: (1) 寄存器。所以在上面的例子中,可以說: String s = new String(asdf)。若此時向 s發(fā)送一條消息,就會獲得一個錯誤(運行期)。在其他 Java 參考書里,還可看到有的人將其稱作一個 “ 引用 ” ,甚至一個 “ 指針 ” 。也就是說,正式用它設計之前,必須先將自己的思想轉入一個面向 對象的世界(除非早已習慣了這個世界的思維方式)。 第 1 頁 共 7 頁 畢業(yè)設計說明書 英文文獻及中文翻譯 學 號: 學 號: 學生姓名: 學 院: 專 業(yè): 指導教師: 2020 年 6 月 軟件學院 軟件工程 第 2 頁 共 7 頁 Thinking in Java Although it is based on C++, Java is more of a “pure” objectoriented C++ and Java are hybrid languages, but in Java the designers felt that the hybridization was not as important as it was in C++. A hybrid language allows multiple programming styles。只有做好這個準備工作,與其他 OOP 語言相比,才能體會到 Java 的易學易用??蓪⑦@一情形想象成用遙控板(句柄)操縱電視機(對象)。這是由于 s實際并未與任何東西連接(即 “ 沒有電視機 ” )。 它不僅指出 “ 將我變成一個新字串 ” ,也通過提供一個初始字串,指出了 “ 如何生成這個新字串 ” 。這是最快的保存區(qū)域,因為它位于和其他所有保存方式不同的地方:處理器內部。這是由于它必須生成相應的代碼,以便向上和向下移動指針。當然,為達到這種靈活性,必然會付出一的代價:在堆里分配存儲空間時會花掉更長的時間! 第 7 頁 共 7 頁 (4) 靜態(tài)存儲。有的常數需要 嚴格地保護,所以可考慮將它們置入只讀存儲器( ROM) 。一旦需要,甚至能將它們恢復成普通的、基于 RAM 的對象。 Java 決定了 每種主要類型的大小。也就是說,不是用 new 創(chuàng)建變量,而是創(chuàng)建一個并非句柄的 “ 自動 ” 變量。即使程序中止運行,它們仍可保持自己的狀態(tài)不變。常數值通常直接置于程序代碼內部。要求創(chuàng)建一個對象時,只需用 new命令編制相關的代碼即可。這是一種特別快、特別有效的數據保存方式,僅次于寄存 器。特別要注意的是內存的分配。 new的意思是: “ 把我變成這些對象的一種新類型 ” 。所以如果想容納一個詞或句子,可創(chuàng)建一個 String句柄: 但這里創(chuàng)建的只是句柄,并不是對象。但要注意,盡管將一切都 “ 看作 ” 對象,但操縱的標識符實際是指向一個對象的 “ 句柄 ” ( Handle)。 Java 語言首先便假定了我們只希望進行面向對象的程序設計。 the reason C++ is hybrid is to support backward patibility with the C language. Because C++ is a superset of the C language, it includes many of that language’s undesirable features, which can make some aspects of C++ overly plicated. The Java language assumes that you want to do only objectoriented programming. This means that before you can begin you must shift your mindset into an objectoriented world (unless it’s already t