2025前端面試題及答案(詳細)

HTML5 的新特性有哪些?

簡約版本:

“HTML5 新特性主要體現在六個方面:
第一,語義化標簽,比如 header、footer、nav 等,讓頁面結構更清晰;
第二,表單增強,新增了 date、email 等類型和 placeholder、required 等屬性;
第三,多媒體支持,提供了 audio 和 video 標簽,不再依賴 Flash;
第四,圖形繪制,有 canvas 和 svg;
第五,本地存儲,提供了 localStorage 和 sessionStorage;
第六,一些新的 API,比如 WebSocket 實時通信、Web Worker 多線程、地理定位、拖拽 API 和 History API 等。
總體來說,HTML5 更加語義化、增強了交互體驗,也提高了性能和可用性。”

詳細版本:

主要分為 語義化標簽、表單增強、多媒體支持、圖形繪制、本地存儲、API 六大類:

  1. 語義化標簽

    • 新增結構標簽:headerfooternavsectionarticleasidemain

    • 作用:提升頁面語義,利于 SEO 和可訪問性

  2. 表單增強

    • 新的表單控件:dateemailurlnumberrangecolorsearch

    • 新的屬性:requiredplaceholderpatternautofocus

  3. 多媒體支持

    • 原生音視頻標簽:<audio><video>

    • 支持多種格式,不依賴 Flash

  4. 圖形繪制

    • canvas:支持 2D 圖形繪制

    • svg:矢量圖形支持

  5. 本地存儲

    • localStorage:長期存儲,容量比 cookie 大

    • sessionStorage:會話級存儲

  6. 新的 API

    • 地理定位navigator.geolocation

    • 拖放 APIdrag & drop

    • Web Worker:多線程處理

    • WebSocket:雙向實時通信

    • History API:控制瀏覽器歷史記錄

ARIA / 無障礙開發面試題 & 答案

Q1. 什么是 ARIA?

ARIA(Accessible Rich Internet Applications)是一組 HTML 屬性,主要以 aria- 開頭。它的作用是幫助輔助技術(比如屏幕閱讀器)理解頁面結構和交互狀態
在現代前端中,我們經常用自定義組件(比如用 div 模擬按鈕),這些元素本身沒有語義,屏幕閱讀器讀不懂。ARIA 就是用來補充語義信息,讓頁面對殘障用戶更加友好。

👉 可以補充一句:ARIA 不會改變視覺效果,只影響輔助技術的理解。

Q2. 常見的 ARIA 屬性有哪些?舉例

1.角色(role):定義元素的語義角色,幫助輔助技術識別它是什么。

  • banner(頁面頭部)

  • navigation(導航區域)

  • main(主要內容)

  • complementary(補充內容)

  • contentinfo(頁腳信息)

  • search(搜索區域)

  • button(按鈕)

  • checkbox(復選框)

  • radio(單選按鈕)

  • tab(選項卡)

  • tabpanel(選項卡面板)

  • tooltip(提示信息)

  • dialog(對話框)

  • article(文章)

  • heading(標題)

  • list(列表)

  • listitem(列表項)

  • table(表格)

  • 等等

2. 狀態/屬性(aria-*):描述元素當前狀態,比如展開/選中/禁用等。

  • aria-label:給元素添加描述信息。

  • aria-hidden:讓讀屏器忽略某個元素。

  • aria-expanded:表示菜單是否展開。

  • aria-checked:復選框是否選中。

  • aria-live:提示動態區域,讀屏器會自動播報內容更新。

<div role="button" aria-pressed="false" tabindex="0">點我
</div>
//role="button" → 讓它被識別為按鈕
//tabindex="0" → 允許鍵盤 Tab 聚焦
//aria-pressed="false" → 狀態(未按下)

Q3. 開發無障礙應用時,ARIA 和語義化 HTML 有什么關系?

最佳實踐是 優先使用語義化 HTML 標簽(比如 <button><nav><header>),因為瀏覽器和讀屏器天然支持。
ARIA 是 補充手段,當我們用自定義組件(比如 div 寫的按鈕)時,再用 rolearia-* 屬性來增強可訪問性。
一句話總結:能用原生標簽就用原生,實在不行才用 ARIA。

Q4. 如何讓自定義組件可訪問?

  1. 給組件加 role(補充語義)。
  2. aria-* 屬性描述狀態(比如展開、禁用、選中)。
  3. 確保 鍵盤可操作,加 tabindex="0" 并監聽 Enter/Space 鍵事件。
  4. 動態內容要用 aria-liverole="alert" 提示用戶。

👉 這樣屏幕閱讀器和鍵盤用戶都能正常使用。

Q5. 在實際工作中,你做過哪些可訪問性優化?

參考回答:(隨便挑 2–3 點說)

  • 用語義化標簽代替純 div/span,比如 <button>

  • 給圖片加 alt,給圖標加 aria-hidden="true"

  • 自定義組件時,補充 rolearia-* 屬性。

  • 處理鍵盤可訪問性(Tab 聚焦、Enter/Space 觸發)。

  • 動態提示(比如表單報錯)用 aria-live 讓讀屏器播報。

Q6. ARIA 有什么使用原則?

參考回答:

  • 能用 HTML 原生語義就用原生,不要過度依賴 ARIA。

  • 只在必要時添加,避免屬性過多導致讀屏器混亂。

  • 測試可訪問性:實際用屏幕閱讀器(NVDA、VoiceOver)和鍵盤來測試。

CSS 相關問題

1. CSS 選擇器的優先級是怎么計算的?

👉 內聯樣式 > ID 選擇器 > 類 / 屬性 / 偽類選擇器 > 標簽選擇器 > 通配符 > 繼承 > 瀏覽器默認樣式。
數值記憶法:行內(1000) > ID(100) > 類/偽類(10) > 標簽/偽元素(1)。

2. 標準盒模型和 IE 盒模型有什么區別?

👉 標準盒模型:width 只包含 content,不含 padding 和 border。
👉 IE 盒模型:width 包含 content + padding + border。

元素總寬度 = content + padding + border + margin
元素總高度 = content + padding + border + margin
box-sizing: content-box; /* 標準盒模型(默認) */
box-sizing: border-box;  /* 怪異盒模型 */

3.如何創建響應式布局?

👉 媒體查詢(Media Queries):根據不同屏幕寬度設置不同的樣式。

/* 默認樣式:移動端優先 */
.container { font-size: 14px; }/* 平板端 */
@media (min-width: 768px) {.container { font-size: 16px; }
}/* PC 端 */
@media (min-width: 1200px) {.container { font-size: 18px; }
}

👉 流式布局(Fluid Layout):使用百分比 %、視口單位 vw/vh、彈性單位 em/rem 等,而不是固定 px

👉?彈性盒子(Flexbox):用 flex 讓子元素在父容器中自動適應。

👉網格布局(CSS Grid):Grid 天生適合響應式布局。?自動根據屏幕寬度決定列數。

.grid {display: grid;grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));gap: 20px;
}

👉響應式圖片 / 媒體:使用 max-width: 100% 讓圖片不超出容器。

👉移動端適配(viewport 設置):確保在不同設備上縮放正常。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

移動端優先 是主流做法:先寫小屏,再通過媒體查詢適配大屏。

4. position 的值有哪幾種?區別是什么?

  • static:默認定位,不受 top/left 影響。

  • relative:相對自身定位,占據原位置。

  • absolute:相對最近的非 static 祖先定位。

  • fixed:相對瀏覽器窗口定位,不隨滾動條移動。

  • sticky:結合 relative 和 fixed,根據滾動位置切換。

5. z-index 為什么有時不起作用?

  • 沒有定位屬性

    • z-index 只在元素設置了定位(position: relative | absolute | fixed | sticky)時才生效。

    • 如果是 position: static(默認),z-index 不會起作用。

  • 層疊上下文(Stacking Context)影響

    • 元素所在的層疊上下文會限制它的 z-index 效果。

    • 每個層疊上下文內部的元素 z-index 只在自己“上下文”里比較,無法跨層疊上下文提升。

    • 觸發層疊上下文的情況(常見):

      • 設置了 positionz-index 值不是 auto

      • 設置了 opacity < 1

      • 設置了 transformfilterperspectiveclip-path 等屬性;

      • 設置了 isolation: isolate

  • 父子關系影響

    • 子元素的 z-index 受限于父元素所在的層疊上下文,即使子元素 z-index 再大,也不會覆蓋在父元素所在層疊上下文之外的兄弟元素之上。

  • 瀏覽器默認層疊順序

    • 如果 z-index 相同或沒設置,瀏覽器會按照以下順序疊放:

      1. 背景和邊框(最底層)

      2. z-index 元素

      3. 塊級元素(按 HTML 順序)

      4. 浮動元素

      5. 行內元素(按 HTML 順序)

      6. z-index 元素(數值越大越靠上)

6.如何實現水平垂直居中?

  • 使用 Flex 布局(推薦 ?)
.parent {display: flex;justify-content: center;  /* 水平居中 */align-items: center;      /* 垂直居中 */
}
.child {width: 100px;height: 100px;
}
  • 使用 Grid 布局
.parent {display: grid;place-items: center;  /* 水平 + 垂直居中 */
}
  • 絕對定位 + transform
.parent {position: relative;
}
.child {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}
  • 絕對定位 + margin auto
.parent {position: relative;
}
.child {position: absolute;top: 0; bottom: 0;left: 0; right: 0;margin: auto;width: 100px;height: 100px;
}
  • 傳統方法:表格布局 / line-height
//第一。表格法(適合文字/小組件):.parent {display: table-cell;text-align: center;      /* 水平 */vertical-align: middle;  /* 垂直 */
}// 第二。line-height 法(適合單行文本):.parent {height: 100px;line-height: 100px; /* 設置等于高度 */text-align: center;
}

7. 什么是 BFC?有什么作用?

👉定義

  • BFC 全稱 Block Formatting Context(塊級格式化上下文)

  • 它是頁面中的一個獨立渲染區域,內部元素的布局不會影響到區域外部。

👉如何觸發 BFC(常見幾種方式)

  • 設置 float 值(left / right,但不是 none)。

  • 設置 positionabsolute / fixed

  • 設置 displayinline-blocktable-cellflexgrid 等。

  • 設置 overflowhiddenautoscroll

👉 BFC 的特性 / 作用

  • 清除浮動:父元素觸發 BFC 后,可以包含子元素的浮動,不會出現高度塌陷。

  • 避免外邊距重疊(margin collapse):同一個 BFC 內的塊級元素上下 margin 會重疊,不同 BFC 之間則不會。

  • 隔離作用:BFC 區域和外部獨立,內部元素不會影響外部布局。

  • 自適應兩欄布局:利用 BFC 可以實現一邊浮動一邊自適應。

👉 常見應用場景

  • ? 清除浮動問題

  • ? 阻止 margin 合并

  • ? 實現多欄布局(左側固定寬度,右側自適應)

JavaScript 作用域 & 閉包

1. 什么是作用域?有哪些類型?

作用域(Scope)是指程序中變量和函數的可訪問范圍。
JavaScript 的作用域類型主要有:

  1. 全局作用域:在代碼最外層聲明的變量和函數,整個程序都可以訪問。

  2. 函數作用域:每個函數調用時都會創建自己的作用域,函數內部定義的變量只能在函數內部訪問。

  3. 塊級作用域letconst 聲明的變量只在代碼塊 {} 內有效,例如 if、for 中。

👉 JavaScript 采用 詞法作用域(在函數定義時就決定了作用域,而不是運行時)。

2. 什么是作用域鏈?

當訪問一個變量時,JavaScript 引擎會:

  • 先在當前作用域查找

  • 如果找不到,就沿著外層作用域逐級向上查找

  • 直到全局作用域,如果還沒找到,就拋出 ReferenceError

這種 逐級查找的鏈條 就叫 作用域鏈
👉 本質:函數持有外部作用域的引用

3. 什么是執行上下文(Execution Context)?

執行上下文是 JavaScript 代碼運行時的環境。
每次執行一段代碼時,都會創建一個執行上下文,包括:

  1. 變量環境(var 聲明的變量、函數聲明)

  2. 詞法環境(let、const 聲明的變量)

  3. this 綁定(當前執行環境的 this 指向)

執行上下文分為三類:

  • 全局上下文(頁面首次運行時創建,只有一個)

  • 函數上下文(每次調用函數時都會創建)

  • eval 上下文(eval 代碼執行時創建,不推薦使用)

4. 什么是變量提升?

JavaScript 在代碼執行前,會先進行“預編譯”階段:

  • var 聲明的變量會提升到作用域頂端,默認值是 undefined

  • 函數聲明(function declaration)會整體提升,可以在聲明前調用。

  • letconst 也會提升,但存在 暫時性死區(TDZ),在聲明前使用會報錯。

console.log(a); // undefined
var a = 10;console.log(b); // ReferenceError
let b = 20;

5.this 在不同場景下的指向是什么?

  1. 普通函數調用 → 在非嚴格模式下指向全局對象(window),嚴格模式下是 undefined

  2. 對象方法調用 → 指向調用該方法的對象。

  3. 構造函數調用(new) → 指向新創建的實例對象。

  4. 顯式綁定 → 使用 callapplybind 可以手動指定 this。

  5. 箭頭函數 → 沒有自己的 this,繼承外層作用域的 this。

6. 什么是閉包?

閉包是指一個函數與其周圍的詞法環境(變量和狀態)的綁定。通過閉包,函數可以訪問其外部作用域中的變量,即使在外部函數執行結束后,這些變量依然可以被內部函數訪問和使用。

閉包的本質是函數與其定義時的作用域環境的結合。當一個函數返回另一個函數時,返回的內部函數會保留對外部函數作用域的引用,從而形成閉包。

條件(記三個字:函數 + 引用)

  1. 必須有 函數嵌套

  2. 內部函數 用到了外部變量

  3. 外部函數執行完,但變量 仍被引用

作用

  • 數據持久化:能夠讓某些變量長期保存在內存中,實現狀態的記憶。

  • 封裝與私有化:利用閉包,可以模擬私有變量,避免外部隨意修改。

  • 函數式編程:閉包是實現回調函數、高階函數、函數工廠等的重要基礎。

缺點

(1)容易在循環中出 bug(var 導致所有閉包共享同一個變量)

(1)循環里的閉包問題
for (var i = 0; i < 3; i++) {setTimeout(() => console.log(i), 1000);
}
// 輸出:3 3 3原因:var i 是同一個函數作用域,閉包引用的是同一個 i解決方法:for (let i = 0; i < 3; i++) {setTimeout(() => console.log(i), 1000);
}
// 輸出:0 1 2或者使用 IIFE(立即執行函數):for (var i = 0; i < 3; i++) {((i) => {setTimeout(() => console.log(i), 1000);})(i);
}

(2)內存泄漏

  • 閉包持有外部函數的變量引用,如果使用不當,可能導致內存不能及時釋放。

7. 為什么閉包會導致內存泄漏?

因為閉包會讓外部函數的變量一直被引用,垃圾回收機制(GC)無法釋放這部分內存。
解決方法:

  • 在不需要閉包時,將其引用置為 null

  • 避免過度使用閉包

8. 閉包的實際應用場景有哪些?

(1)封裝私有變量

function Counter() {let count = 0;return {inc: () => ++count,dec: () => --count};
}

(2)事件處理器(回調函數中訪問外部變量)

(3)函數柯里化(currying)

function add(a) {return function(b) {return a + b;};
}

9. 什么是事件循環(Event Loop)?宏任務和微任務有什么區別?

JavaScript 是單線程的,采用 事件循環機制 來處理異步任務。

執行順序:

  1. 先執行 同步代碼(主線程)。

  2. 同步執行完后,檢查 微任務隊列(microtask queue),依次執行完。

  3. 微任務清空后,再執行一個 宏任務(macrotask)

  4. 重復以上過程,形成循環。

常見宏任務(macrotask): setTimeoutsetIntervalsetImmediate、I/O、UI 渲染。
常見微任務(microtask): Promise.then/catch/finallyMutationObserverqueueMicrotaskprocess.nextTick(Node)

👉 口訣:先同步 → 再微任務 → 再宏任務

10. 什么是原型和原型鏈?

  • 原型(prototype)
    每個函數都有一個 prototype 屬性,用于存放實例共享的方法和屬性。

  • 原型鏈(Prototype Chain):
    對象在查找屬性時,會先在自己本身查找,如果沒有,就沿著 __proto__ 向上查找父級原型,直到 Object.prototype,再到 null 停止。

function Person() {}
const p = new Person();
console.log(p.__proto__ === Person.prototype); // true
console.log(Person.prototype.__proto__ === Object.prototype); // true

👉 原型鏈的本質是 對象屬性查找機制

11. async / await 的底層原理是什么?

  • async/awaitES2017 引入的語法糖,用來寫異步代碼。

  • async 函數默認返回一個 Promise

  • await 用來等待一個 Promise 的結果,函數會“暫停”執行,等結果出來再繼續。

  • 👉 作用:讓異步代碼寫起來更像同步代碼,可讀性更好。

底層原理:

  1. async/awaitPromise 的語法糖,本質是基于 Promise + Generator 實現的。

  2. await 會暫停函數的執行,把后續代碼放進微任務隊列,等 Promise 完成后再繼續執行。

👉 關鍵點:await 會把后續代碼放到 微任務隊列

12.??Promise 是什么?解決了什么問題?

  • Promise 是 ES6 引入的一種 異步編程的解決方案,用于表示一個可能在未來某個時間點才會完成的操作結果。

  • 本質是一個 狀態機,有三種狀態:pending(進行中)、fulfilled(已成功)、rejected(已失敗),且狀態 不可逆

  • Promise 提供了統一的 .then/.catch/.finally 接口,使得我們可以通過鏈式調用來組織異步代碼。

解決的問題:

(1)回調地獄(Callback Hell)

  • 傳統異步依賴多層嵌套回調,代碼難以維護;

  • Promise 通過鏈式調用讓異步邏輯更加扁平化、清晰。

(2)錯誤處理分散

  • 回調模式下錯誤需要逐層處理;

  • Promise 支持 錯誤冒泡,集中用 .catch 捕獲異常。

(3)異步流程控制

  • Promise.all / race / allSettled / any 提供了強大的并發控制能力,方便管理多個異步任務。

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

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

相關文章

分詞器詳解(二)

&#x1f50d; 第2層&#xff1a;中等深度&#xff08;15分鐘理解&#xff09; 1. 理論基礎 1.1 BPE的數學原理 核心思想&#xff1a;通過迭代合并高頻字符對構建詞匯表 算法形式化&#xff1a; 初始化詞匯表 V0{c1,c2,...,cn}V_0 \{c_1, c_2, ..., c_n\}V0?{c1?,c2?,...,c…

嵌入式學習 51單片機(3)

UART 概述通用異步收發器&#xff08;UART&#xff09;是一種全雙工、串行、異步通信協議&#xff0c;常用于設備間數據傳輸。包含兩根信號線&#xff1a;RXD&#xff08;接收信號線&#xff09;TXD&#xff08;發送信號線&#xff09;通信方式單工通信方向固定&#xff0c;僅支…

Redis AOF 持久化:銀行的 “交易流水單” 管理邏輯

目錄 一、AOF 的核心邏輯&#xff1a;“每筆交易都記流水” 二、AOF 的三個步驟&#xff1a;從 “臨時記錄” 到 “正式歸檔” 1. 命令追加&#xff1a;記到 “臨時小本本” 2. 寫入與同步&#xff1a;抄到 “正式流水冊” 3. AOF 還原&#xff1a;拿 “流水冊” 重放交易…

代碼隨想錄訓練營第三十天|LeetCode452.用最少數量的箭引爆氣球、LeetCode435.無重疊空間、LeetCode763.劃分字母空間

452.用最少數量的箭引爆氣球 貪心算法 重合最多的氣球射一箭&#xff0c;就是局部用箭數量最少的&#xff0c;全局的用箭數量就是最少的。 首先對二維數組進行排序&#xff0c;這樣就可以讓氣球更加緊湊。 思路&#xff1a;當前氣球是否和上一個氣球區間重合&#xff0c;如…

數據庫事務隔離級別與 MVCC 機制詳解

最近在準備面試&#xff0c;正把平時積累的筆記、項目中遇到的問題與解決方案、對核心原理的理解&#xff0c;以及高頻業務場景的應對策略系統梳理一遍&#xff0c;既能加深記憶&#xff0c;也能讓知識體系更扎實&#xff0c;供大家參考&#xff0c;歡迎討論。在數據庫并發操作…

【Cursor-Gpt-5-high】StackCube-v1 任務訓練結果不穩定性的分析

1. Prompt 我是機器人RL方向的博士生正在學習ManiSkill&#xff0c;在學習時我嘗試使用相同命令訓練同一個任務&#xff0c;但是我發現最終的 success_once 指標并不是相同的&#xff0c;我感到十分焦慮&#xff0c; 我使用的命令如下&#xff1a; python sac.py --env_id"…

文檔權限設置不合理會帶來哪些問題

文檔權限設置不合理會導致信息泄露、合規風險、協作效率下降、責任難以追溯、知識資產流失、員工信任受損、管理成本增加、企業戰略受阻。這些問題不僅影響日常運營&#xff0c;更會對企業的長遠發展構成威脅。根據IBM《2024數據泄露成本報告》&#xff0c;全球企業因數據泄露的…

Linux網絡服務——基礎設置

網絡服務命令1.ping命令作用&#xff1a;測試網絡連通性&#xff08;使用icmp協議&#xff09;常見選項&#xff1a;-c&#xff1a;指定ping的次數&#xff0c;默認無限次-I&#xff1a;指定發送請求的網卡[rootlocalhost ~]# ping 192.168.77.78 -c 4 -I ens160 PING 192.168.…

【multisim汽車尾燈設計】2022-12-1

緣由multisim汽車尾燈設計-學習和成長-CSDN問答 為什么模仿別人做的運行沒啥效果&#xff0c;啥也看不明白&#xff0c;數字電子技術要做的任務。

Langchain在調用 LLM 時統計 Token 消耗

關鍵點解析使用上下文管理器with get_openai_callback() as cb:這一行是核心。cb 會自動收集本次調用的 prompt tokens、completion tokens 以及 total tokens。自動統計在上下文退出時&#xff0c;cb 中已經包含了這次調用的消耗情況&#xff0c;無需額外手動計算。累加到全局…

漫談《數字圖像處理》之實時美顏技術

隨著移動拍攝、直播、短視頻等場景的普及&#xff0c;用戶對 “自然、流暢、可控” 的美顏效果需求日益提升 —— 既要消除皮膚瑕疵、優化面部形態&#xff0c;又需避免 “過度磨皮顯假”“變形失真”“實時卡頓” 等問題。實時美顏技術的核心并非單一算法的堆砌&#xff0c;而…

MATLAB基于PSO(粒子群算法)優化BP神經網絡和NSGA-II(非支配排序遺傳算法)多目標優化

代碼實現了一個智能算法優化BP神經網絡并進行多目標優化的完整流程&#xff0c;結合了PSO&#xff08;粒子群算法&#xff09;優化BP神經網絡和NSGA-II&#xff08;非支配排序遺傳算法&#xff09;多目標優化&#xff0c;用于多輸入多輸出的回歸預測問題。 ? 一、主要功能 數…

白平衡分塊統計數據為什么需要向下采樣?

在白平衡處理中&#xff0c;分塊統計數據時引入**向下采樣&#xff08;Downsampling&#xff09;**&#xff0c;核心目標是在保證統計有效性的前提下&#xff0c;解決“計算效率”與“統計魯棒性”的矛盾&#xff0c;同時避免局部噪聲對白平衡判斷的干擾。要理解這一設計的必要…

Deathnote: 1靶場滲透

Deathnote: 1 來自 <Deathnote: 1 ~ VulnHub> 1&#xff0c;將兩臺虛擬機網絡連接都改為NAT模式 2&#xff0c;攻擊機上做namp局域網掃描發現靶機 nmap -sn 192.168.23.0/24 那么攻擊機IP為192.168.23.128&#xff0c;靶場IP192.168.23.129 3&#xff0c;對靶機進行端口…

windows系統服務器測試部署springboot+vue+mysql項目

1. 后端Java應用啟動 直接使用命令行啟動&#xff08;推薦用于測試&#xff09;&#xff1a; cd C:\Users\Administrator\Desktop\toolset\backed java -jar -Dspring.profiles.activeprod -Dserver.port8083 admin.jar2. 前端靜態文件服務 由于你已經有了dist目錄&#xff0c;…

Java 與 Docker 的最佳實踐

在云原生時代&#xff0c;Docker 已成為應用交付和運行的事實標準。Java 作為企業級開發的主力語言&#xff0c;也需要與容器技術深度結合。然而&#xff0c;Java 程序天然有 JVM 內存管理、啟動速度、鏡像體積 等特點&#xff0c;如果不做優化&#xff0c;可能導致性能下降甚至…

大數據工程師認證推薦項目:基于Spark+Django的學生創業分析可視化系統技術價值解析

&#x1f496;&#x1f496;作者&#xff1a;計算機編程小央姐 &#x1f499;&#x1f499;個人簡介&#xff1a;曾長期從事計算機專業培訓教學&#xff0c;本人也熱愛上課教學&#xff0c;語言擅長Java、微信小程序、Python、Golang、安卓Android等&#xff0c;開發項目包括大…

【MySQL自學】SQL主鍵使用誤區:你必須知道的關鍵細節

在日常數據庫操作中&#xff0c;主鍵&#xff08;Primary Key&#xff09;是我們最常打交道的概念之一。然而&#xff0c;許多開發者&#xff0c;尤其是初學者&#xff0c;常常對其存在一些誤解。一個非常經典的問題是&#xff1a;“在SQL中&#xff0c;只要用到主鍵&#xff0…

Electron 執行python腳本

1 需求背景 有個需求需要Electron執行在本地執行python腳本。希望通過Electron調用python服務并且實現雙向通信。 2 解決思路 使用Electon 的{ exec, spawn, execFile, fork } from "child_process"; 能力來執行python腳本&#xff0c;使用spawn可以實現持續交互&…

Leetcode高頻 SQL 50 題(基礎版)題目記錄

Leetcode sql題目記錄 文章目錄Leetcode sql題目記錄570. 至少有5名直接下屬的經理1934. 確認率1193. 每月交易I1174. 即時食物配送II176. 第二高的薪水&#xff08;1&#xff09; 子查詢為空但外層用了聚合函數&#xff08;2&#xff09;子查詢為空而外層沒有聚合函數550. 游戲…