1.儘管java是基於C++的,但是相比之下,java是一種更純粹物件導向程式設計語言。2.一切都被視作對象
儘管一切都看做對象,但操作的標識符實際上是對象的一個引用,可以將這個情形想象成遙控器和遙控之間的關係。用遙控器(引用)來操作電視機(對象)。沒有電視機,遙控器也可獨立存在。
3.儲存到什麼地方?
寄存器:這是最快的儲存區,因為它位於處理器內部,但是數量有限。
堆棧:位於通用RAM(隨機訪問儲存區),但是可以通過堆棧指標從處理器那裡獲得直接支援。堆棧指標若向下移動則分配新的記憶體,若向上移動則釋放哪些記憶體。
堆:一種通用的記憶體池(位於RAM區),用於存放所有的Java對象。
常量儲存:直接放在代碼內部。
非RAM儲存:流對象:對象轉換為位元組流,通常被發送給另一台機器。持久化對象:對象被存放在磁碟上,即使程式終止,他們仍然可以保持自己的狀態。
4.Java基本類型
基本類型 |
大小(bit) |
範圍 |
封裝類 |
boolean |
--- |
--- |
Boolean |
character |
16 |
0à216 |
Character |
byte |
8 |
-128à127 |
Byte |
short |
16 |
-216à(216-1) |
Short |
int |
32 |
-232à(232-1) |
Integer |
long |
64 |
-264à(264-1) |
Long |
float |
32 |
-232à(232-1) |
Float |
double |
64 |
-264à(264-1) |
Double |
void |
--- |
--- |
|
5.高精度數字
Java提供了兩個用於高精度計算的類BigInteger和BigDecimal。
BigInteger支援任意精度的整數,在運算中可以準確的表示任何大小的整數值而不會丟失任何資訊。
BigDecimal支援任意精度的定點數。
6.java的數組
Java的主要目標之一是安全性,java確保他的數組會被初始化,而且不能在他的範圍之外訪問。這種範圍檢查,是以每個數組少量的記憶體開銷和運行時的下標檢查為代價的。但由此換來的是安全性和效率的提高。所以付出這些代價是值得的。
7.永遠不需要銷毀對象。
儘管以下代碼在C++與C中是合法的,但是在Java裡是不允許的。
{
intx = 12;
{
intx = 23;//illegal
}
}
Java有一個記憶體回收機制,用來監視用New關鍵字建立的所有對象,並辨別那些不再會被引用的對象。你只要建立對象,一旦不再需要他們會自行消失。
8.基本成員預設值
若類的某個成員是基礎資料型別 (Elementary Data Type),即使沒有初始化,java也會確保他有一個初值。但是這種情況只有在變數作為類的成員的時候。如果作為類的方法的話,編譯會報錯。
其他的預設值不是為null,就是為0,要麼就是false。就不說了。
9.對象調用方法被稱為發送訊息給對象。10.java最強大的優勢之一是它具有龐大的標準類庫集。(下面是一個小例子)
package Chapter02;public class Demo01 { public static void main(String[] args) { System.getProperties().list(System.out); System.out.println("*" + System.getProperty("user.name")); System.out.println("*" + System.getProperty("java.library.path")); }}11.編譯和運行
javac Demo.java
java Demo
12.注釋(重點)範例一:
package Chapter02;//: object/HelloDate.javaimport java.util.*;/** * The first Thinking in java example program. * * Displays a String and today`s date. */public class HelloDate {/** * Entry point to class & application. * * @param args * array of string arguments */public static void main(String[] args) {System.out.println("Hello, it`s:");System.out.println(new Date());}}/* * Output: (55% match) * * Hello,it`s: * * Wed Oct 05 14:39:36 MDT 2005 */// :~ 範例二:
package Chapter02;/** 一個注釋示範類 */public class Demo02 {/** 一個變數 */public int x;/** @author 王玉超 *//** * @param a * 參數a * @param b * 參數b * @return 空 * @version 1.0 * @throws <h1>html測試</h1>拋出異常 * @see 引用其他類 * @exception null異常 * @since 指定程式碼最早使用的版本,java文檔中它被用來指定所用的JDK版本情況。 */public void function(int a, int b) {}/** * @deprecated * 指出一些舊特性已由改進的新特性所取代,建議使用者不要再使用這些舊特性,因為將來它們可能會被刪除。使用標記為@deprecated的方法, * 編譯器會發布警告 */}13.編碼風格
由於我本人學這個學的太多了,所以不說了。主要簡單就概括為“駝峰風格”。因為這個比較標準。