面試題整理----Java基礎

1.JDK 和 JRE 有什麼區別?java

JRE是運行時環境   給須要運行Java程序的人使用數組

JDK是Java開發工具包 包含JRE   給開發人員使用安全

2.== 和 equals 的區別是什麼?多線程

==比較的是內存地址框架

equals比較的是值jvm

3.兩個對象的 hashCode()相同,則 equals()也必定爲 true,對嗎?函數

不對,equals爲true時hashcode必定爲true工具

4.final 在 java 中有什麼做用?開發工具

能夠修飾類  方法   變量測試

修飾類時  類不能夠被繼承  Striing類就是final修飾的類

修飾方法時  方法不能夠被子類重寫  但能夠重載

修飾基本數據類型時  初始話賦值以後值不能被改變   修飾引用類型時初始化以後不能夠指向其餘對象

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

round方法的做用是四捨五入   須要注意的是負5是舍   且是往大了入   -1

6.String 屬於基礎的數據類型嗎?

String不是基本的數據類型,是final修飾的java類,java中的基本類型一共有8個,它們分別爲:字符類型:byte,char基本整型:short,int,long浮點型:float,double 布爾類型:boolean

7.java 中操做字符串都有哪些類?它們之間有什麼區別?

主要是一下三種:String、StringBuffer、StringBuilder
String是不可變的對象,對每次對String類型的改變時都會生成一個新的對象,
StringBuffer和StringBuilder是能夠改變對象的。 對於操做效率:StringBuilder > StringBuffer > String    對於線程安全:StringBuffer 是線程安全,可用於多線程;StringBuilder 是非線程安全,用於單線程不頻繁的字符串操做使用 String。反之,StringBuffer 和 StringBuilder 都優於String
因此,若是在項目中須要拼接字符串最好是採用StringBuffer 而非String

8.String str="i"與 String str=new String(「i」)同樣嗎?

不同 String str="i"是把i的地址賦給str,由於string是final修飾的   因此i是在常量池中

而String str=new String(「i」)是新建立了一個對象 即新開闢了一個內存空間  再把這個地址賦值給str

9.如何將字符串反轉?

使用StringBuiler的reverse()的方法,方便快捷

也能夠遞歸遍歷

10.String 類的經常使用方法都有那些?

length獲取字符串長度;charAt獲取指定位置的字符;toCharArray將字符串變成字符數組;indexOf查找字符串,存在返回位置不存在返回-1;lastIndexOf獲得指定內容最後一次出現的位置;equals返回字符串值是否相等

11.抽象類必需要有抽象方法嗎?

不是必須的,可是有抽象方法的類確定是抽象類,而且抽象方法不能有方法體。

12.普通類和抽象類有哪些區別?

抽象類不能被實例化;抽象類能夠有構造函數,抽象方法不能被聲明爲靜態;抽象方法只需申明,而無需實現,抽象類中能夠容許普通方法有主體;含有抽象方法的類必須申明爲抽象類;抽象的子類必須實現抽象類中全部抽象方法,不然這個子類也是抽象類。

13.抽象類能使用 final 修飾嗎?

不能,抽象類是被用於繼承的,final修飾表明不可修改、不可繼承的。

14.接口和抽象類有什麼區別?

抽象類要被子類繼承,接口要被類實現;接口只能作方法聲明,抽象類中能夠做方法聲明,也能夠作方法實現; 接口裏定義的變量只能是公共的靜態的常量,抽象類中的變量是普通變量。接口是設計的結果,抽象類是重構的結果。

15.java 中 IO 流分爲幾種?

字符流和字節流

 

 

16.conllection和conllections的區別

conllection是Java的集合,conllections至關於一個工具類,服務於Java的Conllection框架

17.Files的經常使用方法都有哪些?

建立:
createNewFile()在指定位置建立一個空文件,成功就返回true,若是已存在就不建立,而後返回false。
mkdir()  在指定位置建立一個單級文件夾。
mkdirs()  在指定位置建立一個多級文件夾。
renameTo(File dest)若是目標文件與源文件是在同一個路徑下,那麼renameTo的做用是重命名, 若是目標文件與源文件不是在同一個路徑下,那麼renameTo的做用就是剪切,並且還不能操做文件夾。 

刪除:
delete()  刪除文件或者一個空文件夾,不能刪除非空文件夾,立刻刪除文件,返回一個布爾值。
deleteOnExit()jvm退出時刪除文件或者文件夾,用於刪除臨時文件,無返回值。
 判斷:
exists()  文件或文件夾是否存在。
isFile()  是不是一個文件,若是不存在,則始終爲false。
isDirectory()  是不是一個目錄,若是不存在,則始終爲false。
isHidden()  是不是一個隱藏的文件或是不是隱藏的目錄。
isAbsolute()  測試此抽象路徑名是否爲絕對路徑名。
 獲取:
getName()  獲取文件或文件夾的名稱,不包含上級路徑。
getAbsolutePath()獲取文件的絕對路徑,與文件是否存在不要緊
length()  獲取文件的大小(字節數),若是文件不存在則返回0L,若是是文件夾也返回0L。
getParent()  返回此抽象路徑名父目錄的路徑名字符串;若是此路徑名沒有指定父目錄,則返回null。
lastModified()獲取最後一次被修改的時間。

文件夾相關:static File[] listRoots()列出全部的根目錄(Window中就是全部系統的盤符)list()  返回目錄下的文件或者目錄名,包含隱藏文件。對於文件這樣操做會返回null。listFiles()  返回目錄下的文件或者目錄對象(File類實例),包含隱藏文件。對於文件這樣操做會返回null。list(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄。對於文件這樣操做會返回null。listFiles(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄。對於文件這樣操做會返回null。

相關文章
相關標籤/搜索