Java编程思想学习(一) 一切都是对象
前言
Java是基于C++的,但Java是一種更加純粹的面向對象程序設計語言。
C++和Java都是混合/雜合型語言。雜合型語言允許多種編程風格。
用引用操縱對象
每種編程語言都有自己操縱內存中元素的方式。
- 直接操縱元素
- 用某種基于特殊語法的間接表示(C和C++里的指針)
- 用引用操縱對象(Java)
在Java中,一切都被視為對象。操縱的標識符實際上是對象的一個引用。
- 類比為遙控器(引用)來操縱電視機(對象)
- 只要把握這個遙控器,就能保持與電視機的連接
- 改變頻道或減小音量,實際操縱的是遙控器(引用),再由遙控器來調控電視機(對象)
- 在房間四處走走,只要攜帶遙控器(引用)而不是電視機(對象)就能調控電視機
- 即使沒有電視機,遙控器也可以獨立存在
必須由我們創建所有對象
存儲到什么地方
程序運行時,對象的放置安排,內存的分配都是我們必須了解的。
有五個不同的地方可以存儲數據:
1.寄存器
2.堆棧
3.堆
4.常量存儲
5.非RAM存儲
寄存器:位于數量極其有限的寄存器,是最快的存儲區,寄存器會根據需求進行分配,不能直接控制,也不能在程序中感覺到寄存器存在的任何跡象
堆棧:位于通用RAM(隨機訪問存儲器)中,通過堆棧指針可以從處理器那里獲得直接支持,堆棧指針向下移動,則分配新的內存,向上移動,則釋放那些內存(這是一種快速有效的分配存儲方法,僅次于寄存器)創建程序時,Java系統必須知道存儲在堆棧內所有項的確切生命周期,以便上下移動堆棧指針。--->限制了程序的靈活性,所以某些Java數據(如對象引用)存儲在堆棧中,但是Java對象并不存儲在堆棧中
堆:通用的內存池(位于RAM區)。用于存儲所有java對象。編譯器不需要知道存儲的數據在堆中存活多長時間(靈活性,但分配和清理的時間較長)。
常量存儲:存放在程序代碼內部。
非RAM存儲:數據完全存活于程序之外,不受程序的任何控制,在程序沒有運行時也可以存在。如流對象,持久化對象。
特例:基本類型
new一個對象存儲在堆里,因此用new創建一個對象——特別是小的,簡單的變量往往不是很有效的。
對于這些類型,Java采取不用new來創建變量,而是創建一個并非是引用的自動變量(直接存儲值,并且存儲在堆棧中)。
Java語言對于每種基本類型所占存儲空間大小是固定的,不像其他語言隨機器硬件架構的變化而變化。(可移植性更高)
?
轉載:http://www.cnblogs.com/JohnTsai/p/4606365.html
?轉載于:https://www.cnblogs.com/benchao/p/5262833.html
總結
以上是生活随笔為你收集整理的Java编程思想学习(一) 一切都是对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iphone照片删掉又出现_iPhone
- 下一篇: 企业非法集资风险预测_2020CCF--