1. 程式人生 > >基礎總結筆記1

基礎總結筆記1

弊端 內存空間 var reserve void 信息 訪問權限 利用 fff

1.基本語法:

大小寫敏感,類名首字母大寫,多個的話每個單詞首字母大寫,例如MyFirstJavaClass

方法名:所有的方法名都應該以小寫字母開頭,若幹單詞,後面每個單詞首字母大寫,

源文件名必須和類名相同

主方法入口:所有的Java程序由public static void main(String []args)方法開始執行

2.繼承,存在一個類擁有所要的屬性方法,將新建的類繼承該類,利用繼承的方法,重寫已經存在的類和方法,,而不用重寫代碼,被繼承的類成為超類(superclass)

派生類為子類(subclass)

3.接口,對象相互通信的協議,接口只定義派生要到的方法,但是方法的實現取決於派生類

4.Java的八種基本類型:(按字節來分)

boolean 布爾型 1個字節 8bit(8位)

byte 字節類型 1個字節

char 字符類型 2個字節

short 短整型 2個字節

int 整型 4個字節

float 浮點型(單精度)4個字節

long 長整型 8個字節

double 雙精度類型 8個字節

Java中默認的整數類型是int,如果要定義為long ,則要在數值後加上L或者l

默認的浮點型是雙精度浮點,如果要定義float,則要在數值後面加上f或者F

一個字節等於8位,1個字節等於256個數。2^8

一個英文字母或者阿拉伯數字占一個字節

一個漢字占2個字節

5.對象是類的一個實例,有狀態和行為,例如狗是對象,狀態:顏色.名字,物種,行為有:叫,吃

軟件對象的狀態就是屬性,行為通過方法體現,方法操作對象內部狀態的改變,對象的相互調用也是通過方法來實現的

6. 一個類包含三種變量

  • 局部變量:在方法、構造方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束後,變量就會自動銷毀。
  • 成員變量:成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化。成員變量可以被類中方法、構造方法和特定類的語句塊訪問。
  • 類變量:類變量也聲明在類中,方法體之外,但必須聲明為static類型。

一個類可以擁有多個方法,barking()、hungry()和sleeping()都是Dog類的方法

7.構造方法,每個類都有構造方法,若沒有,Java會提供默認的,創建一個對象,至少調用一個構造方法,一個類可以有多個構造方法

public class Puppy{ public Puppy(){ } public Puppy(String name){ // 這個構造器僅有一個參數:name } } 8.創建對象,對象是根據類創建的,使用關鍵字new創建一個新的對象,需要三部,聲明,包括對象名稱對象類型,實例化,使用關鍵字new來創建一個對象 初始化,使用new關鍵字創建時,會調用構造方法初始化對象 9.訪問實例變量和方法 /* 實例化對象 */ ObjectReference = new Constructor(); /* 訪問類中的變量 */ ObjectReference.variableName; /* 訪問類中的方法 */ ObjectReference.MethodName(); 技術分享圖片

10.Java包.包主要用來對類和接口進行分類

11.

為什麽JAVA文件中只能含有一個Public類?

java 程序是從一個 public 類的 main 函數開始執行的,(其實是main線程),就像 C 程序 是從 main() 函數開始執行一樣。 只能有一個
public 類是為了給類裝載器提供方便。 一個 public 類只能定義在以它的類名為文件名的文件中。

每個編譯單元(文件)都只有一個 public 類。因為每個編譯單元都只能有一個公共接口,用 public 類來表現。該接口可以按照要求包含眾多的支持包訪問權限的類。如果有一個以上的 public 類,編譯器就會報錯。 並且 public類的名稱必須與文件名相同(嚴格區分大小寫)。 當然一個編譯單元內也可以沒有 public 類。

12.

成員變量和類變量的區別

由static修飾的變量稱為靜態變量,其實質上就是一個全局變量。如果某個內容是被所有對象所共享,那麽該內容就應該用靜態修飾;沒有被靜態修飾的內容,其實是屬於對象的特殊描述。

不同的對象的實例變量將被分配不同的內存空間, 如果類中的成員變量有類變量,那麽所有對象的這個類變量都分配給相同的一處內存,改變其中一個對象的這個類變量會影響其他對象的這個類變量,也就是說對象共享類變量。

成員變量和類變量的區別:

1、兩個變量的生命周期不同

成員變量隨著對象的創建而存在,隨著對象的回收而釋放。

靜態變量隨著類的加載而存在,隨著類的消失而消失。

2、調用方式不同

成員變量只能被對象調用。

靜態變量可以被對象調用,還可以被類名調用。

3、別名不同

成員變量也稱為實例變量。

靜態變量也稱為類變量。

4、數據存儲位置不同

成員變量存儲在堆內存的對象中,所以也叫對象的特有數據。

靜態變量數據存儲在方法區(共享數據區)的靜態區,所以也叫對象的共享數據。

static 關鍵字,是一個修飾符,用於修飾成員(成員變量和成員函數)。

特點:

1、想要實現對象中的共性數據的對象共享。可以將這個數據進行靜態修飾。

2、被靜態修飾的成員,可以直接被類名所調用。也就是說,靜態的成員多了一種調用方式。類名.靜態方式。

3、靜態隨著類的加載而加載。而且優先於對象存在。

弊端:

1、有些數據是對象特有的數據,是不可以被靜態修飾的。因為那樣的話,特有數據會變成對象的共享數據。這樣對事物的描述就出了問題。所以,在定義靜態時,必須要明確,這個數據是否是被對象所共享的。

2、靜態方法只能訪問靜態成員,不可以訪問非靜態成員。

因為靜態方法加載時,優先於對象存在,所以沒有辦法訪問對象中的成員。

3、靜態方法中不能使用this,super關鍵字。

因為this代表對象,而靜態在時,有可能沒有對象,所以this無法使用。

什麽時候定義靜態成員呢?或者說:定義成員時,到底需不需要被靜態修飾呢?

成員分兩種:

1、成員變量。(數據共享時靜態化)

該成員變量的數據是否是所有對象都一樣:

如果是,那麽該變量需要被靜態修飾,因為是共享的數據。

如果不是,那麽就說這是對象的特有數據,要存儲到對象中。

2、成員函數。(方法中沒有調用特有數據時就定義成靜態)

如果判斷成員函數是否需要被靜態修飾呢?

只要參考,該函數內是否訪問了對象中的特有數據:

如果有訪問特有數據,那方法不能被靜態修飾。

如果沒有訪問過特有數據,那麽這個方法需要被靜態修飾。

成員變量和靜態變量的區別:

1、成員變量所屬於對象。所以也稱為實例變量。

靜態變量所屬於類。所以也稱為類變量。

2、成員變量存在於堆內存中。

靜態變量存在於方法區中。

3、成員變量隨著對象創建而存在。隨著對象被回收而消失。

靜態變量隨著類的加載而存在。隨著類的消失而消失。

4、成員變量只能被對象所調用 。

靜態變量可以被對象調用,也可以被類名調用。

所以,成員變量可以稱為對象的特有數據,靜態變量稱為對象的共享數據。

13.Java基本數據類型,

變量就是申請內存來儲存值,當變量創建的時候,需要在內存中申請空間,內存管理系統根據變量的類型分配變量儲存空間,分配的空間只能儲存該類型數據

兩大數據類型,內置數據類型,引用數據類型

byte:

  • byte 數據類型是8位、有符號的,以二進制補碼表示的整數;
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);
  • 默認值是 0;
  • byte 類型用在大型數組中節約空間,主要代替整數,因為 byte 變量占用的空間只有 int 類型的四分之一;
  • 例子:byte a = 100,byte b = -50。

short:

  • short 數據類型是 16 位、有符號的以二進制補碼表示的整數
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • Short 數據類型也可以像 byte 那樣節省空間。一個short變量是int型變量所占空間的二分之一;
  • 默認值是 0;
  • 例子:short s = 1000,short r = -20000。

int:

  • int 數據類型是32位、有符號的以二進制補碼表示的整數;
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 - 1);
  • 一般地整型變量默認為 int 類型;
  • 默認值是 0 ;
  • 例子:int a = 100000, int b = -200000。

long:

  • long 數據類型是 64 位、有符號的以二進制補碼表示的整數;
  • 最小值是 -9,223,372,036,854,775,808(-2^63);
  • 最大值是 9,223,372,036,854,775,807(2^63 -1);
  • 這種類型主要使用在需要比較大整數的系統上;
  • 默認值是 0L;
  • 例子: long a = 100000L,Long b = -200000L。
    "L"理論上不分大小寫,但是若寫成"l"容易與數字"1"混淆,不容易分辯。所以最好大寫。

float:

  • float 數據類型是單精度、32位、符合IEEE 754標準的浮點數;
  • float 在儲存大型浮點數組的時候可節省內存空間;
  • 默認值是 0.0f;
  • 浮點數不能用來表示精確的值,如貨幣;
  • 例子:float f1 = 234.5f。

double:

  • double 數據類型是雙精度、64 位、符合IEEE 754標準的浮點數;
  • 浮點數的默認類型為double類型;
  • double類型同樣不能表示精確的值,如貨幣;
  • 默認值是 0.0d;
  • 例子:double d1 = 123.4。

boolean:

  • boolean數據類型表示一位的信息;
  • 只有兩個取值:true 和 false;
  • 這種類型只作為一種標誌來記錄 true/false 情況;
  • 默認值是 false;
  • 例子:boolean one = true。

char:

    • char類型是一個單一的 16 位 Unicode 字符;
    • 最小值是 \u0000(即為0);
    • 最大值是 \uffff(即為65,535);
    • char 數據類型可以儲存任何字符;
    • 例子:char letter = ‘A‘;。
    • JAVA中還存在另外一種基本類型void,它也有對應的包裝類 java.lang.Void,不過我們無法直接對它們進行操作

      引用類型

      • 在Java中,引用類型的變量非常類似於C/C++的指針。引用類型指向一個對象,指向對象的變量是引用變量。這些變量在聲明時被指定為一個特定的類型,比如 Employee、Puppy 等。變量一旦聲明後,類型就不能被改變了。
      • 對象、數組都是引用數據類型。
      • 所有引用類型的默認值都是null。
      • 一個引用變量可以用來引用任何與之兼容的類型。
      • 例子:Site site = new Site("Runoob")

基礎總結筆記1