??????
辛苦牛,掌握主流技術棧,包括前端后端,已經7年時間,曾在稅務機關從事開發(fā)工作,目前在國企任職。希望通過自己的不斷分享,可以幫助各位想或者已經走在這條路上的朋友一定的幫助
前言
??金九銀十馬上就要來啦,各位小伙伴們有計劃跳槽的要開始準備了,博主接下來一段時間會給大家持續(xù)更新面試題目,大家持續(xù)關注一下,感謝??????
今天是專欄的最后一篇文章,關于java語言特性的相關面試題,歡迎指正
之前的面試文章鏈接也給到大家
金九銀十面試題之Mysql
金九銀十面試題之設計模式
金九銀十面試題之數(shù)據(jù)結構和算法
金九銀十面試題之Mybatis
金九銀十面試題之《Spring Data JPA、Spring MVC、AOP》
金九銀十面試題之《Spring IOC》
金九銀十面試題之JUC
金九銀十面試題之《并發(fā)》
金九銀十面試題之《JVM》
金九銀十面試題之《IO、集合》
金九銀十面試題之《面向對象》
?? Q1:Java 語言的優(yōu)點?
- 平臺無關性,擺脫硬件束縛,“一次編寫,到處運行”。
- 相對安全的內存管理和訪問機制,避免大部分內存泄漏和指針越界。
- 熱點代碼檢測和運行時編譯及優(yōu)化,使程序隨運行時間增?獲得更高性能。 4 完善的應用程序接口,支持第三方類庫。
?? Q2:Java 如何實現(xiàn)平臺無關?
JVM: Java 編譯器可生成與計算機體系結構無關的字節(jié)碼指令,字節(jié)碼文件不僅可以輕易地在任何機器 上解釋執(zhí)行,還可以動態(tài)地轉換成本地機器代碼,轉換是由 JVM 實現(xiàn)的,JVM 是平臺相關的,屏蔽了不 同操作系統(tǒng)的差異。
語言規(guī)范: 基本數(shù)據(jù)類型大小有明確規(guī)定,例如 int 永遠為 32 位,而 C/C++ 中可能是 16 位、32 位, 也可能是編譯器開發(fā)商指定的其他大小。Java 中數(shù)值類型有固定字節(jié)數(shù),二進制數(shù)據(jù)以固定格式存儲和 傳輸,字符串采用標準的 Unicode 格式存儲。
?? Q3:JDK 和 JRE 的區(qū)別?
JDK: Java Development Kit,開發(fā)工具包。提供了編譯運行 Java 程序的各種工具,包括編譯器、JRE
及常用類庫,是 JAVA 核心。
JRE: Java Runtime Environment,運行時環(huán)境,運行 Java 程序的必要環(huán)境,包括 JVM、核心類庫、
核心配置工具。
?? Q4:Java 按值調用還是引用調用?
按值調用指方法接收調用者提供的值,按引用調用指方法接收調用者提供的變量地址。
Java 總是按值調用,方法得到的是所有參數(shù)值的副本,傳遞對象時實際上方法接收的是對象引用的副 本。方法不能修改基本數(shù)據(jù)類型的參數(shù),如果傳遞了一個 int 值 ,改變值不會影響實參,因為改變的是 值的一個副本。
可以改變對象參數(shù)的狀態(tài),但不能讓對象參數(shù)引用一個新的對象。如果傳遞了一個 int 數(shù)組,改變數(shù)組 的內容會影響實參,而改變這個參數(shù)的引用并不會讓實參引用新的數(shù)組對象。
?? Q5:淺拷?和深拷?的區(qū)別?
淺拷?: 只復制當前對象的基本數(shù)據(jù)類型及引用變量,沒有復制引用變量指向的實際對象。修改克隆對象可能影響原對象,不安全。
深拷?: 完全拷?基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,安全。
?? Q6:什么是反射?
在運行狀態(tài)中,對于任意一個類都能知道它的所有屬性和方法,對于任意一個對象都能調用它的任意方 法和屬性,這種動態(tài)獲取信息及調用對象方法的功能稱為反射。缺點是破壞了封裝性以及泛型約束。反 射是框架的核心,Spring 大量使用反射。
?? Q7:Class 類的作用?如何獲取一個 Class 對象?
在程序運行期間,Java 運行時系統(tǒng)為所有對象維護一個運行時類型標識,這個信息會跟蹤每個對象所屬 的類,虛擬機利用運行時類型信息選擇要執(zhí)行的正確方法,保存這些信息的類就是 Class,這是一個泛 型類。
獲取 Class 對象:
- 類名.class 。
- 對象的 getClass方法。
- Class.forName(類的全限定名)。
?? Q8:什么是注解?什么是元注解?
注解是一種標記,使類或接口附加額外信息,幫助編譯器和 JVM 完成一些特定功能,例如 @Override
標識一個方法是重寫方法。
元注解是自定義注解的注解,例如:
@Target:約束作用位置,值是 ElementType 枚舉常量,包括 METHOD 方法、VARIABLE 變量、TYPE 類/接口、PARAMETER 方法參數(shù)、CONSTRUCTORS 構造方法和 LOACL_VARIABLE 局部變量等。
@Rentention:約束生命周期,值是 RetentionPolicy 枚舉常量,包括 SOURCE 源碼、CLASS 字節(jié)碼和 RUNTIME 運行時。
@Documented:表明這個注解應該被 javadoc 記錄。
?? Q9:什么是泛型,有什么作用?
泛型本質是參數(shù)化類型,解決不確定對象具體類型的問題。泛型在定義處只具備執(zhí)行 Object 方法的能 力。
泛型的好處:
- 類型安全,放置什么出來就是什么,不存在 ClassCastException。
- 提升可讀性,編 碼階段就顯式知道泛型集合、泛型方法等處理的對象類型。
- 代碼重用,合并了同類型的處理代碼。
?? Q10:泛型擦除是什么?
泛型用于編譯階段,編譯后的字節(jié)碼文件不包含泛型類型信息,因為虛擬機沒有泛型類型對象,所有對象都屬于普通類。例如定義 List 或 List ,在編譯后都會變成 List。定義一個泛型類型,會自動提供一個對應原始類型,類型變量會被擦除。如果沒有限定類型就會替換為 Object,如果有限定類型就會替換為第一個限定類型,例如 <T extends A & B> 會使用 A 類型替換 T。
?? Q11:JDK8 新特性有哪些?
lambda 表達式:允許把函數(shù)作為參數(shù)傳遞到方法,簡化匿名內部類代碼。
函數(shù)式接口:使用 @FunctionalInterface 標識,有且僅有一個抽象方法,可被隱式轉換為 lambda 表 達式。
方法引用:可以引用已有類或對象的方法和構造方法,進一步簡化 lambda 表達式。 接口:接口可以定義 default 修飾的默認方法,降低了接口升級的復雜性,還可以定義靜態(tài)方法。
注解:引入重復注解機制,相同注解在同地方可以聲明多次。注解作用范圍也進行了擴展,可作用于局 部變量、泛型、方法異常等。
類型推測:加強了類型推測機制,使代碼更加簡潔。 Optional 類:處理空指針異常,提高代碼可讀性。
Stream 類:引入函數(shù)式編程?格,提供了很多功能,使代碼更加簡潔。方法包括 forEach 遍歷、count 統(tǒng)計個數(shù)、filter 按條件過濾、limit 取前 n 個元素、skip 跳過前 n 個元素、map 映射加工、concat 合 并 stream 流等。
日期:增強了日期和時間 API,新的 java.time 包主要包含了處理日期、時間、日期/時間、時區(qū)、時刻 和時鐘等操作。
JavaScript:提供了一個新的 JavaScript 引擎,允許在 JVM上運行特定 JavaScript 應用。
?? Q12:異常有哪些分類?
所有異常都是 Throwable 的子類,分為 Error 和 Exception。Error 是 Java 運行時系統(tǒng)的內部錯誤和資 源耗盡錯誤,例如 StackOverFlowError 和 OutOfMemoryError,這種異常程序無法處理。
Exception 分為受檢異常和非受檢異常,受檢異常需要在代碼中顯式處理,否則會編譯出錯,非受檢異常 是運行時異常,繼承自 RuntimeException。
受檢異常:
- 無能為力型,如字段超?導致的 SQLException。
- 力所能及型,如未授權異常 UnAuthorizedException,程序可跳轉權限申請?面。常?受檢異常還有 FileNotFoundException、ClassNotFoundException、IOException等。
非受檢異常:文章來源:http://www.zghlxwxcb.cn/news/detail-677919.html
- 可預測異常,例如 IndexOutOfBoundsException、NullPointerException、ClassCastException 等,這類異常應該提前處理。
- 需捕捉異常,例如進行 RPC 調用時的遠程服務超時,這類異??蛻舳吮仨氾@式處理。
- 可透出異常,指框架或系統(tǒng)產生的且會自行處理的異常,例如 Spring 的 NoSuchRequestHandingMethodException,Spring 會自動完成異常處理,將異常自動映射到合適的 狀態(tài)碼。
寫在最后
希望博主收集的內容能幫到大家,祝大家能找到一個好的工作,過好的生活,如有錯誤歡迎指正。 ??????文章來源地址http://www.zghlxwxcb.cn/news/detail-677919.html
到了這里,關于金九銀十面試題之《語言特性》的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!