java八股文面試題

Java八股文面試題通常涵蓋了Java語言的基礎知識、高級特性、框架應用、數據庫操作等多個方面。以下是一些常見的Java面試題及其詳細回答,按照不同的主題進行分類:

一、Java基礎

  1. 面向對象的特征有哪些?
    • 抽象:忽略與當前目標無關的細節,只關注與當前目標相關的方面。
    • 繼承:允許新類繼承現有類的屬性和方法,實現代碼的重用。
    • 封裝:將對象的狀態信息隱藏在對象內部,不允許外部直接訪問,而是通過該對象提供的方法來實現對內部狀態的訪問和操作。
    • 多態性:允許不同類的對象對同一消息作出響應,即同一消息可以根據發送對象的不同而采用多種不同的行為方式。
  2. 重載(Overload)與重寫(Override)的區別?
    • 重載:發生在同一個類中,方法名相同但參數列表不同(參數類型、個數、順序至少有一個不同),返回類型可以不同,但不能通過返回類型來區分重載。
    • 重寫:發生在有繼承關系的子類與父類之間,方法名、參數列表必須完全相同,返回類型可以相同或更小的范圍(協變返回類型),訪問權限不能比父類中被重寫的方法的訪問權限更低。
  3. 接口(Interface)與抽象類(Abstract Class)的區別?
    • 接口:一種引用類型,是一種抽象的類型,它是一種特殊的類,它是完全抽象的,沒有具體實現的方法,不能被實例化。接口中的方法默認是public abstract的,接口中定義的變量默認是public static final的。
    • 抽象類:是一種特殊的類,不能被實例化,只能被繼承。抽象類中可以包含抽象方法(沒有具體實現的方法)和具體方法(有具體實現的方法)。
  4. 深拷貝(Deep Copy)與淺拷貝(Shallow Copy)的區別?
    • 淺拷貝:僅僅復制對象本身(包括對象中的基本數據類型變量和對象的引用變量),但不復制對象引用的其他對象。
    • 深拷貝:不僅復制對象本身,還復制對象引用的其他對象,使得新對象和原對象完全獨立。
  5. sleep()和wait()的區別?
    • sleep()是Thread類的方法,導致當前線程暫停執行指定時間,不會釋放鎖。
    • wait()是Object類的方法,用于線程間的通信,導致當前線程等待直到另一個線程調用此對象的notify()方法或notifyAll()方法,會釋放鎖。

二、Java高級

  1. JVM內存結構及其作用?
    • 方法區(Method Area):存儲每個類的結構信息,如運行時常量池、字段和方法數據、構造函數和普通方法的字節碼內容等。
    • 堆(Heap):所有對象實例以及數組都要在堆上分配,是垃圾收集器管理的主要區域。
    • 棧(Stack):每個線程在創建時都會創建一個虛擬機棧,其內部保存一個個棧幀(Stack Frame),對應著一次次方法的調用。
    • 程序計數器(Program Counter Register):是一塊較小的內存空間,可以看作是當前線程所執行的字節碼的行號指示器。
    • 本地方法棧(Native Method Stacks):與虛擬機棧所發揮的作用非常相似,其區別不過是虛擬機棧為虛擬機執行Java方法(也就是字節碼)服務,而本地方法棧則為虛擬機使用到的Native方法服務。
  2. Java中的垃圾收集算法有哪些?
    • 標記-清除(Mark-Sweep):首先標記出所有需要回收的對象,然后統一回收被標記的對象。
    • 復制(Copying):將內存分為大小相等的兩塊,每次只使用其中一塊,當這一塊內存用完時,就將還存活的對象復制到另一塊上面,然后再把已使用的內存空間一次清理掉。
    • 標記-整理(Mark-Compact):標記過程仍然與“標記-清除”算法一樣,但后續步驟不是直接對可回收對象進行清理,而是讓所有存活的對象都向一端移動,然后直接清理掉端邊界以外的內存。
    • 分代收集(Generational Collection):根據對象的存活周期的不同,將內存劃分為幾塊。一般是把Java堆分為新生代和老年代,這樣就可以根據各個年代的特點采用最適當的收集算法。
  3. synchronized和volatile的區別?
    • synchronized:是Java中的一個關鍵字,用于控制多個線程對共享資源的訪問,保證同一時刻只有一個線程能夠訪問該資源。synchronized既可以修飾方法,也可以修飾代碼塊。
    • volatile:是Java中的一個修飾符,用于保證變量的可見性和有序性,但不保證原子性。volatile變量不會被緩存在寄存器或者對其他處理器不可見的地方,每次使用都會直接從主存中讀取。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38569.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2.2.4 C#中顯示控件BDPictureBox 的實現----ROI交互

2.2.4 C#中顯示控件BDPictureBox 的實現----ROI交互 1 界面效果 在設定模式下&#xff0c;可以進行ROI 框的拖動&#xff0c;這里以Rect1舉例說明 2 增加ROI類定義 /// <summary> /// ROI_single /// 用于描述圖片感興趣區域 /// type: 0:Rect1;1:Rect2;2:Circle ;3:…

C++ //練習 14.31 我們的StrBlobPtr類沒有定義拷貝構造函數、賦值運算符及析構函數,為什么?

C Primer&#xff08;第5版&#xff09; 練習 14.31 練習 14.31 我們的StrBlobPtr類沒有定義拷貝構造函數、賦值運算符及析構函數&#xff0c;為什么&#xff1f; 環境&#xff1a;Linux Ubuntu&#xff08;云服務器&#xff09; 工具&#xff1a;vim 解釋&#xff1a; 因為…

工業路由器與家用路由器的區別

在現代網絡環境中&#xff0c;路由器扮演著至關重要的角色。無論是在家庭網絡還是在工業網絡&#xff0c;選擇合適的路由器都至關重要。本文將從多個角度&#xff0c;對工業路由器與家用路由器進行詳細比較&#xff0c;幫助您更好地理解二者的區別。 1、安全性 工業路由器&…

大模型應用開發實戰基礎

大模型應用開發實戰基礎 1. 背景 大模型如日中天&#xff0c;各行各業都受它影響&#xff0c;但是作為程序員&#xff0c;除了讓它翻譯代碼不知道用它干什么&#xff0c;就像是拿著錘子的木匠&#xff0c;找不到釘子在哪。一邊聽著別人說2024是AI元年&#xff0c;一邊又不知所…

PostgreSQL的系統視圖pg_stat_database_conflicts

PostgreSQL的系統視圖pg_stat_database_conflicts 在 PostgreSQL 中&#xff0c; pg_stat_database_conflicts 是一個視圖&#xff0c;用于監控并發操作導致的數據庫沖突情況。了解和監控這些沖突可以幫助數據庫管理員調優系統&#xff0c;以更好地處理并發事務。 pg_stat_da…

中控室監控臺在水處理行業的作用

隨著工業化和城市化的快速推進&#xff0c;水處理行業的重要性日益凸顯。作為確保水質安全、提高水資源利用效率的關鍵環節&#xff0c;水處理廠需要高效、穩定地運行。在這個過程中&#xff0c;中控室監控臺發揮著不可或缺的作用。本文將從以下幾個方面&#xff0c;詳細闡述中…

fyne的MultiLineEntry設置大小

MultiLineEntry設置大小 在另一篇文章講過&#xff0c;放入border布局中&#xff0c;可以最大化MultiLineEntry。 這里再介紹另一種方法:SetMinRowsVisible() func (e *Entry) SetMinRowsVisible(count int) {e.multiLineRows counte.Refresh() }SetMinRowsVisible強制mult…

(域滲透提權)CVE-2020-1472 NetLogon權限提升漏洞

目錄 漏洞簡介 漏洞檢測 漏洞利用 使用腳本進行利用 使用Mimikatz進行利用 恢復用戶哈希 漏洞簡介 CVE-2020-1472是繼永恒之藍漏洞之后又一個好用的內網提權漏洞&#xff0c;影響Windows Server2008R2至2019的版本。只要攻擊者能夠訪問到目標域控并且知道域控計算機名即…

九淺一深Jemalloc5.3.0 -- ④淺*配置

目前市面上有不少分析Jemalloc老版本的博文&#xff0c;但最新版本5.3.0卻少之又少。而且5.3.0的架構與5之前的版本有較大不同&#xff0c;本著“與時俱進”、“由淺入深”的宗旨&#xff0c;我將逐步分析最新release版本Jemalloc5.3.0的實現。 另外&#xff0c;單講實現代碼是…

ShareSDK iOS端如何實現小紅書分享

下載SDK 請登陸官網 &#xff0c;找到SDK下載&#xff0c;勾選需要的平臺下載 導入SDK &#xff08;1&#xff09;離線導入將上述下載到的SDK&#xff0c;直接將整個SDK資源文件拖進項目里&#xff0c;如下圖&#xff1a; 并且勾選以下3個選項 在點擊Finish&#xff0c;…

實時跟蹤并顯示Docker容器的最新日志

可以用以下命令實時跟蹤并顯示Docker容器的最新日志 例&#xff1a; 這條命令 docker logs --tail 200 -f docker1 的作用是&#xff1a; docker logs: 這部分指示要查看 Docker 容器的日志。--tail 200: 這個選項指定只顯示最后的200行日志。這意味著你將只看到容器最近生…

JavaSE簡易版掃雷小游戲

描述&#xff1a;用戶輸入二維雷區的高和寬&#xff0c;輸入確定地雷數&#xff0c;隨機在地雷區生成地雷。用戶輸入橫豎坐標進行挖雷&#xff0c;挖到地雷游戲以失敗結束&#xff0c;并讓用戶選擇是否再次游戲&#xff1b;沒挖到雷&#xff0c;顯示該區域8個方向地雷數。如果8…

安徽大學學報-哲學社會科學版

《安徽大學學報》&#xff08;哲學社會科學版&#xff09;簡介 安徽大學學報&#xff08;哲學社會科學版&#xff09;簡要信息 刊 號 CN 34—1040/C ISSN 1001—5019 主 編 張治棟 地 址 安徽省合肥市肥西路3號 郵 編 230039 電 話 &#xff08;0551&#xff09;6…

Spring MVC的高級功能——異常處理(三)異常處理注解

一、ControllerAdvice注解的作用 從Spring 3.2開始&#xff0c;Spring 提供了一個新注解ControllerAdvice&#xff0c; ControllerAdvice有以下兩個作用。 ? 注解作用在類上時可以增強Controller&#xff0c;對Controller中被RequestMapping注解標注的方法加一些邏輯處理。…

uniapp + vue3 + Script Setup 寫法變動 (持續更新)

一、uniapp 應用生命周期&#xff1a; https://uniapp.dcloud.net.cn/tutorial/vue3-composition-api.html 注意&#xff1a; 應用生命周期僅可在App.vue中監聽&#xff0c;在其它頁面監聽無效。 二 、uniapp頁面生命周期&#xff1a; https://uniapp.dcloud.net.cn/tutori…

C語言 輸出所有的水仙花數

輸出所有的“水仙花數”&#xff08;水仙花數指一個三位數&#xff0c;其各位數字立方和等于該數本身。例如153是水仙花數&#xff0c;因為1^35^33^3153&#xff09; 這個程序找出所有的三位水仙花數&#xff0c;并輸出它們。 &#xff08;如果每各數字立方和等于原數字&…

Java SE入門及基礎(62) 線程池 執行器

線程池 1. 執行器 In all of the previous examples, theres a close connection between the task being done by a new thread, as defined by its Runnable object, and the thread itself, as defined by a Thread object. This works well for small applications, but…

Golang | Leetcode Golang題解之第212題單詞搜索II

題目&#xff1a; 題解&#xff1a; type Trie struct {children map[byte]*Trieword string }func (t *Trie) Insert(word string) {node : tfor i : range word {ch : word[i]if node.children[ch] nil {node.children[ch] &Trie{children: map[byte]*Trie{}}}nod…

Zynq系列FPGA實現SDI視頻編解碼,基于GTX高速接口,提供5套工程源碼和技術支持

目錄 1、前言工程概述免責聲明 2、相關方案推薦本博已有的 SDI 編解碼方案本方案在Xilinx--Kintex系列FPGA上的應用 3、詳細設計方案設計原理框圖SDI 輸入設備Gv8601a 均衡器GTX 解串與串化SMPTE SD/HD/3G SDI IP核BT1120轉RGB圖像緩存視頻讀取控制HDMI輸出RGB轉BT1120Gv8500 驅…

vuepress使用簡介及個人博客搭建

目錄 一、介紹二、環境準備三、安裝運行vuepress四、目錄結構五、配置文件六、導航欄配置七、導航欄logo八、瀏覽器圖標九、側邊欄配置十、添加 Git 倉庫和編輯鏈接十一、部署到GitHub十二、搭建成功 一、介紹 VuePress 是 Vuejs 官方提供的一個是Vue驅動的靜態網站生成器&…