日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

面试 -- Java基础(一)

發布時間:2025/3/21 java 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试 -- Java基础(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.面向對象的特征。

答:面向對象的特征有抽象、繼承、封裝、多態

  • 抽象: 將一類對象的公共特征總結出來構造類的過程,包括數據抽象和行為抽象。抽象只關注對象有哪些行為和屬性,不關注這些行為的細節是什么。
  • 繼承: 從已有類中得到繼承信息并創建新類的過程。提供繼承信息的類是父類,得到繼承信息的類是子類。繼承使得軟件系統有了一定的延續性。
  • 封裝: 把數據和操作數據的行為綁定在一起,對數據的訪問只提供一個自定義的接口。類、方法都是對數據的封裝。封裝要隱藏一切能隱藏的細節,只向外界提供一個簡單的接口。
  • 多態: 允許不同子類型的對象對同一消息作出不同的響應。簡單說就是用同樣的對象引用調用同樣的方法做了不同的事情。多態分為編譯時的多態和運行時的多態。重載是編譯時的多態,重寫是運行時的多態。

2.重載和重寫的區別。

答:overload為重載,override為重寫。重載是編譯時的多態,重寫是運行時的多態,重載發生在同一個類之間,表示在一個類中定義了相同名字、但是參數列表(參數個數或者參數類型)不同的方法而表現出不同的行為,重載可以改變返回值的類型;重寫發生在父子類之間,表示子類通過改寫與父類相同名字的方法來表現出不同的行為,子類重寫的方法拋出的異常必須比父類的小,訪問權限必須不比父類的小,參數列表必須相同。

?

3.JDK、JRE和JVM的區別。

答:程序員利用JDK開發了Java程序后,通過JDK中編譯工具將Java程序編譯成字節碼,然后在JRE上運行這些字節碼,JVM解析字節碼并映射給CPU指令或者系統調用。

JDK: Java開發工具包,是整個Java的核心,包括JRE和編譯器、調試器等Java工具。

JRE: Java運行時環境,也就是常說的Java平臺,所有Java程序都要在JRE上才能運行,包括了JVM和Java核心類庫、支持文件,與JDK相比,不包括編譯器等開發工具。

JVM: Java虛擬機,是JRE的一部分,是虛構出來的計算機,通過在計算機上仿真模擬各種計算機功能來實現的。主要工作是解釋字節碼并映射到本地的CPU指令集或者系統的調用中。不同的操作系統,使用不同的JVM映射規則,使得Java代碼與操作系統無關,實現跨平臺性。

4.Java的基本數據類型及其包裝類。

答:Java的基本數據類型有:char、short、byte、int、float、long、double、boolean;

對應的包裝類:Character、Short、Byte、Integer、Float、Long、Double、Boolean;

由基本數據類型轉換成對應的包裝類的過程稱為裝箱;

由包裝類轉換成對應的基本數據類型的過程稱為拆箱;

?

5.String、StringBuilder和StringBuffer的區別。

答:String、StringBuilder和StringBuffer均可以用來存儲和操作字符串,但是,String是final類,是只讀字符串,也就是String引用的字符串不能被修改;而StringBuilder和StringBuffer引用的字符串都已被修改,StringBuilder和StringBuffer的區別是StringBuffer是線程安全的,方法被synchronized修飾,可以用在多線程環境中,效率比StringBuilder低。當引用的字符串在字符串常量池中已經存在時,使用"+"連接的字符串比使用StringBuilder和StringBuffer的append()方法快。

?

6.抽象類和接口的區別。

答:

(1)抽象類中有構造方法,而接口中沒有;

(2)抽象類只能單繼承,接口可以多繼承;

(3)抽象類可以有普通方法,接口中所有方法都是抽象方法;

(4)接口中的屬性都是public static fianl的,而抽象類中不是。

?

7.static關鍵字有什么作用。

答:static可以修飾內部類、方法、變量、代碼塊。

static修飾的類是靜態內部類;

static修飾的方法是靜態方法,表示該方法屬于類的方法,不屬于任何一個對象。靜態方法不能被重寫,可以直接使用類名來調用,并且不能使用this或者super來調用。

static修飾變量叫靜態變量或全局變量,靜態變量被所有實例對象共享,不被任何一個對象所獨有。靜態變量在內存中只有一份拷貝,在類加載的時候,只為其分配一次內存。

static修飾的代碼塊叫靜態代碼塊,用于程序優化。靜態代碼塊在整個類中只會加載一次,靜態代碼塊可以有多個,有多個時,按出現的先后順序執行。

?

8.final關鍵字的作用。

答:final關鍵字可以修飾類、方法或者變量。

修飾類時,表示該類不能被繼承;

修飾方法時,表示該方法不能被重寫;

修飾變量時,表示該變量一次賦值后不能被修改;

?

9.為什么重寫equals方法的同時也要重寫hashcode方法?

答:我們知道,hashcode方法是調用native方法根據對象在內存中的實際地址值來計算出的一個哈希碼值,所以要判斷一個對象是否相等,要么值和地址都相等,要么全部都不相等,所以說要重寫的時候應該都重寫,否則可能導致相同對象的值或者地址的哈希碼值不相等,這樣會對使用散列表的數據結構的數據類型產生影響,如hashmap、hashtable、hashset等。

如HashMap,如果hashCode和equals不同時相等,

當兩個對象的key相同,hashCode相等時,能找到具體下標,但兩個對象equals方法不相等,,即值不相等,所以取不出對象;

當兩個對象的key相同,hashCode不相等時,能找到具體不同的下標,這時equals相等也沒用了,因為下標沒找對。

?

--------最近沒空,有空再繼續寫了-----------

總結

以上是生活随笔為你收集整理的面试 -- Java基础(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。