(二)面向對象和麪向過程、基本數據類型、方法重寫和重載、封裝、繼承、多態、泛型、自動裝箱和拆箱

面向對象和麪向過程

  1. 概念

面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了;

面向對象是把構成問題的事物分解成各個對象,建立對象不是爲了完成一個步驟,而是爲了描敘對象所代表的事物在整個解決問題的步驟中的行爲。

  1. 優缺點

面向過程

優點:性能比面向對象高,因爲類調用時需要實例化,開銷比較大,

缺點:沒有面向對象易維護、易複用、易擴展

面向對象

優點:易維護、易複用、易擴展,由於面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統 更加靈活、更加易於維護
缺點:性能比面向過程低

爲了解決效率問題,jvm的優化見上一篇內容

基本數據類型和引用數據類型

  • 基本數據類型

分類

java中一共分爲8種基本數據類型:byte、short、char、boolean、int、long、float、double。以字節爲單位

整數型:byte(1)、 short(2)、int(4)、 long(8)

浮點型:float(4) 、double(8)

字符:char(2)

布爾:boolean(1)

表示範圍(IEEE754)

整型

short:一共16位,第1位是符號位,15位表示位。表示範圍:-2的15次方-1~2的15次方-1

int:一共32位,第1位是符號位,31位表示位。表示範圍:-2的31次方-1~2的31次方-1

long:一共64位,第1位是符號位,63位表示位。表示範圍:-2的63次方-1~2的63次方-1

注意:long的取值範圍沒有float的大,底層計數機制不一樣

浮點型

float:單精度;一共32位,第1位是符號位;接下來8位表示指數,指數偏移量127(128-1);23位表示尾數。

           最大值:2的128 次方-1

double:雙精度;一共64位,第1位是符號位;接下來11位表示指數;指數偏移量1023(1024-1);尾數長度52位。

          最大值:2的1024次方-1

  • 引用類型

引用類型指向一個對象,指向對象的變量是引用變量。

引用類型包括(自定義和JDK提供的類)類、接口、數組,包裝類(系統設計的基本數據類型對應的類)

  • 引用類型與基本數據類型在內存空間的分配

首先介紹一下java內存中有哪些空間:可以粗淺的分爲棧空間,堆空間,和方法區,

  • 棧區

1.每個線程包含一個棧區,棧中只保存基礎數據類型的對象和自定義對象的引用(不是對象),對象都存放在堆區中

2.每個棧中的數據(原始類型和對象引用)都是私有的,其他棧不能訪問。

3.棧分爲3個部分:基本類型變量區對象引用、執行環境上下文、操作指令區(存放操作指令)。

  • 堆區

1.存儲的全部是對象,每個對象都包含一個與之對應的class的信息。(class的目的是得到操作指令)

2.jvm只有一個堆區(heap)被所有線程共享,堆中不存放基本類型和對象引用,只存放對象本身

  • 方法區

1.又叫靜態區,跟堆一樣,被所有的線程共享。方法區包含所有的class和static變量

2.方法區中包含的都是在整個程序中永遠唯一的元素,如class,static變量。

方法重寫和重載

  • 重載

概念:方法名相同,參數列表不同(不同的參數類型或者參數順序或者參數個數)。至於方法的其他部分,如方法返回值類型和修飾符,與方法重載沒有任何關係。最好加上@Overload註解。

目的:方便程序員調用方法。比如,System.out.println()這個函數是用來輸出的,當輸出的是整數時是用這個方法,當輸出一個字符串時還是用這個方法。根據傳入參數的不同,自動找到匹配的方法。

多態

所謂多態就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章