日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

百度真題和答案解析!

來源: 責編: 時間:2024-06-18 09:18:47 271觀看
導讀重點介紹一個你覺得有意義的項目?回答技巧和思路:介紹的項目業務難度和技術難點要高一些,最好是微服務項目。簡明扼要的講清楚項目核心板塊的業務場景即可,切忌不要講的太細和太久,這只是面試官要考察你技術問題的一個觸手

3By28資訊網——每日最新資訊28at.com

重點介紹一個你覺得有意義的項目?

回答技巧和思路:3By28資訊網——每日最新資訊28at.com

  • 介紹的項目業務難度和技術難點要高一些,最好是微服務項目。
  • 簡明扼要的講清楚項目核心板塊的業務場景即可,切忌不要講的太細和太久,這只是面試官要考察你技術問題的一個觸手。
  • 講清楚自己在項目中負責的模塊。
  • 講清楚項目的亮點是啥。
  • 講清楚遇到了哪些棘手的問題?以及最終的解決方案。

synchronize鎖升級過程?

synchronized 鎖升級有兩個版本:3By28資訊網——每日最新資訊28at.com

  • JDK 1.6 synchronized 鎖升級:無鎖 -> 偏向鎖 -> 輕量級鎖 -> 重量級鎖。
  • JDK 15 synchronized 鎖升級:無鎖 -> 輕量級鎖 -> 重量級鎖。

注意:回答的過程中,最好能講明白每種鎖的概念和特征,以及為什么 JDK 15 要廢除偏向鎖?3By28資訊網——每日最新資訊28at.com

synchronize作用在普通方法和靜態方法上有什么區別?

synchronized 作用在靜態方法是類級別的,而作用在普通方法是對象實例級別,因此作用在靜態方法時,鎖范圍更大、性能也更低。3By28資訊網——每日最新資訊28at.com

synchronized實現原理?

synchronized 同步鎖是通過 JVM 內置的 Monitor 監視器實現的,而監視器又是依賴操作系統的互斥鎖 Mutex 實現的。3By28資訊網——每日最新資訊28at.com

例如,以下代碼中使用了 synchronized 修飾:3By28資訊網——每日最新資訊28at.com

public class SynchronizedToMonitorExample {    public static void main(String[] args) {        int count = 0;        synchronized (SynchronizedToMonitorExample.class) {            for (int i = 0; i < 10; i++) {                count++;            }        }        System.out.println(count);    }}

當我們將上述代碼編譯成字節碼之后,得到的結果是這樣的:3By28資訊網——每日最新資訊28at.com

3By28資訊網——每日最新資訊28at.com

從上述結果我們可以看出,在 main 方法中多了一對 monitorenter 和 monitorexit 的指令,它們的含義是:3By28資訊網——每日最新資訊28at.com

  • monitorenter:表示進入監視器。
  • monitorexit:表示退出監視器。

由此可知 synchronized 是依賴 Monitor 監視器實現的。3By28資訊網——每日最新資訊28at.com

volatile作用和實現原理?

volatile 作用有以下兩個:3By28資訊網——每日最新資訊28at.com

  1. 保證內存可見性;
  2. 保證有序性(禁止指令重排序)。

① 內存可見性實現原理

volatile 內存可見性主要通過 lock 前綴指令實現的,它會鎖定當前內存區域的緩存(緩存行),并且立即將當前緩存行數據寫入主內存(耗時非常短),回寫主內存的時候會通過 MESI 協議使其他線程緩存了該變量的地址失效,從而導致其他線程需要重新去主內存中重新讀取數據到其工作線程中。3By28資訊網——每日最新資訊28at.com

什么 MESI 協議?

MESI 協議,全稱為 Modified, Exclusive, Shared, Invalid,是一種高速緩存一致性協議。它是為了解決多處理器(CPU)在并發環境下,多個 CPU 緩存不一致問題而提出的。MESI 協議定義了高速緩存中數據的四種狀態:3By28資訊網——每日最新資訊28at.com

  • Modified(M):表示緩存行已經被修改,但還沒有被寫回主存儲器。在這種狀態下,只有一個 CPU 能獨占這個修改狀態。
  • Exclusive(E):表示緩存行與主存儲器相同,并且是主存儲器的唯一拷貝。這種狀態下,只有一個 CPU 能獨占這個狀態。
  • Shared(S):表示此高速緩存行可能存儲在計算機的其他高速緩存中,并且與主存儲器匹配。在這種狀態下,各個 CPU 可以并發的對這個數據進行讀取,但都不能進行寫操作。
  • Invalid(I):表示此緩存行無效或已過期,不能使用。

MESI 協議的主要用途是確保在多個 CPU 共享內存時,各個 CPU 的緩存數據能夠保持一致性。當某個 CPU 對共享數據進行修改時,它會將這個數據的狀態從 S(共享)或 E(獨占)狀態轉變為 M(修改)狀態,并等待適當的時機將這個修改寫回主存儲器。同時,它會向其他 CPU 廣播一個“無效消息”,使得其他 CPU 將自己緩存中對應的數據狀態轉變為I(無效)狀態,從而在下次訪問這個數據時能夠從主存儲器或其他 CPU 的緩存中重新獲取正確的數據。3By28資訊網——每日最新資訊28at.com

這種協議可以確保在多處理器環境中,各個 CPU 的緩存數據能夠正確、一致地反映主存儲器中的數據狀態,從而避免由于緩存不一致導致的數據錯誤或程序異常。3By28資訊網——每日最新資訊28at.com

② 有序性實現原理

volatile 的有序性是通過插入內存屏障(Memory Barrier),在內存屏障前后禁止重排序優化,以此實現有序性的。3By28資訊網——每日最新資訊28at.com

什么是內存屏障?

內存屏障(Memory Barrier 或 Memory Fence)是一種硬件級別的同步操作,它強制處理器按照特定順序執行內存訪問操作,確保內存操作的順序性,阻止編譯器和 CPU 對內存操作進行不必要的重排序。內存屏障可以確??缭狡琳系淖x寫操作不會交叉進行,以此維持程序的內存一致性模型。3By28資訊網——每日最新資訊28at.com

在 Java 內存模型(JMM)中,volatile 關鍵字用于修飾變量時,能夠保證該變量的可見性和有序性。關于有序性,volatile 通過內存屏障的插入來實現:3By28資訊網——每日最新資訊28at.com

  • 寫內存屏障(Store Barrier / Write Barrier):當線程寫入 volatile 變量時,JMM 會在寫操作前插入 StoreStore 屏障,確保在這次寫操作之前的所有普通寫操作都已完成。接著在寫操作后插入 StoreLoad 屏障,強制所有后來的讀寫操作都在此次寫操作完成之后執行,這就確保了其他線程能立即看到 volatile 變量的最新值。
  • 讀內存屏障(Load Barrier / Read Barrier):當線程讀取 volatile 變量時,JMM 會在讀操作前插入 LoadLoad 屏障,確保在此次讀操作之前的所有讀操作都已完成。而在讀操作后插入 LoadStore 屏障,防止在此次讀操作之后的寫操作被重排序到讀操作之前,這樣就確保了對 volatile 變量的讀取總是能看到之前對同一變量或其他相關變量的寫入結果。

通過這種方式,volatile 關鍵字有效地實現了內存操作的順序性,從而保證了多線程環境下對 volatile 變量的操作遵循 happens-before 原則,確保了并發編程的正確性。3By28資訊網——每日最新資訊28at.com

JVM內存布局?

《Java虛擬機規范》中將 JVM 運行時數據區域劃分為以下 5 部分:3By28資訊網——每日最新資訊28at.com

  • 程序計數器(Program Counter Register):用于存儲當前線程執行的字節碼指令的地址,在多線程環境中,程序計數器用于實現線程切換,保證線程恢復執行時能夠繼續從正確的位置執行代碼。
  • Java 虛擬機棧(Java Virtual Machine Stacks):用于存儲方法調用和局部變量(方法內部定義的變量),在方法調用和返回時,虛擬機棧用于保存方法的調用幀,包括方法的局部變量、操作數棧、方法返回地址等。
  • 本地方法棧(Native Method Stack):與虛擬機棧類似,本地方法棧用于執行本地(Native)方法。
  • Java 堆(Java Heap):JVM 中最大的一塊內存區域,用于存儲對象實例。所有的對象都在堆中分配內存。
  • 方法區(Methed Area):用于存儲類的元數據信息,包括類的結構、字段、方法、靜態變量、常量池等。

如下圖所示:3By28資訊網——每日最新資訊28at.com

3By28資訊網——每日最新資訊28at.com

棧和方法區會有OOM嗎?

棧和方法區都會出現 OOM,它們的 OOM 發生場景如下:3By28資訊網——每日最新資訊28at.com

  • 棧內存主要用于存儲方法的棧幀,包括局部變量、操作數棧、方法返回地址等。當一個線程請求的棧深度超過 JVM 允許的最大深度時(默認情況下這個值是比較大的,但可以通過-Xss參數調整),會拋出 StackOverflowError 異常。此外,如果 JVM 嘗試動態擴展棧空間大小但無法獲得足夠的內存,也可能拋出 OutOfMemoryError 異常。不過,這種情況相對較少見,因為棧空間一般在啟動時就已經固定或者有比較確定的上限。
  • 當方法區(或元空間)中存放的類、常量、靜態變量等信息超過了 JVM 分配給它的內存大小時(可通過 -XX:MaxMetaspaceSize 等參數進行設置),就會拋出 OutOfMemoryError。特別是當應用動態加載大量的類或類加載器無法被垃圾回收時,容易出現方法區的內存溢出。

父線程創建多個子線程可能會導致哪塊內存溢出?

可能會導致內存溢出的區域有以下幾個:3By28資訊網——每日最新資訊28at.com

  • Java 棧內存溢出:每個線程都有自己的棧,用于存儲方法調用時的方法信息、局部變量等數據。如果線程的棧設置過大,或者線程遞歸深度過深,可能會導致棧內存溢出(StackOverflowError)。若棧大小動態擴展受限于系統可用內存,則可能拋出 OutOfMemoryError。
  • 堆內存溢出:當創建大量線程時,每個線程可能會創建和管理多個對象,這些對象都存儲在堆中,當對象超過 JVM 配置的最大堆內存時(通過 -Xmx 參數設置),可能會導致 java.lang.OutOfMemoryError: Java heap space 錯誤。
  • 方法區溢出: 在多線程應用中,當線程中的代碼涉及到動態類加載(例如使用線程上下文類加載器加載不同的類)時,可能會導致方法區(或其替代品 Metaspace)內存的快速增長。方法區存儲了類的元數據,如果這部分內存達到 JVM 配置的最大值(通過 -XX:MaxMetaspaceSize 設置),也會引發 java.lang.OutOfMemoryError,錯誤信息可能涉及“Metaspace”。

CMS和G1收集器的區別?

CMS 和 G1 區別主要有以下幾個:3By28資訊網——每日最新資訊28at.com

  • 目標和定位不同:CMS 目標和定位是最短停頓時間;G1 除了追求低停頓外,還允許用戶設定期望的最大停頓時間(Pause Time Target),更加靈活地平衡吞吐量和響應時間,適合大規模數據的應用。
  • 作用區域不同:CMS 是老年代垃圾回收器;G1 是全代(新生代+老年代)垃圾回收器。
  • 使用算法不同:CMS 使用的是“標記-清除”算法,所以會產生內存碎片;而 G1 使用的是“復制”算法所以不會有內存碎片。
  • 適用場景不同:小內存和 JDK 8 之前通常會使用 CMS 垃圾回收器;而大內存管理和 JDK 9+ 以上環境通常會使用 G1 垃圾回收器。

說說創建一個對象的過程?

創建一個對象的過程如下:3By28資訊網——每日最新資訊28at.com

  • 類加載檢查:當通過 new 關鍵字創建一個對象時,JVM 首先會檢查該對象的類是否已經被加載并初始化了。如果尚未加載,JVM 將先進行類的加載過程,然后調用該類的構造器以完成初始化。
  • 分配內存空間:類加載完成后,JVM 會在 Java 堆中為新創建的對象分配足夠的內存空間。對象所需的內存大小在類加載過程中就已經確定。內存的分配方式取決于 Java 堆內存是否規整,可以選擇“指針碰撞”或“空閑列表”兩種不同的分配方式。
  • 初始化零值:內存分配之后,JVM 會對對象的普通成員變量進行初始化為零值,比如 int 類型初始化為 0,Integer 類型初始化為 null。這一步驟確保了對象的成員字段在不經過顯式初始化的情況下也能被直接使用。
  • 設置對象頭:然后 JVM 需要對對象的對象頭進行設置,這包括對象的元數據信息、GC 分代年齡、 hashCode 以及鎖標記等。對象頭的設置對于對象的后續使用至關重要。
  • 執行構造方法:最后,JVM 將執行對象的構造方法。這一步是開發者可以控制的,可以在構造方法中添加自定義的初始化代碼,以實現特定的業務邏輯。構造方法執行完成后,一個完全初始化且可直接使用的對象才算創建成功。

注意:對象創建過程和類加載機制(加載、驗證、準備、解析、初始化)略有不同。3By28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-94437-0.html百度真題和答案解析!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 4款.NET開源、功能強大的Windows桌面工具箱

下一篇: 打擊侵權,我國海關查獲 20 萬張未申報出口游戲卡片

標簽:
  • 熱門焦點
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍牙耳機到筆記本電腦,紅米不知不覺之間也已經形成了自己頗有競爭力的產品體系,在中端和次旗艦市場上甚至要比小米新機的表現來得更好,正所謂“大丈夫生居
  • 跑分安卓第一!Redmi K60至尊版8月發布!盧偉冰:目標年度性能之王

    8月5日消息,Redmi K60至尊版將于8月發布,在此前舉行的戰略發布會上,官方該機將搭載搭載天璣9200+處理器,安兔兔V10跑分超177萬分,是目前安卓陣營最高的分數
  • 把LangChain跑起來的三個方法

    使用LangChain開發LLM應用時,需要機器進行GLM部署,好多同學第一步就被勸退了,那么如何繞過這個步驟先學習LLM模型的應用,對Langchain進行快速上手?本片講解3個把LangChain跑起來
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對Reader和Writer接口的組合,
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數量是否小于或等于一個數字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 這款新興工具平臺,讓你的電腦效率翻倍

    隨著信息技術的發展,我們獲取信息的渠道越來越多,但是處理信息的效率卻成為一個瓶頸。于是各種工具應運而生,都在爭相解決我們的工作效率問題。今天我要給大家介紹一款效率
  • 雅柏威士忌多款單品價格大跌,泥煤頂流也不香了?

    來源 | 烈酒商業觀察編 | 肖海林今年以來,威士忌市場開始出現了降溫跡象,越來越多不斷暴漲的網紅威士忌也開始悄然回歸市場理性。近日,LVMH集團旗下蘇格蘭威士忌品牌雅柏(Ardbeg
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元&ldquo;人在職場,應該選擇什么樣的著裝?&rdquo;近日,在網絡上,一個與著裝相關的帖子引發關注,在該帖子里,一位在高級寫字樓亞洲金
  • 華為發布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發者大會2023(HDC.Together)大會上,HarmonyOS 4正式發布。自2019年發布以來,HarmonyOS一直以用戶為中心,經歷四年多的發展HarmonyOS已
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产精品高潮呻吟久久av黑人| 小黄鸭精品aⅴ导航网站入口| 激情文学一区| 黄色一区二区在线观看| 亚洲第一福利视频| 亚洲乱码视频| 午夜精品av| 久久一区二区三区超碰国产精品 | 欧美日韩国产电影| 欧美日韩1区| 国产麻豆91精品| **网站欧美大片在线观看| 99精品国产在热久久下载| 亚洲与欧洲av电影| 久久久之久亚州精品露出| 欧美福利一区二区| 国产精品免费一区豆花| 一区二区在线观看av| 日韩一级精品| 欧美在线视频日韩| 欧美精品性视频| 国产日韩视频| 日韩一级片网址| 久久精品一区二区国产| 欧美日韩精品一区二区| 国产一区二三区| 在线视频日韩| 另类春色校园亚洲| 国产精品视频福利| 亚洲精品一区二区三区四区高清 | 国产精品久久久久久影院8一贰佰| 国模私拍视频一区| 一本久久知道综合久久| 久久精品欧美日韩精品| 欧美日韩福利在线观看| 一区二区三区在线观看视频 | 欧美精品麻豆| 激情久久五月| 亚洲在线免费观看| 欧美国产精品专区| 国内精品免费在线观看| 亚洲尤物视频网| 欧美精品自拍| 在线色欧美三级视频| 午夜精品亚洲| 欧美婷婷六月丁香综合色| 亚洲第一色在线| 欧美一区二区三区久久精品茉莉花| 欧美精品在线一区二区三区| 狠狠噜噜久久| 香蕉乱码成人久久天堂爱免费| 欧美精品久久久久久久久久| 一区二区三区中文在线观看 | 狠狠色狠狠色综合日日91app| 亚洲一区二区精品在线观看| 欧美另类高清视频在线| 在线国产精品播放| 久久精品中文字幕一区| 国产精品一区二区女厕厕| 在线一区二区日韩| 欧美精品18+| 亚洲激情六月丁香| 久久另类ts人妖一区二区| 国产精品久久久久久久久免费| 亚洲久色影视| 欧美国产日韩a欧美在线观看| 红桃视频国产精品| 久久成人综合视频| 国产精品综合久久久| 亚洲一区二区三区成人在线视频精品| 欧美人妖在线观看| 亚洲乱码国产乱码精品精可以看| 美女国内精品自产拍在线播放| 国内欧美视频一区二区| 久久国产精品久久久| 国产亚洲二区| 久久精品国产亚洲a| 国产日韩在线不卡| 欧美一区久久| 国产深夜精品福利| 性欧美办公室18xxxxhd| 国产欧美日韩综合精品二区| 午夜欧美理论片| 国产欧美精品va在线观看| 午夜久久影院| 国产亚洲激情| 久久久人成影片一区二区三区| 国自产拍偷拍福利精品免费一| 欧美在线观看天堂一区二区三区| 国产日韩免费| 久久精品欧洲| 在线观看三级视频欧美| 美女久久网站| 亚洲精品国久久99热| 欧美激情亚洲精品| 一本色道久久综合狠狠躁篇怎么玩 | 午夜精品99久久免费| 国产欧美一区二区三区久久 | 红桃视频成人| 欧美福利视频网站| 亚洲美女区一区| 欧美午夜片在线观看| 午夜激情一区| 狠狠色综合一区二区| 美国三级日本三级久久99| 亚洲人成在线观看一区二区| 欧美久久影院| 亚洲少妇一区| 国产欧美日韩精品专区| 久久久精品欧美丰满| 亚洲国产mv| 欧美日本中文| 亚洲欧美日韩成人| 精品成人久久| 欧美日产国产成人免费图片| 亚洲一区二区三区视频| 国产欧美欧美| 麻豆九一精品爱看视频在线观看免费| 亚洲黄一区二区三区| 欧美午夜www高清视频| 欧美在线高清视频| 91久久久精品| 国产精品久久久久久久久久尿 | 欧美久久一区| 欧美一区二区高清| 亚洲国产精品久久久久久女王| 欧美日韩久久| 欧美在线国产| 亚洲精品国偷自产在线99热| 欧美视频精品在线| 久久国内精品视频| 亚洲精品欧美一区二区三区| 国产精品毛片| 裸体一区二区| 亚洲综合成人婷婷小说| 在线播放中文一区| 欧美网站在线观看| 久久免费精品视频| 日韩亚洲在线| 国产一区二区精品| 欧美另类久久久品| 久久国产精品亚洲va麻豆| 亚洲美女av黄| 国产真实久久| 欧美午夜宅男影院| 鲁大师成人一区二区三区| 亚洲一区亚洲| 亚洲国产日韩一区二区| 国产伦一区二区三区色一情| 欧美另类高清视频在线| 久久九九电影| 亚洲永久免费视频| 在线国产日韩| 国产精品亚发布| 欧美理论片在线观看| 久久久噜噜噜久久中文字幕色伊伊| 一区二区欧美日韩| 亚洲国产婷婷综合在线精品 | 欧美国产精品日韩| 久久久久久网址| 亚洲欧美国产另类| 亚洲精品日韩综合观看成人91 | 亚洲尤物视频网| 亚洲精品久久久久| 激情国产一区二区| 国产精品自在线| 欧美日韩视频专区在线播放 | 欧美午夜免费电影| 欧美国产免费| 久久久久久久一区二区三区| 亚洲欧美日韩国产成人精品影院| 亚洲精品一区在线观看| 在线观看亚洲专区| 国产一区二区三区的电影| 国产精品国产精品| 欧美日韩福利在线观看| 欧美国产日韩在线观看| 久久亚洲精品中文字幕冲田杏梨| 香蕉乱码成人久久天堂爱免费| 中文av一区特黄| 99视频国产精品免费观看| 亚洲日本电影| 亚洲激情电影在线| 亚洲国产精品成人va在线观看| 黑人操亚洲美女惩罚| 国产亚洲在线| 国产日韩综合一区二区性色av| 国产精品老女人精品视频| 欧美日韩在线第一页| 欧美日韩大陆在线| 欧美日本国产精品| 欧美精品一区二区三区高清aⅴ| 美日韩丰满少妇在线观看| 久久人人爽国产| 久久天堂国产精品| 久久伊伊香蕉| 噜噜噜91成人网| 美女性感视频久久久| 免费视频一区二区三区在线观看| 久久综合一区二区| 免费日韩精品中文字幕视频在线| 美女尤物久久精品| 欧美大尺度在线| 欧美久久久久久久|