Java中的一些常遇到的技術區別

2021-05-26 07:09:17 字數 2703 閱讀 9020

no.

區別點

過載

覆寫1定義

方法名稱相同,引數的型別或個數不同

方法名稱、引數的型別或個數、返回值相同 2

許可權 沒有許可權要求

被覆寫的方法不能擁有比父類更嚴格的許可權 3

範圍 發生在乙個類之中

發生在繼承關係中 4

單詞 overloading

override

no.

區別點

this

super

1

使用 呼叫本類中的屬性或方法

從子類呼叫父類中的屬性或方法 2

構造 可以呼叫本類構造,且有乙個構造要作為出口

從子類呼叫父類的構造方法,不管子類如何安排最終一定會去呼叫,預設呼叫的是父類中的無參構造方法 3

要求 呼叫構造的時候一定要放在構造方法首行

放在子類構造方法首行 使用

super

和this

呼叫構造方法的語句是不可能同時出現的 4

特殊 表示當前物件

無此概念

介面和抽象類從使用上看非常的相似,那麼下面通過以下的**對兩者進行區分:

no.

比較

抽象類

介面

1關鍵字 使用

abstract class宣告

使用inte***ce宣告

2定義包含乙個抽象方法的類

抽象方法和全域性常量的集合 3

組成 屬性、方法、構造、常量、抽象方法

全域性常量、抽象方法 4

許可權 抽象方法的許可權可以任意

只能是public許可權

5使用 通過

extends

關鍵字繼承抽象類 通過

implements

關鍵字實現介面 6

侷限 抽象類存在單繼承侷限

沒有此侷限,乙個子類可以實現多個介面 7

順序 乙個子類只能先繼承抽象類再實現多個介面 8

設計模式

模板設計

工廠設計、**設計

兩者聯合可以完成乙個介面卡設計 9

實際作用

只能做乙個模板使用

作為標準、表示能力 10

使用 兩者沒有什麼本質的區別,但是從實際上來看,如果乙個程式中抽象類和介面都可以使用的話,則一定要優先考慮介面,因為介面可以避免單繼承所帶來的侷限。 11

例項化

都是依靠物件多型性,通過子類進行物件例項化的

從**的最終的操作形式上可以發現,**的輸出結果與之前是一樣的,而且沒有區別,但是兩者的區別還在於其內部的組成上。

no.

區別點

arraylist

vector

1

推出時間

jdk 1.2之後

jdk 1.0

的時候推出 2

執行緒處理

arraylist

採用非同步處理

採用同步處理 3

效能 速度較快

速度相對較慢 4

安全性

非執行緒安全性的操作

屬於執行緒安全的操作 5

輸出 由於都是

list

介面的子類,所以都可以依靠

size()

和get()

兩個方法完成迴圈輸出

for、iterator

、listiterator

for、

iterator

、listiterator

、enumeration

hashmap

和hastable

在使用上相似,那麼兩者的區別如下:

no.

區別點

hashmap

hashtable

1

推出時間

jdk 1.2之後

jdk 1.0

的時候推出 2

執行緒處理

採用非同步處理

採用同步處理 3

效能 速度較快

速度相對較慢 4

安全性

非執行緒安全性的操作

屬於執行緒安全的操作 5

儲存null

允許key

設定成null

不允許設定,否則出現

nullpointerexception

JAVA開發中遇到的一些單詞

current 現在 scope 範圍 process 處理 generate 生成 operator 操作人 dept 部門 variable 變數 initializer 初始化 redundant 多餘 duplicate 複製品 unversioned 非版本的 untracked 未跟蹤的...

記錄自己面試遇到的一些常忘的

1.宣告陣列的三種方式,以int和string舉例 第一種 int a new int 5 a 0 10 string a new string length 再賦值 a 0 第二種 int c new int string a new string 第三種 int i string a 總之,具體...

svn branch merge中遇到的一些問題

拉分支的時候,選擇svn branch 在彈出的框中需要選擇目標位址,不過這個有乙個問題就是,這個目標位址不能是已經建立好的,必須至少要有一級目錄還是未建立的,比如想要拉分支到目錄branch 那你最多只能在本地建立乙個branch目錄,這個 是必須要手動輸入到 from branch 否則就會報 ...