Silverlight發展歷程(微軟2021年已經停止支持Silverlight 5)

文章目錄

  • Microsoft Silverlight 發展歷程
    • 引言
    • 起源與背景(2006-2007)
      • 互聯網技術格局與微軟的挑戰
      • WPF/E 項目的啟動
    • Silverlight 1.0 的誕生(2007)
      • 正式命名與首次發布
      • 初步的市場定位
    • Silverlight 2.0:真正的突破(2008)
      • 技術飛躍
      • 開發工具的成熟
      • 市場擴展與戰略合作
    • 擴展與成熟期(2009-2010)
      • Silverlight 3.0(2009)
      • Silverlight 4.0(2010)
      • 市場滲透與競爭態勢
    • 轉折點:戰略調整與移動化挑戰(2010-2011)
      • 移動互聯網的沖擊
      • 戰略調整的信號
    • 最后的輝煌:Silverlight 5(2011-2012)
      • Silverlight 5.0 的發布
      • Windows 8 與戰略轉向
      • 企業領域的深耕
    • 衰落期:HTML5 時代的到來(2012-2015)
      • 市場環境的變化
      • 瀏覽器支持的削減
      • 微軟戰略的明確轉向
    • 遺產與影響(2015 年后)
      • 技術遺產的轉移
      • 影響與教訓
      • 企業應用中的長尾效應
    • 技術特點回顧
      • Silverlight 的主要技術特點
      • 與競爭技術的比較
    • 結論:Silverlight 的歷史意義

Microsoft Silverlight 發展歷程

引言

Microsoft Silverlight 是微軟在 Web 多媒體和富互聯網應用 (RIA) 領域的一次重要嘗試,它從誕生到消亡的過程折射出了 Web 技術發展的變遷和行業格局的演變。本文將詳細回顧 Silverlight 的完整發展歷程,探討其技術特點、應用場景、成功與失敗的原因,以及它在互聯網技術發展史上的地位和影響。

起源與背景(2006-2007)

互聯網技術格局與微軟的挑戰

2000 年代中期,隨著寬帶互聯網的普及,Web 應用開始向更加豐富的媒體體驗和交互模式發展。當時的 Web 技術生態主要由幾個關鍵技術主導:

  • Adobe Flash:主導著 Web 動畫、游戲和富媒體內容市場
  • Java Applet:在企業應用領域有一定市場
  • AJAX:剛剛興起,代表了基于標準的 Web 技術發展方向

微軟在這一領域面臨嚴峻挑戰。Internet Explorer 雖然是主流瀏覽器,但在富媒體和交互體驗上完全依賴第三方插件,尤其是 Adobe Flash。這一情況不符合微軟的戰略利益,因為它:

  1. 使微軟在 Web 平臺的核心體驗上依賴競爭對手的技術
  2. 無法充分利用微軟在桌面軟件和開發工具上的技術優勢
  3. 使 .NET 平臺無法延伸到 Web 富媒體領域

WPF/E 項目的啟動

面對這一挑戰,微軟在 2006 年啟動了代號為 “WPF/E”(WPF Everywhere)的項目,旨在將 Windows Presentation Foundation (WPF) 技術擴展到跨平臺的瀏覽器環境。這一項目的目標是:

  • 創建一個基于 .NET 的跨平臺 Web 富客戶端技術
  • 提供比 Flash 更強大的媒體和圖形處理能力
  • 與現有的微軟技術棧(如 Visual Studio、Expression Studio、.NET Framework)無縫集成
  • 支持 XAML(可擴展應用程序標記語言)作為聲明式 UI 描述語言

2006 年 9 月,微軟在 MIX 06 大會上首次展示了 WPF/E 的原型,并計劃在 2007 年正式發布。

Silverlight 1.0 的誕生(2007)

正式命名與首次發布

2007 年 4 月,微軟正式將 WPF/E 更名為 “Silverlight”,這一名稱反映了其作為 Web "銀光"的定位,并于 2007 年 9 月正式發布 Silverlight 1.0 版本。

Silverlight 1.0 的核心特性包括:

  • 基于 JavaScript 的編程模型
  • 支持播放高質量的視頻和音頻
  • 支持 XAML 進行用戶界面描述
  • 提供基礎的 2D 矢量圖形和動畫支持
  • 支持 Windows 和 Mac OS 平臺

這一版本的 Silverlight 功能相對有限,主要聚焦于媒體播放,尚未包含完整的 .NET 運行時支持,因此開發者需要使用 JavaScript 進行編程。

初步的市場定位

Silverlight 1.0 的市場定位主要針對媒體播放和基礎的富互聯網應用,直接挑戰 Adobe Flash 在媒體播放和簡單交互應用方面的主導地位。微軟通過與內容提供商的合作,特別是在流媒體領域,試圖快速建立 Silverlight 的市場份額。

Silverlight 2.0:真正的突破(2008)

技術飛躍

Silverlight 2.0(原計劃命名為 1.1)于 2008 年 10 月發布,代表了 Silverlight 技術的真正成熟。這一版本的核心創新是集成了精簡版的 .NET Framework,稱為 “.NET Framework for Silverlight”,這使得開發者可以使用 C# 或 VB.NET 進行 Silverlight 應用開發。

Silverlight 2.0 的主要技術特性包括:

  • 集成 .NET 運行時環境,支持 C# 和 VB.NET 開發
  • 引入控件框架,提供約 20 種內置 UI 控件
  • 數據綁定支持
  • 強化的網絡棧,支持 REST、SOAP、RSS 等服務
  • 引入了線性布局系統,支持復雜界面設計
  • 增強的媒體支持,包括改進的流媒體能力
  • Deep Zoom 技術,支持高分辨率圖像的平滑縮放

開發工具的成熟

伴隨 Silverlight 2.0 的發布,微軟推出了完整的開發工具鏈:

  • Visual Studio 2008 對 Silverlight 開發的全面支持
  • Expression Blend 2 SP1,提供專業的界面設計工具
  • 豐富的 SDK 和示例代碼

這套完整的工具鏈是 Silverlight 相對于 Flash 的重要優勢,尤其對于已熟悉 .NET 開發的企業開發者來說,顯著降低了學習曲線。

市場擴展與戰略合作

Silverlight 2.0 的發布使微軟能夠拓展其在 RIA 市場的目標:

  • 與 NBC 合作轉播 2008 年北京奧運會,成為 Silverlight 的首個重要應用案例
  • 與 Netflix 合作,為其流媒體服務提供技術支持
  • 積極推進在企業應用領域的應用

Silverlight 在 2008 年獲得了顯著增長,到年底已有約 1 億臺設備安裝了 Silverlight 運行時。

年份Silverlight 版本主要新特性安裝基數估計重要事件
20071.0JavaScript 編程模型,XAML 支持<5000萬首次發布
20082.0.NET Framework 集成,控件框架>1億北京奧運會,Netflix 采用

擴展與成熟期(2009-2010)

Silverlight 3.0(2009)

Silverlight 3.0 于 2009 年 7 月發布,進一步增強了其功能集,主要改進包括:

  • 引入離線應用支持和 Out-of-Browser 功能
  • 新增 GPU 硬件加速支持
  • 加入 3D 變換能力
  • 增強了媒體功能,包括 H.264 視頻支持和平滑流技術
  • 引入元素綁定數據模型
  • 新增 40 多種控件和組件
  • 增強了業務應用開發能力,包括驗證和數據表單支持

Out-of-Browser 功能是 Silverlight 3.0 的重要創新,它允許 Silverlight 應用在瀏覽器外運行,具有更接近本地應用的體驗,同時保持 Web 應用的部署和更新便利性。這一功能反映了微軟將 Silverlight 定位為連接 Web 和桌面的橋梁的戰略。

Silverlight 4.0(2010)

2010 年 4 月,微軟發布了 Silverlight 4.0,這被認為是 Silverlight 技術最成熟的版本,主要特性包括:

  • 增強的 Out-of-Browser 體驗,支持更多本地系統集成
  • 打印支持
  • 網絡攝像頭和麥克風支持
  • 增強的企業功能,包括更好的數據綁定和富文本編輯
  • Google Chrome 瀏覽器支持
  • 支持鼠標右鍵和滾輪事件
  • COM 自動化支持,允許與 Office 應用集成
  • 通知窗口支持

Silverlight 4.0 明顯加強了企業應用和 LOB(Line of Business)應用的支持,表明微軟認識到 Silverlight 在企業市場比消費市場更有競爭力。

市場滲透與競爭態勢

到 2010 年底,Silverlight 已安裝在約 6 億臺設備上,安裝率在北美地區達到了約 60-70%。然而,這一數字仍遠低于 Flash 的 97% 以上的滲透率。

在市場競爭方面,Silverlight 面臨的主要挑戰是:

  • Adobe Flash 擁有絕對的市場主導地位和更廣泛的開發者生態
  • HTML5 標準的快速發展,開始提供原生媒體播放和高級圖形支持
  • Apple 設備(特別是 iPhone 和 iPad)不支持 Silverlight,而 iOS 市場快速增長
  • Google 通過推進 HTML5 和開源技術,間接與 Silverlight 競爭

Web插件2010市場份額

轉折點:戰略調整與移動化挑戰(2010-2011)

移動互聯網的沖擊

2010 年是移動互聯網爆發的關鍵年,帶來了幾個對 Silverlight 戰略性的挑戰:

  1. Apple 公開拒絕在 iOS 設備上支持 Flash,并發表了著名的《關于 Flash 的思考》文章,為整個插件技術敲響警鐘
  2. HTML5 標準快速成熟,開始提供原生視頻播放和高級動畫支持
  3. 智能手機和平板電腦市場迅速擴張,而 Silverlight 在這些平臺上的支持有限

微軟最初嘗試通過 Windows Phone 7 平臺推動 Silverlight 移動化。Windows Phone 7 采用 Silverlight 作為應用開發框架,試圖利用現有 Silverlight 開發者生態系統快速建立移動應用市場。然而,Windows Phone 平臺市場份額有限,未能為 Silverlight 提供足夠的移動生態支持。

戰略調整的信號

2010 年 10 月,在 PDC(專業開發者大會)上,微軟首席軟件架構師 Bob Muglia 在接受采訪時表示,“我們的 Silverlight 策略已經調整”,并指出 HTML5 將成為跨平臺解決方案,而 Silverlight 將更專注于 Windows 平臺。這一表態被廣泛解讀為微軟降低了對 Silverlight 的戰略重視,引發了開發者社區的廣泛擔憂。

雖然微軟隨后通過博客文章澄清了對 Silverlight 的持續承諾,但這一事件被視為 Silverlight 命運的轉折點,表明微軟內部已經開始重新評估其插件技術策略。

最后的輝煌:Silverlight 5(2011-2012)

Silverlight 5.0 的發布

2011 年 12 月,微軟發布了 Silverlight 5.0,這是 Silverlight 的最后一個主要版本。Silverlight 5.0 的主要特性包括:

  • 改進的媒體播放能力,包括硬件解碼和 GPU 加速
  • 低延遲實時音頻流支持
  • 3D 圖形支持,基于 XNA 框架
  • 增強的文本渲染,支持 OpenType 字體
  • 改進的數據綁定調試
  • 遠程控制支持
  • P/Invoke 支持,允許調用本地 C/C++ 代碼
  • 改進的打印支持

Silverlight 5.0 是一個功能強大的版本,特別是在企業應用和媒體應用領域提供了豐富的能力。然而,與此同時,HTML5 技術也在快速發展,與 Silverlight 的功能差距不斷縮小。

Windows 8 與戰略轉向

2011-2012 年,隨著 Windows 8 開發的推進,微軟的平臺戰略發生了重大轉變:

  1. Windows 8 引入了 WinRT (Windows Runtime) 作為新的應用平臺
  2. WinRT 應用可以使用 HTML/JavaScript 或 XAML/C# 開發
  3. Windows 應用商店被定位為新的應用分發渠道
  4. 微軟開始明確向 HTML5 標準靠攏

雖然 WinRT 的 XAML/C# 編程模型借鑒了 Silverlight 的許多概念,但它是一個全新的平臺,與 Silverlight 不兼容。這一戰略調整表明,微軟已經開始為"后 Silverlight 時代"布局。

企業領域的深耕

在公眾關注度下降的同時,Silverlight 在 2011-2012 年在企業應用領域仍然保持了相對強勢的地位:

  • 微軟 SharePoint 2010 使用 Silverlight 增強用戶體驗
  • 多家企業軟件供應商推出基于 Silverlight 的 LOB 應用
  • Silverlight 在內部網應用中獲得廣泛應用,特別是在需要豐富交互和媒體能力的場景
年份Silverlight 版本主要新特性市場狀況重要事件
20093.0Out-of-Browser 支持,GPU 加速快速增長安裝基數突破 3 億
20104.0增強的企業功能,更多本地集成增長放緩戰略調整爭議
20115.03D 支持,媒體播放增強企業市場穩定Windows 8 戰略公布

衰落期:HTML5 時代的到來(2012-2015)

市場環境的變化

2012-2015 年期間,Web 技術環境發生了深刻變化,對 Silverlight 形成了多重挑戰:

  • HTML5 成為 W3C 推薦標準,主流瀏覽器提供了完善支持
  • WebGL 技術成熟,提供了強大的 3D 圖形能力
  • CSS3 動畫和過渡效果被廣泛支持
  • JavaScript 性能大幅提升,ECMAScript 標準持續演進
  • 響應式設計成為主流,適應多種屏幕尺寸成為必要
  • 移動設備上網流量超過桌面設備

這些變化使得基于標準的 Web 技術能夠提供與插件技術相當的功能,同時避免了插件的兼容性和安全性問題。

瀏覽器支持的削減

隨著 Web 標準的發展,主要瀏覽器廠商開始減少對插件技術的支持:

  • 2013 年,Google Chrome 開始逐步淘汰 NPAPI 插件支持
  • 2014 年,Mozilla Firefox 宣布計劃終止 NPAPI 插件支持
  • 2015 年,Microsoft Edge 瀏覽器發布,不支持 ActiveX 和 Silverlight
  • 2015 年,Google Chrome 完全移除 NPAPI 支持,使 Silverlight 無法在 Chrome 中運行

這些變化極大地減少了 Silverlight 的可訪問市場,迫使開發者考慮替代方案。

微軟戰略的明確轉向

這一時期,微軟的戰略轉向變得更加明確:

  • 2012 年,微軟發布 TypeScript,為大型 JavaScript 應用提供更好的工具支持
  • 2013 年,微軟對 Office 365 進行改版,減少 Silverlight 依賴,增加 HTML5 支持
  • 2014 年,微軟新任 CEO Satya Nadella 推動"移動為先,云為先"戰略,強調跨平臺
  • 2015 年,微軟宣布 Windows 10 將支持托管的 Web 應用

最終,微軟于 2015 年 7 月正式宣布 Silverlight 5 將是最終版本,并公布了產品支持的最終時間表,確認將在 2021 年 10 月完全終止支持。

遺產與影響(2015 年后)

技術遺產的轉移

盡管 Silverlight 作為產品走向終結,但其許多技術概念和設計理念被轉移到了微軟的其他技術中:

  • WinRT/UWP:繼承了 Silverlight 的 XAML 編程模型和許多控件設計
  • Xamarin:采用類似的 XAML 布局系統,允許 C# 開發跨平臺移動應用
  • .NET MAUI:進一步整合了 XAML 和 C# 的跨平臺應用開發模型
  • Blazor:重新實現了在 Web 平臺上使用 C# 開發的能力,但基于 WebAssembly 而非插件

影響與教訓

Silverlight 的興衰為軟件行業提供了一些重要教訓:

  1. 標準的重要性:專有技術即使技術先進,也難以抵抗開放標準的長期發展
  2. 移動優先的必要性:未能及時適應移動浪潮是 Silverlight 衰落的關鍵因素
  3. 開發者生態的價值:盡管 Silverlight 擁有出色的開發工具,但其生態系統規模從未超過 Flash
  4. 平臺戰略的復雜性:微軟多次調整的平臺戰略給開發者帶來了困惑和不確定性

企業應用中的長尾效應

雖然 Silverlight 在公共互聯網上的應用在 2015 年后急劇減少,但在企業內部網應用中,Silverlight 應用的淘汰和遷移是一個緩慢的過程:

  • 許多企業應用繼續使用 Silverlight 直到支持期結束
  • 大型組織投入大量資源將 Silverlight 應用遷移到 HTML5 或其他技術
  • 金融、醫療和政府部門是最后淘汰 Silverlight 的行業

技術特點回顧

Silverlight 的主要技術特點

Silverlight 作為一項技術,有其獨特的優勢和局限性:

技術方面強項弱項
開發模型強類型語言,完整 IDE 支持插件部署,瀏覽器兼容性問題
圖形渲染高質量矢量圖形,硬件加速復雜場景性能不如 Flash
媒體播放高品質視頻播放,平滑流編解碼器支持有限
應用架構MVVM 模式,良好的代碼組織復雜應用初始加載較慢
跨平臺性Windows 和 Mac 支持移動設備支持有限,Linux 支持缺失
安全模型沙盒執行,代碼訪問安全性需要提升權限才能訪問本地資源

與競爭技術的比較

Silverlight 與其主要競爭技術相比:

  • vs. Flash:開發工具更現代,媒體播放優越,但市場滲透率低,游戲開發能力弱
  • vs. HTML5:應用架構更成熟,性能更一致,但部署復雜,需要插件安裝
  • vs. Java Applet:用戶體驗更佳,啟動更快,但企業功能不如 Java 豐富

結論:Silverlight 的歷史意義

Silverlight 雖然最終未能取得商業上的持久成功,但它在技術發展史上具有重要意義:

  1. 技術創新:Silverlight 推動了 Web 富應用開發模型的創新,影響了后續標準的發展
  2. 開發范式:XAML 聲明式 UI 和數據綁定模型對現代前端開發有深遠影響
  3. 微軟轉型:從專有技術向開放標準的轉變,反映了微軟戰略的重大變革
  4. 行業教訓:為科技行業提供了關于技術選擇和平臺戰略的寶貴教訓

Silverlight 的故事告訴我們,技術選擇不僅僅是技術問題,也是市場、生態和戰略的問題。在快速變化的技術環境中,適應變化的能力往往比技術本身的先進性更加重要。

雖然 Silverlight 作為產品已經成為歷史,但它的許多理念和創新已經融入到了更廣泛的軟件開發生態中,繼續以不同的形式影響著軟件行業的發展。

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

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

相關文章

【大數據、數據開發與數據分析面試題匯總(含答案)】

在大數據、數據開發與數據分析領域的面試中&#xff0c;扎實掌握各類知識點至關重要。以下是精心整理的面試題&#xff0c;涵蓋單選題和多選題&#xff0c;助你備考一臂之力。 試題目錄 大數據、數據開發與數據分析高頻面試題解析1. 數據倉庫分層架構設計2. 維度建模與范式建模…

Docker部署禪道21.6開源版本

將數據庫相關環境變量分開&#xff0c;增加注釋或空格使得命令更易讀。 如果你的 MySQL 主機、端口等配置沒有變化&#xff0c;應該確保這些信息是安全的&#xff0c;并考慮使用 Docker secrets 或環境變量配置來避免直接暴露敏感信息。 docker run -d -it --privilegedtrue …

Yocto項目實戰教程 · 第4章:4.2小節-菜譜

&#x1f50d; B站相應的視頻教程&#xff1a; &#x1f4cc; Yocto項目實戰教程-第4章-4.2小節-菜譜 記得三連&#xff0c;標為原始粉絲。 在 Yocto 項目中&#xff0c;**菜譜&#xff08;Recipe&#xff09;**承載了包的配置信息、源碼獲取方式、編譯與安裝步驟&#xff0c;是…

【pytorch】torch.nn.Unfold操作

說明 一個代碼里涉及到了unfold的操作&#xff0c;看了半天官網都沒整明白維度怎么變化的&#xff0c;參考這個鏈接搞明白了&#xff1a; https://blog.csdn.net/ViatorSun/article/details/119940759 https://zhuanlan.zhihu.com/p/361140988 維度計算 輸入&#xff08; N,…

Linux 固定IP地址

一.查看網口狀態&#xff1a; $ ip a 二.配置靜態IP文件&#xff1a; $ sudo vi /etc/network/interface auto eth0 iface eth0 inet static address 192.168.0.252 gateway 192.168.0.1 netmask 255.255.255.0 #network 192.168.0.0 #broadcast 192.168.0.255 三.重啟網卡讓新…

android的 framework 有哪些知識點和應用場景

Android Framework 知識點 1. 四大組件 Activity&#xff08;活動&#xff09; 是 Android 應用中最基本的組件&#xff0c;用于實現用戶界面。一個 Activity 通常對應一個屏幕的內容。有自己的生命周期&#xff0c;包括 onCreate、onStart、onResume、onPause、onStop、onDe…

如何在PDF.js中改造viewer.html以實現PDF的動態加載

在PDF.js中改造viewer.html實現PDF動態加載&#xff0c;需結合參數傳遞、文件流處理及跨域配置等技術。以下是綜合多個技術方案的核心實現步驟&#xff1a; ?一、基礎參數傳遞法? 1. ?URL參數動態加載? 通過修改viewer.html的URL參數傳遞PDF路徑&#xff0c;適用于靜態文…

組件之間的數據通信方式

Vue 的傳值方式&#xff08;即組件之間的數據通信方式&#xff09;根據組件關系不同&#xff08;父子、兄弟、跨層級&#xff09;有所區別。下面是常見的傳值方式&#xff0c;按使用場景來分類&#xff1a; 一、父子組件傳值 1. props&#xff08;父 -> 子&#xff09; 父…

組件是怎樣寫的(1):虛擬列表-VirtualList

本篇文章是《組件是怎樣寫的》系列文章的第一篇&#xff0c;該系列文章主要說一下各組件實現的具體邏輯&#xff0c;組件種類取自 element-plus 和 antd 組件庫。 每個組件都會有 vue 和 react 兩種實現方式&#xff0c;可以點擊 https://hhk-png.github.io/components-show/ …

個性化的配置AndroidStudio

Android Studio 提供諸多向導和模板&#xff0c;可用于驗證 Java 開發套件 (JDK) 和可用 RAM 等系統要求&#xff0c;以及配置默認設置&#xff0c;例如經過優化的默認 Android 虛擬設備 (AVD) 模擬和更新的系統映像。本文檔介紹了可用于自定義 Android Studio 使用方式的其他配…

人類行為的原動力是自我保存-來自ChatGPT

自我保存&#xff08;Self-Preservation&#xff09;確實可以說是人類行為最原始、最底層的驅動力。 簡單來說&#xff1a; 無論我們做什么&#xff0c;表面看動機五花八門&#xff0c;實際上歸根到底都繞不開活下去、保護自己。 &#x1f4a1; 從不同層面理解這個觀點&#…

SystemVerilog語法之內建數據類型

簡介&#xff1a;SystemVerilog引進了一些新的數據類型&#xff0c;具有以下的優點&#xff1a;&#xff08;1&#xff09;雙狀態數據類型&#xff0c;更好的性能&#xff0c;更低的內存消耗&#xff1b;&#xff08;2&#xff09;隊列、動態和關聯數組&#xff0c;減少內存消耗…

藍光三維掃描技術:高效精密測量相機鏡頭底座注塑件

如今越來越多的攝影愛好者、vlog拍攝者使用數碼相機以及無人機&#xff0c;隨時隨地記錄生活中的每一刻美好瞬間&#xff0c;對相機設備的要求也不斷提高。 — 案例背景 — 相機鏡頭底座涉及鏡頭裝置可靠、螺絲位置度連接以及殼體組裝&#xff0c;鏡頭底座注塑件生產廠商&…

【前端】【面試】【業務場景】前端如何獲取并生成設備唯一標識

? 總結 問題&#xff1a;前端如何獲取并生成設備唯一標識&#xff1f; 核心要點&#xff1a;瀏覽器原生信息有限&#xff0c;但通過組合多個維度可生成設備指紋&#xff08;Device Fingerprint&#xff09;&#xff0c;用于唯一標識設備。 常見方式&#xff1a; 瀏覽器信息&…

極刻AI搜v1.0 問一次問題 AI工具一起答

軟件名&#xff1a;極刻AI搜 版本&#xff1a;v1.0 功能&#xff1a;囊括了互聯網上比較好用的一些支持”搜索“的網站或者工具 開發平臺&#xff1a;nodepythonweb 分類有&#xff1a; AI搜索&#xff08;支持智能問答的AI搜索引擎&#xff09; 常規搜索&#xff1a;&#xff…

《2025最新Java面試題全解析:從基礎到高并發架構設計》

25年Java開發者面試中最常考察的100道面試題&#xff0c;涵蓋Java基礎、JVM、多線程、Spring框架、分布式系統等核心知識點&#xff0c;并結合大廠真實面試案例進行深度解析&#xff0c;助你順利通過技術面試。 一、Java基礎篇&#xff08;高頻15問&#xff09; 1. HashMap底層…

[c語言日寄]免費文檔生成器——Doxygen在c語言程序中的使用

【作者主頁】siy2333 【專欄介紹】?c語言日寄?&#xff1a;這是一個專注于C語言刷題的專欄&#xff0c;精選題目&#xff0c;搭配詳細題解、拓展算法。從基礎語法到復雜算法&#xff0c;題目涉及的知識點全面覆蓋&#xff0c;助力你系統提升。無論你是初學者&#xff0c;還是…

51c嵌入式~單片機~合集5~DMA

我自己的原文哦~ https://blog.51cto.com/whaosoft/12940885 一、DMA DMA&#xff0c;全稱Direct Memory Access&#xff0c;即直接存儲器訪問。 DMA傳輸將數據從一個地址空間復制到另一個地址空間&#xff0c;提供在外設和存儲器之間或者存儲器和存儲器之間的高速數據傳輸…

Linux隨記(十七)

一、綜合報錯&#xff1a;fork: Cannot allocatte memory 和 modues is unknwon 和 pam_limits(crond:session) : unknwon limit item ‘noproc’ 1.1 fork: Cannot allocatte memory 處理 - 隨記 排查時間2025年4月。 環境描述&#xff1a; 2014年左右的服務器&#xff0c;…

支持mingw g++14.2 的c++23 功能print的vscode tasks.json生成調試

在mingw14.2版本中, print庫的功能默認沒有開啟, 生成可執行文件的tasks.json里要顯式加-lstdcexp, 注意放置順序. tasks.json (支持mingw g14.2 c23的print ) {"version": "2.0.0","tasks": [{"type": "cppbuild","…