試題目錄
3.兩個對象的 hashCode() 相同,則 equals() 也一定爲 true 嗎?
5.Java 的 Math.round(-1.5) 等於多少?
8.String str = " i " 與 String str = new String(" i ") 一樣嗎?
1.JDK和JRE有什麼區別?
JDK:Java開發工具包,提供了Java的開發環境和運行環境。
JRE:Java運行環境,爲Java的運行提供所需的環境。
2. == 和 equals 的區別是什麼?
== 解析:
對於基本類型:比較的是值是否相同。
對於引用類型:比較的是引用(地址)是否相同
equals 解析:
本質上是 == 只不過String和Integer等重寫了equals方法,把他變成了值比較。
總結:
一般情況下,equals方法一般比較的是值,所以一般都是要重寫的!
3.兩個對象的 hashCode() 相同,則 equals() 也一定爲 true 嗎?
答案:不對,不一定!!!
因爲在散列表中,hashCode() 相等即相當於兩個鍵值對的哈希值相同,然而哈希值相同不代表鍵值對相等。
4.final 在Java中的作用是什麼?
(1)final修飾的類叫做最終類,不能被繼承
(2)final修飾的方法不能被重寫
(3)final修飾的變量叫做常量,常量必須初始化,初始化之後不能被修改
5.Java 的 Math.round(-1.5) 等於多少?
等於-1
因爲在數軸上取值時,中間值(0.5)向右取整,所以正0.5是往上取整,負0.5是直接捨棄
6.String屬於基本的數據類型嗎?
不屬於!
基本數據類型有:byte short int long float double boolean char
7.Java中操作字符串的有哪一些?他們之間有什麼區別?
操作字符串的類有:String StringBuffer StringBuilder
(1)String:final修飾的、不可變的對象。每次操作都會生成新的String對象,頻繁使用會耗費內存。
(2)StringBuffer:線程安全的。多線程環境下推薦使用。
(3)StringBuilder:非線程安全的。單線程環境下推薦使用。
注意:需要頻繁操作字符串不建議使用String。
8.String str = " i " 與 String str = new String(" i ") 一樣嗎?
不一樣!
String str = " i " Java虛擬機會將其分配到常量池中
String str = new String(" i ") Java虛擬機會將其分配到堆內存中
9.如何將字符串反轉?
使用 StringBuffer 或者 StringBuilder 的 reverse() 方法!!!
10.String類的常用方法有哪些?
indexOf():返回指定字符串的索引
charAt():返回指定索引處的字符
replace():字符串替換
trim():去除字符串兩端空白
split():分割字符串,返回一個分割後的字符串數組
getBytes():返回字符串的byte類型的數組
length():返回字符串長度
toLowerCase():將字符串轉換爲小寫字母
toUpperCase():將字符串轉換爲大寫字母
substring():截取字符串
equals():字符串比較
11.抽象類必須要有抽象方法嗎?
不一定!!!
注意:含抽象方法的類一定是抽象類(或接口)
示例代碼:
abstract class A{ public static void a(){ System.out.println("a"); } }
以上代碼可以正常運行
12.普通類和抽象類的區別?
(1)普通類不能包含抽象方法,抽象類可以包含抽象方法
(2)抽象類不能實例化,普通類可以實例化
13.抽象類能使用final修飾嗎?
不能,定義抽象類就是給其他類繼承的,如果定義爲final,該類就無法被繼承,產生矛盾。
14.接口和抽象類的區別?
(1)實現:抽象類的子類使用extends;接口使用implements來實現
(2)構造方法:抽象類可以有構造方法;接口不能有
(3)main方法:抽象類中可以有,也能運行;接口不能有
(4)實現數量:類單一繼承;接口多繼承
(5)訪問修飾符:抽象類中的方法是任意訪問修飾符;接口方法默認爲public修飾
15.Java中的IO流分爲那幾種?
按流的方向:輸入流、輸出流
按流的類型:字節流、字符流
注意:類名以“Stream”結尾的是字節流;類名以“Reader/Writer”結尾的是字符流。
字節流跟字符流的區別:字節流以八位傳輸爲單位輸入輸出數據。字符流以十六位傳輸爲單位輸入輸出數據。
16.BIO NIO AIO 有什麼區別?
同步阻塞BIO:即傳統的IO,模式簡單使用方便,併發處理能力低。
同步非阻塞NIO:即BIO升級,客戶端和服務端通過Channel(通道)通訊,實現多路複用。
異步非阻塞AIO:即NIO升級,也叫NIO2,異步IO的操作基於事件和回調機制。
17.Files的常用方法?
Files.exists():判斷文件是否存在
Files.createFile():創建文件
Files.createDirectory():創建文件夾
Files.delete():刪除一個文件或目錄
Files.copy():複製文件
Files.move():移動文件
Files.size():查看你文件個數
Files.read():讀取文件
Files.write():寫入文件