搜尋
首頁JavaJava面試題Java常見的基礎面試題

Java常見的基礎面試題

Dec 14, 2019 pm 03:06 PM
java

Java常見的基礎面試題

JDK 和 JRE 有什麼不同?

JDK:Java Development Kit 的簡稱,java 開發工具包,提供了 java 的開發環境和運作環境。

JRE:Java Runtime Environment 的簡稱,java 運行環境,為 java 的運作提供了所需環境。 (推薦學習:java常見面試題

具體來說JDK 其實包含了JRE,同時也包含了編譯java 原始碼的編譯器javac,也包含了許多java 程式偵錯和分析的工具。簡單來說:如果你需要執行 java 程序,只要安裝 JRE 就可以了,如果你需要寫 java 程序,需要安裝 JDK。

== 和 equals 的差別是什麼?

對於基本型別和參考型別== 的作用效果是不同的,如下所示:

基本型別:比較的是值是否相同;

#引用類型:比較的是引用是否相同;

quals 本質上就是==,只不過String 和Integer 等重寫了equals 方法,把它變成了值比較。 == 對於基本類型來說是值比較,對於引用類型來說是比較的是引用;而equals 預設是引用比較,只是很多類別重寫了equals 方法,例如String、Integer等把它變成了值比較,所以一般情況下equals 比較的是值是否相等。

兩個物件的 hashCode()相同,則 equals()也一定為 true,對嗎?

不對,兩個物件的 hashCode()相同,equals()不一定 true。

String str1 = "通话";
String str2 = "重地";
System.out.println(String.format("str1:%d | str2:%d",  str1.hashCode(),str2.hashCode()));
System.out.println(str1.equals(str2));

執行的結果:

str1:1179395 | str2:1179395
false

程式碼解讀:很明顯「通話」和「重地」的hashCode() 相同,然而equals() 則為false,因為在散列表中,hashCode()相等即兩個鍵值對的雜湊值相等,然而雜湊值相等,並不一定能得出鍵值對相等。

final 在 java 中有什麼作用?

final 修飾的類別叫做最終類,該類別不能被繼承。

final 修飾的方法不能被重寫。 final 修飾的變數叫做常數,常數必須初始化,初始化之後值就不能被修改。

java 中的 Math.round(-1.5) 等於多少?

等於 -1。

String 屬於基礎的資料型別嗎?

String 不屬於基礎類型,基礎型別有 8 種:byte、boolean、char、short、int、float、long、double,而 String 屬於物件。

java 中操作字串有哪些類別?它們之間有什麼區別?

操作字串的類別有:String、StringBuffer、StringBuilder。

String 和StringBuffer、StringBuilder 的區別在於String 聲明的是不可變的對象,每次操作都會生成新的String 對象,然後將指針指向新的String 對象,而StringBuffer、StringBuilder 可以在原有對象的基礎上進行操作,所以在經常改變字串內容的情況下最好不要使用String。 StringBuffer 和StringBuilder 最大的區別在於,StringBuffer 是線程安全的,而StringBuilder 是非線程安全的,但StringBuilder 的效能卻高於StringBuffer,所以在單執行緒環境下推薦使用StringBuilder,多執行緒環境下推薦使用StringBuffer。

String str="i"與 String str=new String(“i”)一樣嗎?

不一樣,因為記憶體的分配方式不一樣。 String str="i"的方式,java 虛擬機會將其分配到常數池中;而 String str=new String(“i”) 則會被分到堆記憶體中。

如何將字串反轉?

使用 StringBuilder 或 stringBuffer 的 reverse() 方法。

範例程式碼:

// StringBuffer reverse
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("abcdefg");
System.out.println(stringBuffer.reverse()); // gfedcba
// StringBuilder reverse
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("abcdefg");
System.out.println(stringBuilder.reverse()); // gfedcba

String 類別的常用方法都有那些?

indexOf():返回指定字符的索引。
charAt():返回指定索引处的字符。
replace():字符串替换。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
getBytes():返回字符串的 byte 类型数组。
length():返回字符串长度。
toLowerCase():将字符串转成小写字母。
toUpperCase():将字符串转成大写字符。
substring():截取字符串。
equals():字符串比较。

抽象類別必須要有抽象方法嗎?


不需要,抽象類別不一定要有抽象方法。

範例程式碼:

abstract class Cat {
    public static void sayHi() {
        System.out.println("hi~");
    }
}
上面程式碼,抽象類別並沒有抽象方法但完全可以正常運作。

普通類別和抽象類別有哪些不同?

普通類別不能包含抽象方法,抽象類別可以包含抽象方法。 Java常見的基礎面試題

抽象類別不能直接實例化,普通類別可以直接實例化。

抽象類別能使用 final 修飾嗎?

不能,定義抽象類別就是讓其他類別繼承的,如果定義為final 該類別就不能被繼承,這樣彼此就會產生矛盾,所以final 不能修飾抽象類別,如下圖所示,編輯器也會提示錯誤訊息:##################介面和抽象類別有什麼不同? #########實作:抽象類別的子類別使用 extends 來繼承;介面必須使用 implements 來實作介面。 ###

构造函数:抽象类可以有构造函数;接口不能有。

main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。

实现数量:类可以实现很多个接口;但是只能继承一个抽象类。

访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。

java 中 IO 流分为几种?

按功能来分:输入流(input)、输出流(output)。

按类型来分:字节流和字符流。

字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

BIO、NIO、AIO 有什么区别?

BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。

NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。

AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

Files的常用方法都有哪些?

Files.exists():检测文件路径是否存在。
Files.createFile():创建文件。
Files.createDirectory():创建文件夹。
Files.delete():删除一个文件或目录。
Files.copy():复制文件。
Files.move():移动文件。
Files.size():查看文件个数。
Files.read():读取文件。
Files.write():写入文件。

以上是Java常見的基礎面試題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器