【華為OD技術面試真題 - 技術面】- Java面試題(17)

華為OD面試真題精選

專欄:華為OD面試真題精選
目錄: 2024華為OD面試手撕代碼真題目錄以及八股文真題目錄

文章目錄

  • 華為OD面試真題精選
  • 虛擬機分區
      • 1. **虛擬磁盤分區**
      • 2. **虛擬機的內存分區**
      • 3. **CPU分配**
      • 4. **虛擬網絡分區**
      • 5. **存儲虛擬化和分區**
      • 6. **虛擬機分區管理**
      • 7. **常見虛擬化平臺的分區管理**
  • 內存回收
      • 1. **Java內存管理概述**
      • 2. **垃圾回收機制概述**
      • 3. **Java 垃圾回收的主要算法**
      • 4. **Java 垃圾回收的主要區域**
      • 5. **常見的垃圾回收器**
      • 6. **垃圾回收的調優**
  • 分代回收流程
      • 分代回收流程
        • 1. **內存分代**
        • 2. **垃圾回收流程**
          • 2.1 **年輕代回收(Minor GC)**
          • 2.2 **老年代回收(Major GC 或 Full GC)**
          • 2.3 **永久代回收(Full GC)**
        • 3. **晉升機制**
        • 4. **觸發垃圾回收**
  • MySQL,索引失效
      • 常見的 MySQL 索引失效場景
        • 1. **條件中對索引列做了函數或運算**
        • 2. **隱式類型轉換**
        • 3. **在索引列上使用 `!=` 或 `<>`**
        • 4. **在索引列上使用 `IS NULL` / `IS NOT NULL`**
        • 5. **LIKE 以通配符開頭**
        • 6. **OR 條件混用索引列和非索引列**
        • 7. **范圍查詢 + 索引列順序問題**
        • 8. **ORDER BY 使用非索引字段**
  • 類加載器、類加載過程和類加載機制
    • 一、類加載器(ClassLoader)
      • 1.1 類加載器的作用
      • 1.2 常見的類加載器
    • 二、類加載過程(生命周期)
      • 2.1 加載(Loading)
      • 2.2 驗證(Verification)
      • 2.3 準備(Preparation)
      • 2.4 解析(Resolution)
      • 2.5 初始化(Initialization)
    • 三、類加載機制
      • 3.1 雙親委派模型(Parent Delegation Model)
      • 優點:
      • 示例流程:
    • 四、打破雙親委派(如 SPI)
  • 線程池拒絕策略
    • 一、線程池任務滿的條件
    • 二、JDK 提供的 4 種拒絕策略
    • 三、自定義拒絕策略
    • 四、實際應用建議

封面

虛擬機分區

虛擬機分區是指在虛擬化環境中劃分虛擬機的存儲和資源,以便更好地管理和隔離不同虛擬機之間的操作和數據。分區可以包括磁盤分區、內存分配、CPU分配等,確保虛擬機之間不會互相干擾,同時可以根據需要分配資源。以下是關于虛擬機分區的一些關鍵概念和技術。

1. 虛擬磁盤分區

虛擬機的磁盤分區是指在虛擬磁盤中創建多個邏輯分區,類似于物理機上的磁盤分區。虛擬機的磁盤可以分為多個分區,每個分區可以有不同的用途,例如:

  • 系統分區:用于存放操作系統。
  • 數據分區:用于存放應用程序數據。
  • 交換分區:類似于物理機上的交換空間,提供虛擬內存。

在虛擬化平臺(如 VMware、VirtualBox 或 Hyper-V)中,虛擬磁盤文件通常是一個大文件,像 .vmdk(VMware)或 .vdi(VirtualBox),它們可以根據需要進行分區。

2. 虛擬機的內存分區

在虛擬化中,每個虛擬機都分配一定的物理內存(RAM)。分區的目的是合理地分配內存資源,避免虛擬機之間的內存沖突。虛擬化平臺會將物理內存劃分成多個虛擬內存塊,并將這些內存塊分配給各個虛擬機。操作系統內部的內存管理(如頁表、虛擬內存管理)將在虛擬機內進行處理。

3. CPU分配

虛擬化平臺提供虛擬CPU(vCPU)來分配給虛擬機。每個虛擬機都可以擁有多個虛擬CPU(例如一個虛擬機可以分配2個vCPU),這些vCPU對應的是物理CPU的核心。CPU分區實際上是將虛擬機需要的CPU資源分配給虛擬機,并確保虛擬機之間的CPU資源不會相互沖突。

4. 虛擬網絡分區

虛擬機通常也會連接到虛擬網絡中。在虛擬化平臺中,可以通過虛擬交換機(Virtual Switch)和網絡接口卡(vNIC)來進行虛擬網絡的配置與分區。通過虛擬網絡分區,可以實現虛擬機之間的網絡隔離、網絡帶寬的限制以及跨虛擬機的網絡訪問控制。

5. 存儲虛擬化和分區

在虛擬化環境中,存儲分區常見的方式包括:

  • 共享存儲:多個虛擬機共享同一存儲資源,可以通過網絡文件系統(NFS)或 iSCSI 等協議實現。
  • 直通存儲:將物理存儲直接分配給虛擬機進行使用。
  • 虛擬磁盤格式:如 VMDK(VMware)、VHD(Hyper-V)、VDI(VirtualBox)等,虛擬機使用這些格式的虛擬磁盤文件進行存儲分配。

6. 虛擬機分區管理

虛擬機分區的管理包括:

  • 創建與調整分區:可以在虛擬機創建時為其分配硬盤空間和其他資源,或者在虛擬機運行過程中動態調整資源(例如擴展磁盤、增加內存、增加CPU等)。
  • 資源監控與限制:虛擬化平臺通常提供對虛擬機資源使用的監控工具,管理員可以監控虛擬機的資源使用情況,必要時進行資源限制或調整。
  • 備份與恢復:虛擬機的分區可以在備份時一并保存,恢復時可以根據備份的狀態進行還原。

7. 常見虛擬化平臺的分區管理

不同的虛擬化平臺提供不同的管理工具來實現虛擬機分區。

  • VMware

    • VMware vSphere 提供強大的虛擬機資源管理,支持磁盤分區、內存分配、虛擬CPU分配等功能。
    • 使用 VMFS(虛擬機文件系統)進行磁盤管理,支持虛擬磁盤的分配和擴展。
  • VirtualBox

    • VirtualBox 支持通過虛擬硬盤(VDI、VHD、VMDK)來進行虛擬機磁盤分區。
    • 內存分配和CPU分配可以通過虛擬機的設置界面進行調整。
  • Hyper-V

    • Hyper-V 使用 VHD 或 VHDX 格式的虛擬磁盤來實現磁盤分區,并支持內存和CPU資源的分配。
    • Hyper-V 管理器提供了資源分配和調整的圖形化界面。

內存回收

在 Java 中,內存回收是通過垃圾回收機制(Garbage Collection, GC)來自動管理內存的。垃圾回收的目的是回收不再被引用的對象所占用的內存,避免內存泄漏,并保持程序的高效性。

1. Java內存管理概述

Java 的內存分為多個區域,每個區域負責不同的內存管理任務。主要的內存區域包括:

  • 堆內存(Heap):用于存儲創建的對象,垃圾回收器會主要關注堆內存中的對象。
  • 棧內存(Stack):用于存儲方法的局部變量和調用過程的棧幀。棧內存的管理不需要垃圾回收。
  • 方法區(Method Area):存儲類信息、常量池、靜態變量等,也叫做“永久代”(PermGen)或“元空間”(Metaspace),根據 Java 版本的不同,管理方式有所不同。
  • 程序計數器(Program Counter Register):每個線程有一個程序計數器,用來存儲當前線程的執行位置,幫助虛擬機執行字節碼。

2. 垃圾回收機制概述

Java 使用**自動垃圾回收(GC)**來管理堆內存。垃圾回收的過程包括以下幾個步驟:

  • 標記(Mark):GC 會首先標記出所有仍然存活的對象。對象存活的標準通常是“被引用”。如果一個對象可以通過鏈式引用從根對象(如線程棧、靜態引用等)訪問到,那么它是存活的。

  • 清除(Sweep):標記階段之后,GC 會清除所有沒有被標記的對象,釋放它們占用的內存空間。

  • 壓縮(Compact):有些垃圾回收器(如 G1)會對堆中的對象進行壓縮,避免出現內存碎片。這樣做的目的是將存活的對象移動到堆的一端,方便后續的內存分配。

3. Java 垃圾回收的主要算法

Java 中的垃圾回收器有多種算法,常見的包括:

  • 標記-清除算法(Mark and Sweep):最基礎的算法,標記所有活躍對象,清除所有未標記的對象。缺點是清除后會產生內存碎片。

  • 復制算法(Copying):將內存分為兩部分,每次只使用其中一部分。垃

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

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

相關文章

Linux | I.MX6ULL內核及文件系統源碼結構(7)

01 類型 描述 備注 ARM 交叉編譯器 版本&#xff1a;4.9.4 提供軟件工具 Uboot 版本&#xff1a;2016.03 提供源碼 支持LCD顯示&#xff1b;支持網口&#xff1b; 支持 EMMC,NAND FLASH&#xff1b; 支持環境變量修改保存 Linux 內核 版本&#xff1a;4.1.15 提供…

0基礎入門scrapy 框架,獲取豆瓣top250存入mysql

一、基礎教程 創建項目命令 scrapy startproject mySpider --項目名稱 創建爬蟲文件 scrapy genspider itcast "itcast.cn" --自動生成 itcast.py 文件 爬蟲名稱 爬蟲網址 運行爬蟲 scrapy crawl baidu(爬蟲名&#xff09; 使用終端運行太麻煩了&#xff0c;而且…

鴻蒙NEXT小游戲開發:猜小球

1. 引言 “猜小球”是一個經典的益智游戲&#xff0c;通常由一名表演者和多名參與者共同完成。表演者會將一個小球放在一個杯子下面&#xff0c;然后將三個杯子快速地交換位置&#xff0c;參與者則需要猜出最終哪個杯子下面有小球。本文將介紹如何使用HarmonyOS NEXT技術&…

網絡購物謹慎使用手機免密支付功能

在數字經濟蓬勃發展的當下&#xff0c;“免密支付”成為許多人消費時的首選支付方式。 “免密支付”的存在有其合理性。在快節奏的現代生活中&#xff0c;時間愈發珍貴&#xff0c;每節省一秒都可能帶來更高的效率。以日常通勤為例&#xff0c;上班族乘坐交通工具時&#xff0c…

記錄 | Android getWindow().getDecorView().setSystemUiVisibility(...)設置狀態欄屬性

純純的一邊開發一邊學習&#xff0c;是小白是菜鳥&#xff0c;單純的記錄和學習&#xff0c;大神勿噴&#xff0c;理解有錯望指正&#xff5e; getWindow().getDecorView().setSystemUiVisibility(…) 該方法用于控制系統 UI&#xff08;如狀態欄、導航欄&#xff09;的可見性…

java虛擬機---JVM

JVM JVM&#xff0c;也就是 Java 虛擬機&#xff0c;它最主要的作用就是對編譯后的 Java 字節碼文件逐行解釋&#xff0c;翻譯成機器碼指令&#xff0c;并交給對應的操作系統去執行。 JVM 的其他特性有&#xff1a; JVM 可以自動管理內存&#xff0c;通過垃圾回收器回收不再…

VectorBT:使用PyTorch+LSTM訓練和回測股票模型 進階四

VectorBT&#xff1a;使用PyTorchLSTM訓練和回測股票模型 進階四 本方案融合 LSTM 時序預測與動態風險控制。系統采用混合架構&#xff0c;離線訓練構建多尺度特征工程和雙均線策略&#xff0c;結合在線增量更新持續優化模型。技術要點包括三層特征篩選、波動率動態倉位管理、混…

前端中rem,vh,vw

1. rem&#xff08;Root EM&#xff09; 參照對象 基準&#xff1a;相對于 根元素&#xff08;<html>&#xff09;的 font-size 計算。 默認情況下&#xff0c;瀏覽器的根 font-size 為 16px&#xff08;即 1rem 16px&#xff09;&#xff0c;但可通過 CSS 修改&#…

詳解 MySQL 常見的存儲引擎及它們之間的區別

MySQL 支持多種存儲引擎&#xff0c;每種引擎針對不同的應用場景提供了特定的特性和優化。下面是幾種常見的存儲引擎以及它們之間的主要區別&#xff1a; 常見存儲引擎 1. InnoDB&#xff08;重點&#xff09; 事務支持&#xff1a; 完全支持 ACID 事務&#xff0c;確保數據一…

html+css+js 實現一個貪吃蛇小游戲

目錄 游戲簡介 游戲功能與特點 如何玩轉貪吃蛇 游戲設計與實現 HTML結構 JavaScript核心實現 代碼結構&#xff1a; 效果 關于“其他游戲” 游戲簡介 貪吃蛇是一款經典的單人小游戲&#xff0c;玩家通過控制蛇的移動&#xff0c;吃掉食物來增加長度&#xff0c;避免撞…

GLSL(OpenGL 著色器語言)基礎語法

GLSL&#xff08;OpenGL 著色器語言&#xff09;基礎語法 GLSL&#xff08;OpenGL Shading Language&#xff09;是 OpenGL 計算著色器的語言&#xff0c;語法類似于 C 語言&#xff0c;但提供了針對 GPU 的特殊功能&#xff0c;如向量運算和矩陣運算。 著色器的開頭總是要聲明…

ngx_http_core_merge_srv_conf

定義在 src\http\ngx_http_core_module.c static char * ngx_http_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) {ngx_http_core_srv_conf_t *prev parent;ngx_http_core_srv_conf_t *conf child;ngx_str_t name;ngx_http_server_name_t…

uni-app:firstUI框架的選擇器Select改造,添加一個搜索的插槽

<fui-select :show"showSiteType" :options"siteTypeList" textKey"dict_label" title"請選擇站點類型" confirm"chooseSiteType" close"onCloseSiteType"><template v-slot:search><view><…

Debian/Ubuntu的networking的`/etc/network/interfaces`配置文件,如何配置route路由

Debian/Ubuntu的networking的/etc/network/interfaces配置文件,如何配置route路由 在 Debian/Ubuntu 系統中&#xff0c;通過 /etc/network/interfaces 配置文件配置路由&#xff08;靜態路由或默認路由&#xff09;可以通過以下方式實現。以下是詳細配置方法及示例&#xff1…

天梯賽 L2-024 部落

一個并查集題目&#xff0c;難點就在于統計總人數&#xff0c;使用map即可&#xff0c;還有需要注意的是編號不一定是小于N的&#xff0c;小于10000的&#xff0c;需要注意。 #include<bits/stdc.h> using namespace std; const int N 10010; int fa[N]; int find(int …

uniapp 微信小程序 使用ucharts

文章目錄 前言一、組件功能概述二、代碼結構分析2.1 模板結構 總結 前言 本文介紹一個基于 Vue 框架的小程序圖表組件開發方案。該組件通過 uCharts 庫實現折線圖的繪制&#xff0c;并支持滾動、縮放、觸摸提示等交互功能。文章將從代碼結構、核心方法、交互實現和樣式設計等方…

Axure項目實戰:智慧運輸平臺后臺管理端-承運商管理(中繼器篩選)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝! 課程主題:智慧運輸平臺后臺管理端 主要內容:承運商管理 應用場景:條件篩選、增刪改查操作、臺賬制作 案例展示: 正文內容: 承運商管理模塊主要解決平臺對承運商的管理,包括新增承運商作,審核承運商申請,修…

[論文筆記] Deepseek技術報告解讀: MLAMTP

1. RMSNorm 歸一化層 class RMSNorm(nn.Module):def __init__(self, dim: int, eps: float = 1e-8):super().__init__()self.eps = epsself.weight = nn.Parameter(torch.ones(dim)) # 可學習的縮放參數def _norm(self, x: torch.Tensor):return x * torch.rsqrt(x.pow(2).me…

八款內網電腦監控軟件:探尋適配企業需求的數字化監管方案組合

數字化辦公的時代背景下&#xff0c;企業管理面臨著前所未有的挑戰。如何實現對員工辦公行為的高效管理&#xff0c;確保網絡資源的合理利用&#xff0c;成為眾多企業決策者和高級管理人員亟待解決的重要問題。內網電腦監控軟件作為一種有效的管理工具&#xff0c;應運而生。本…

Flutter求助貼

報錯信息&#xff1a;The Dart VM Service was not discovered after 30 seconds. This is taking much longer than expected... 基本情況&#xff1a; 硬件&#xff1a;mac(15.3.1)&#xff0c;iPad(iOS 16.6),iPhone 16 pro(iOS 18.4) 項目環境 flutter&#xff1a;3.16…