1. 程式人生 > >Java編程思想總結筆記Chapter 2

Java編程思想總結筆記Chapter 2

向上 test 不同 最好 定義 安全性 sta 垃圾 內存空間

本章介紹Java程序的基本組成部分,體會到Java中幾乎一切都是對象。

第二章 一切都是對象

目錄:

  • 2.1 用引用操縱對象
  • 2.2 必須由你創建所有對象
  • 2.3 永遠不需要銷毀對象
  • 2.4 創建新的數據類型:類
  • 2.5 方法、參數和返回值
  • 2.6 構建一個Java程序
  • 2.7 你的第一個Java程序
  • 2.8 註釋和嵌入式文檔
  • 2.9 編碼風格

2.1 用引用操縱對象

一切都看作對象,操縱的標識符實際上是對象的一個“引用”,遙控器(引用)操縱電視機(對象),想調控電視,只需通過遙控器,且遙控器是獨立存在的。

2.2 必須由你創建所有對象

一旦創建了一個引用,就希望它能與一個新的對象相關聯,通常用new操作符來實現這一目的。

String s = new String("Jiancheng");

五個不同的地方可以存儲數據:

  • 寄存器:位於CPU內部,寄存器的數量極其有限,所以寄存器根據需求進行分配,速度最快。
  • 堆棧:位於通用RAM(隨機訪問寄存器)中,Java編譯器必須知道存儲在堆棧內所有數據的大小和生命周期,“堆棧指針”向下移動則分配新內存,向上移動則釋放內存,速度僅次於寄存器,基本數據類型和引用存放在此。
  • 堆:位於RAM區,用於存放所有Java對象,編譯器不用知道數據大小和生命周期.
  • 常量存儲:常量值通常直接存放在程序代碼內部。
  • 非RAM存儲:完全存活在程序之外,不受程序的任何控制,例子是流對象持久化對象
    ,在流對象中,對象轉換成字節流,通常被發送到另一臺機器。在"持久化"對象中,對象被存放於硬盤上,即使程序終止,它們仍可以保持自己的狀態。

9種基本類型:

技術分享

boolean類型所占內存儲空間的大小沒有明確指定,僅定義為能夠取字面值true或false。

高精度數字:

  • BigInteger:支持任意精度的整數
  • BigDecimal:支持任意精度的定點數

操作與對基本類型所能執行的操作相似,但必須以方法調用方式取代運算符方式來實現。

Java中的數組:
數組會被初始化,而且不能在它的範圍之外被訪問。這種範圍檢查,是以每個數組上少量的內存開銷及運行時的下標檢查為代價(換來安全性和效率)。

2.3 永遠不需要銷毀對象

作用域:

技術分享

------------------------------------------------------------------

技術分享

對象的作用域:

Java的作用和基本類型差別很大,new創建一個Java對象後,它可以存活於作用域之外。只要你需要這個對象,就會一直保留下去,直到垃圾回收器辨別到該對象不會再被引用並釋放該對象的內存空間,這樣就消除了內存泄漏的問題。

2.4 創建新的數據類型:類

類決定了某一對象的外觀與行為,確定了對象的類型。

基本成員默認值:

技術分享

當變量作為類的成員使用時,Java才確保給定其默認值,來確保基本類型成員變量得到初始化(初始值可能不是你想要的,最好自己初始化)。註意默認初始化的方法不適用於非某個類的字段變量,忘記初始化,Java會在編譯時給你返回一個錯誤。

2.6 構建一個Java程序

static關鍵字:

下面兩種情況需要使用static

  • 只想為某特定域分配單一存儲空間,而不去考慮究竟要創建多少對象。
  • 某個方法不與包含它的類的任何對象關聯在一起,就是沒有創建對象,也能夠調用這個方法。
class StatiTest{
  static i = 47; //可以直接StatiTest.i這樣調用
}

StatiTest st1 = new StatiTest();
StatiTest st2 = new StatiTest();
其中st1.i和st2.i指向同一存儲空間,因此他們具有相同的值。

static作用於某個方法,區別在於用法在不創建任何對象的前提下就可以調用它,類.方法()。

2.9 編碼風格

駝峰風格:

  • 類,每個單詞的首字母采用大寫
  • 方法、字段及對象等,第一個單詞的首字母采用小寫,其余首字母大寫

總結:

本章容易理解,對Java語言及它的一些基本思想有一個總體的認識,大多數知識點也接觸過,但容易把細節的地方忘記,多看無礙。

轉載註明:http://www.cnblogs.com/wujiancheng/

Java編程思想總結筆記The first chapter

Java編程思想總結筆記Chapter 2