技術周總結 2024.05.13-05.19(計算機網絡 浮點數不準確原因和解決 java ThreadLocal XSS)

文章目錄

  • 一、05.18周六
    • 1.1)網絡相關
      • 1.1.1) 問題01:交換機和路由器的區別是什么?
        • 交換機(Switch)
        • 路由器(Router)
        • 總結
      • 1.1.2) 問題02:以太網介紹
        • 基本概念
        • 物理層和數據鏈路層
        • 以太網幀
        • 常見以太網類型
        • 以太網的優勢
        • 總結
      • 1.1.3)問題03:以太網中的幀長
        • 以太網幀結構
        • 幀長度限制
        • 幀長度實例
        • 關鍵點
        • 總結
    • 1.2)編程相關
      • 1.2.1)問題01:浮點數不準確的原因,以及在 Java和 Pyhton中是怎么解決這個問題的
        • 1. 有限的精度
        • 2. 二進制表示
        • 3. 舍入誤差
        • 4. 浮點數運算的非結合性
        • 示例
        • 應對方法
        • 示例:高精度庫
        • 總結
      • 1.2.2)問題02:Java集合遍歷時的 `fail-fast` 機制介紹
        • fail-fast 機制的工作原理
        • 示例代碼
        • 解決方法
        • 總結
      • 1.2.3) 問題03:java中的 TheadLocal有哪些副作用
  • 二、05.19 周日
    • 2.1)安全相關
      • 2.1.1)問題01:XSS和CSRF的區別和聯系
        • XSS(Cross-Site Scripting)
        • CSRF(Cross-Site Request Forgery)
        • 區別和聯系
        • 總結

一、05.18周六

1.1)網絡相關

1.1.1) 問題01:交換機和路由器的區別是什么?

交換機(Switch)和路由器(Router)都是網絡設備,但它們在網絡中的功能和作用有所不同。以下是它們的主要區別:

交換機(Switch)
  1. 工作層次:

    • 交換機通常工作在數據鏈路層(第二層),但也有一些高級交換機工作在網絡層(第三層)。
  2. 功能:

    • 主要用于在同一局域網(LAN)內連接多個設備,如計算機、打印機等。
    • 交換機通過使用 MAC 地址表來轉發數據幀,確保數據幀只發送到目標設備,而不是廣播到所有設備。
  3. 轉發機制:

    • 基于 MAC 地址來學習和轉發數據幀。
    • 使用以太網幀交換。
  4. 用途:

    • 提高局域網的效率和安全性。
    • 在大型網絡中用于分段和管理網絡流量。
路由器(Router)
  1. 工作層次:

    • 路由器工作在網絡層(第三層)。
  2. 功能:

    • 主要用于連接不同的網絡(如連接局域網和廣域網,或兩個不同的子網)。
    • 路由器通過使用 IP 地址來轉發數據包,并決定最佳路徑將數據包發送到目的地。
  3. 轉發機制:

    • 基于 IP 地址來路由和轉發數據包。
    • 使用路由表和路由協議(如 OSPF、BGP 等)來確定最佳路徑。
  4. 用途:

    • 提供網絡間的通信和連接互聯網。
    • 管理和優化不同網絡之間的流量。
總結
  • 交換機:主要用于同一網絡內設備之間的通信,工作在數據鏈路層,通過 MAC 地址來轉發數據幀。
  • 路由器:主要用于連接不同網絡,工作在網絡層,通過 IP 地址來路由數據包。

在實際應用中,交換機和路由器常常結合使用,共同構建高效、穩定的網絡結構。

1.1.2) 問題02:以太網介紹

以太網(Ethernet)是一種計算機網絡技術,用于局域網(LAN)中的設備互連。它是目前最廣泛使用的局域網技術,具有高效、可靠和易于擴展的特點。以下是對以太網的詳細介紹:

基本概念
  1. 起源和發展

    • 以太網由施樂公司的帕洛阿爾托研究中心(PARC)的Robert Metcalfe等人在20世紀70年代發明。
    • 最初的以太網標準是10 Mbps(10BASE-T),之后發展到100 Mbps(Fast Ethernet),1 Gbps(Gigabit Ethernet),10 Gbps(10 Gigabit Ethernet),25 Gbps,40 Gbps,100 Gbps等。
  2. 標準化

    • 以太網技術由IEEE 802.3標準定義。
    • IEEE(電氣電子工程師學會)負責制定和維護這些標準。
物理層和數據鏈路層
  1. 物理層

    • 以太網支持多種物理媒體,包括雙絞線(UTP)、光纖和同軸電纜。
    • 典型的雙絞線電纜類型是CAT5e、CAT6和CAT7。
    • 光纖用于需要更長距離和更高帶寬的連接。
  2. 數據鏈路層

    • 使用MAC(媒體訪問控制)地址進行設備識別。
    • 采用CSMA/CD(載波偵聽多路訪問/沖突檢測)機制來管理網絡訪問,特別是在半雙工模式下(現代全雙工以太網中CSMA/CD已不再使用)。
以太網幀
  • 幀結構:典型的以太網幀包括以下部分:
    • 前導碼(Preamble):用于幀同步。
    • 幀起始定界符(SFD):標志幀的開始。
    • 目標MAC地址:接收設備的MAC地址。
    • 源MAC地址:發送設備的MAC地址。
    • 類型/長度:標識上層協議或數據長度。
    • 數據和填充:實際傳輸的數據,如果數據不足46字節,則使用填充字節。
    • 幀校驗序列(FCS):用于錯誤檢測的校驗碼。
常見以太網類型
  1. 10BASE-T:10 Mbps,通過雙絞線電纜傳輸,最大距離100米。
  2. 100BASE-TX(Fast Ethernet):100 Mbps,通過雙絞線電纜傳輸,最大距離100米。
  3. 1000BASE-T(Gigabit Ethernet):1 Gbps,通過雙絞線電纜傳輸,最大距離100米。
  4. 10GBASE-T:10 Gbps,通過雙絞線電纜傳輸,最大距離55-100米,具體取決于電纜類型。
  5. 光纖以太網:如1000BASE-SX(短距離多模光纖),1000BASE-LX(長距離單模光纖),適用于更長的距離和更高的帶寬需求。
以太網的優勢
  1. 高帶寬和低延遲:能夠支持從10 Mbps到100 Gbps及以上的帶寬需求。
  2. 廣泛的兼容性和標準化:基于IEEE標準,確保不同廠商設備之間的互操作性。
  3. 簡便的網絡結構:易于安裝和擴展,適用于各種規模的網絡。
  4. 成本效益:相對于其他專有網絡技術,設備和布線成本較低。
總結

以太網是現代計算機網絡的基礎技術,提供高效、可靠的局域網連接。它的發展和標準化使得各種網絡設備能夠互通,廣泛應用于家庭、企業和數據中心網絡。通過不同類型的以太網技術,可以滿足從小型局域網到大型企業網絡和數據中心的各種需求。

  • 以太網中的“以太”一詞,源于19世紀物理學中的假想概念,代表了一種無形的、全能的傳輸介質。盡管物理學中的“以太”概念已經被否定,但這一名稱在網絡技術中被保留下來,象征著以太網技術中數據無形傳輸的特性。以太網以其高效、可靠和標準化的特性,成為了現代局域網的基礎。

1.1.3)問題03:以太網中的幀長

以太網幀(Ethernet frame)是以太網中傳輸數據的基本單位。幀的長度,包括幀頭、數據部分和幀尾,總共必須在某個范圍內,以確保網絡的正常運行。以下是關于以太網幀長度的詳細信息:

以太網幀結構

一個標準的以太網幀包括以下部分:

  1. 前導碼(Preamble):7字節,用于幀同步。
  2. 幀起始定界符(SFD, Start Frame Delimiter):1字節,標志幀的開始。
  3. 目標MAC地址:6字節。
  4. 源MAC地址:6字節。
  5. 類型/長度字段:2字節,表示上層協議類型或數據的長度。
  6. 數據和填充:46到1500字節。
  7. 幀校驗序列(FCS, Frame Check Sequence):4字節,用于錯誤檢測。
幀長度限制
  1. 最小幀長度:以太網幀的最小長度為64字節(從目標MAC地址到FCS,包括填充字節)。

    • 原因:最小幀長度的限制是為了確保在共享介質(如集線器)上的沖突檢測(CSMA/CD)機制能夠正常工作。如果幀太短,沖突可能在幀傳輸結束后才被檢測到,這會影響沖突檢測和恢復機制。
    • 填充:如果數據部分不足46字節,需要進行填充(padding)以滿足最小幀長度要求。
  2. 最大幀長度:標準以太網幀的最大長度為1518字節(從目標MAC地址到FCS,不包括前導碼和SFD)。

    • 原因:最大幀長度的限制主要是為了確保網絡的公平性和避免單幀占用帶寬時間過長,導致其他設備的傳輸延遲。
    • Jumbo幀:一些網絡(特別是千兆以太網和更高速的網絡)支持更大的幀,稱為Jumbo幀,通常最大長度為9000字節。這些幀可以提高網絡效率,減少CPU負擔,但需要網絡設備支持。
幀長度實例
 7 bytes    1 byte     6 bytes    6 bytes    2 bytes     46-1500 bytes    4 bytes
+--------+----------+----------+---------+-----------+------------------+------+
| Preamble | SFD | Dest MAC | Src MAC | Type/Length | Data & Padding   |  FCS |
+--------+----------+----------+---------+-----------+------------------+------+
  • 最小幀例子:包含最小46字節的數據或填充。

    • 64字節 = 6(目標MAC) + 6(源MAC) + 2(類型/長度) + 46(數據或填充) + 4(FCS)
  • 最大幀例子:包含最大1500字節的數據。

    • 1518字節 = 6(目標MAC) + 6(源MAC) + 2(類型/長度) + 1500(數據) + 4(FCS)
關鍵點
  • 最小幀長:64字節,必要時用填充字節補齊。
  • 最大幀長:1518字節,不包括前導碼和SFD。
  • Jumbo幀:需要設備支持,通常最大9000字節。
總結

以太網幀的長度限制確保了網絡的有效運行和沖突檢測機制的可靠性。通過這些限制,以太網能夠在多種環境下提供高效、可靠的數據傳輸服務。

1.2)編程相關

1.2.1)問題01:浮點數不準確的原因,以及在 Java和 Pyhton中是怎么解決這個問題的

浮點數在計算機中表示方式的限制導致其在某些情況下不夠準確。具體原因主要涉及到以下幾個方面:

1. 有限的精度

浮點數使用有限的位數來表示一個數,這種表示方式限制了能表達的精度。浮點數通常遵循IEEE 754標準,該標準定義了浮點數的格式和精度。以32位單精度浮點數為例,它由1位符號位、8位指數位和23位尾數(小數部分)位組成。這些位數只能表示有限范圍內的數字,并且只能以有限的精度表示它們。

2. 二進制表示

浮點數在計算機中以二進制(基數為2)的形式存儲,而很多十進制小數無法精確地用二進制表示。例如,十進制的小數0.1在二進制中是一個無限循環小數:

0.1 (decimal) = 0.00011001100110011001100110011... (binary)

由于計算機存儲位數有限,必須截斷這個二進制小數,從而引入誤差。

3. 舍入誤差

由于浮點數的有限精度,進行運算時常常需要舍入。例如,兩個浮點數相加、相乘時,結果可能需要舍入到可表示的最接近的浮點數。這種舍入會導致微小的誤差累積,在大量計算或多次運算后,誤差可能變得顯著。

4. 浮點數運算的非結合性

浮點數運算并不總是符合數學上的結合律。例如,對于浮點數,(a + b) + c 不一定等于 a + (b + c)。這是因為每次運算都可能引入舍入誤差,從而影響結果。這種非結合性會在復雜計算中積累誤差。

示例

考慮以下Python代碼示例:

print(0.1 + 0.2)

你可能期望輸出是0.3,但實際輸出可能是0.30000000000000004。這是因為0.1和0.2都無法精確表示為二進制浮點數,在相加時引入了舍入誤差。

應對方法
  1. 提高精度:在某些應用中,可以使用64位雙精度浮點數(double),它提供了更高的精度。然而,盡管雙精度浮點數比單精度浮點數精確得多,但它仍然不能完全避免舍入誤差。

  2. 使用定點數:對于某些特定應用,特別是財務計算,可以使用定點數表示。這種方法將小數點固定在某一位置,通過整數運算來避免浮點數的舍入誤差。

  3. 使用高精度庫:在需要高精度計算的應用中,可以使用高精度算術庫。例如,Python 的 decimal 模塊提供了比浮點數更高精度的數值計算。

  4. 誤差分析和數值穩定性:在設計算法時,盡量減少舍入誤差的影響。例如,通過重構算法以減少浮點數運算次數,或通過誤差分析來確保最終結果的數值穩定性。

示例:高精度庫

在Python中使用decimal模塊可以顯著提高計算精度。例如:

from decimal import Decimal, getcontext# 設置精度
getcontext().prec = 28# 使用Decimal進行計算
a = Decimal('0.1')
b = Decimal('0.2')
c = a + bprint(c)  # 輸出: 0.3

在這個例子中,decimal模塊能夠準確表示0.1和0.2,并且正確地計算它們的和為0.3,而不會出現浮點數帶來的精度問題。

總結
  • 浮點數不準確的根本原因在于它們在計算機中的表示方式受到二進制表示和有限位數的限制。這些限制導致了一些無法避免的舍入誤差和精度問題。在需要高精度的計算場景中,通常需要采用定點數、高精度算術庫或進行精度控制和誤差分析來減小誤差的影響。

  • Python中的decimal模塊能夠準確表示0.1的原因在于它使用十進制浮點數表示法,避免了二進制表示法帶來的舍入誤差問題。通過直接存儲和操作十進制數值,decimal模塊可以提供更高的精度和更可靠的數值計算結果。

  • Java 中的 BigDecimal 類通過使用十進制浮點數表示法,避免了二進制浮點數表示法帶來的精度誤差問題。它提供了精確的小數表示和高精度的算術運算,適用于需要嚴格精度控制的場合,如財務計算和科學計算。

1.2.2)問題02:Java集合遍歷時的 fail-fast 機制介紹

Java 中的 fail-fast 機制是指在遍歷集合(如 ArrayListHashMap 等)時,如果在遍歷過程中對集合進行結構性修改(如添加、刪除元素),那么會拋出 ConcurrentModificationException。這種機制設計的目的是為了及時檢測并報告可能導致不一致性或錯誤的并發修改。

fail-fast 機制的工作原理

在 Java 集合框架中,許多迭代器都實現了 fail-fast 機制。它們通過維護一個稱為 modCount 的修改計數器來跟蹤集合的結構性修改。

  • modCount 計數器:每當集合被結構性修改時(例如添加或刪除元素),modCount 就會增加。
  • 迭代器中的 expectedModCount:迭代器在創建時會保存當前集合的 modCount,稱為 expectedModCount
  • 一致性檢查:在迭代過程中,迭代器會不斷檢查 modCount 是否等于 expectedModCount。如果不相等,則說明集合在迭代過程中被修改過,迭代器會拋出 ConcurrentModificationException
示例代碼

以下是一個示例,演示了 fail-fast 機制:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class FailFastExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("A");list.add("B");list.add("C");// 創建迭代器Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String element = iterator.next();System.out.println(element);// 嘗試在迭代過程中修改集合if ("B".equals(element)) {list.remove(element);  // 這行代碼將觸發 ConcurrentModificationException}}}
}

在上面的代碼中,list.remove(element) 會在迭代過程中修改集合的結構,因此會導致 ConcurrentModificationException

解決方法

如果需要在迭代過程中修改集合,可以使用以下幾種方法之一:

  1. 使用迭代器的 remove 方法

    • 迭代器提供了安全的 remove 方法,可以在迭代過程中刪除元素而不會觸發 fail-fast 機制。
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;public class FailFastExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("A");list.add("B");list.add("C");// 創建迭代器Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String element = iterator.next();System.out.println(element);// 使用迭代器的 remove 方法if ("B".equals(element)) {iterator.remove();  // 安全地刪除元素}}}
    }
    
  2. 使用 CopyOnWriteArrayList 等并發集合

    • Java 提供了一些并發集合類,如 CopyOnWriteArrayList,它們采用了不同的機制來處理并發修改,不會觸發 fail-fast 機制。
    import java.util.List;
    import java.util.concurrent.CopyOnWriteArrayList;public class FailFastExample {public static void main(String[] args) {List<String> list = new CopyOnWriteArrayList<>();list.add("A");list.add("B");list.add("C");// 創建迭代器for (String element : list) {System.out.println(element);// 可以安全地修改集合if ("B".equals(element)) {list.remove(element);  // 不會觸發 ConcurrentModificationException}}}
    }
    
總結

fail-fast 機制通過在迭代過程中檢測并報告集合的并發修改,幫助開發者及時發現潛在的并發問題。雖然這種機制提高了集合操作的安全性,但在需要并發修改集合時,應該使用迭代器的 remove 方法或并發集合類來避免 ConcurrentModificationException

1.2.3) 問題03:java中的 TheadLocal有哪些副作用

ThreadLocal 是 Java 中用于實現線程本地存儲(Thread-local storage, TLS)的工具類。它可以讓每個線程都擁有自己的數據副本,從而避免了線程安全問題。然而,ThreadLocal 也存在一些副作用,需要注意和避免:

  1. 內存泄漏風險:如果沒有正確管理 ThreadLocal,很容易導致內存泄漏。因為 ThreadLocal 的值是存儲在線程本地的,如果線程長時間不銷毀或者沒有手動清理 ThreadLocal 的值,這些值會一直存在于內存中,無法被垃圾回收器回收。

  2. 容易造成全局狀態:雖然 ThreadLocal 可以保證線程間數據隔離,但過度使用 ThreadLocal 會導致難以追蹤和維護的全局狀態。因為每個線程都有自己的 ThreadLocal 值,過多的 ThreadLocal 變量會導致代碼難以理解和維護。

  3. 可能影響性能:雖然 ThreadLocal 可以提高并發性能,但過多或不合理使用 ThreadLocal 也可能導致性能問題。因為每個線程都有自己的 ThreadLocal 值,當線程數量很多時,ThreadLocal 的管理和維護會帶來額外的開銷。

  4. 線程池使用需要注意:在使用線程池的情況下,ThreadLocal 的使用需要格外小心。因為線程池中的線程會被重復使用,如果 ThreadLocal 的值沒有被正確清理,可能會導致線程間數據泄漏或混亂。

  5. 可能導致上下文切換問題:如果 ThreadLocal 的值在不同線程之間頻繁傳遞,可能會導致線程上下文切換的頻繁發生,影響程序性能。

為避免 ThreadLocal 的副作用,可以采取以下措施:

  • 適度使用 ThreadLocal,避免過多的全局狀態。
  • 注意清理 ThreadLocal 的值,及時釋放不再需要的資源,避免內存泄漏。
  • 在使用線程池的情況下,盡量避免 ThreadLocal 的使用,或者確保每次使用完畢后清理 ThreadLocal 的值。
  • 注意 ThreadLocal 的生命周期管理,避免長時間保持不變的 ThreadLocal 值。

總之,雖然 ThreadLocal 在某些場景下非常有用,但需要注意避免其可能帶來的副作用,合理使用并加以管理。

  • 主要是在 線程池復用時會遇到 臟數據和內存泄露問題,解決辦法就是 及時調用 ThreadLocal的 remove() 方法

二、05.19 周日

2.1)安全相關

2.1.1)問題01:XSS和CSRF的區別和聯系

XSS(Cross-Site Scripting,跨站腳本攻擊)和 CSRF(Cross-Site Request Forgery,跨站請求偽造)是兩種常見的網絡攻擊技術,盡管它們的攻擊方式和目的不同,但都有可能導致嚴重的安全問題。以下是對它們的區別和聯系的詳細解釋:

XSS(Cross-Site Scripting)

目的

  • XSS 的目的是向用戶的瀏覽器注入惡意腳本,從而竊取用戶信息、劫持用戶會話、篡改網頁內容或進行其他惡意操作。

類型

  • 存儲型(Stored XSS):惡意腳本存儲在目標服務器上,所有訪問受感染頁面的用戶都會執行這些腳本。
  • 反射型(Reflected XSS):惡意腳本通過URL參數或表單提交反射到用戶瀏覽器,并立即執行。
  • DOM 型(DOM-based XSS):惡意腳本通過修改頁面的 DOM(文檔對象模型)直接在客戶端執行。

工作原理

  • 攻擊者通過注入惡意腳本到網頁中,當用戶訪問該網頁時,惡意腳本在用戶的瀏覽器中執行,導致用戶信息泄露或其他惡意行為。

防御措施

  • 輸入驗證和輸出編碼:對用戶輸入進行嚴格驗證,并對輸出進行適當的編碼。
  • 使用安全的庫和框架:使用已有的安全庫和框架來處理和防止 XSS 攻擊。
  • Content Security Policy(CSP):通過配置 CSP 限制頁面中可執行的腳本來源。
CSRF(Cross-Site Request Forgery)

目的

  • CSRF 的目的是通過偽造用戶的身份在用戶不知情的情況下向目標網站發送惡意請求,從而執行未授權的操作(如更改用戶設置、轉賬等)。

工作原理

  • 攻擊者誘導用戶在已登錄目標網站的狀態下訪問攻擊者控制的頁面,該頁面包含偽造的請求,利用用戶的身份和已建立的會話執行惡意操作。

防御措施

  • CSRF 令牌:在表單提交時使用唯一的 CSRF 令牌,并在服務器端驗證該令牌。
  • SameSite 屬性:為 cookies 設置 SameSite 屬性,限制跨站請求攜帶 cookies。
  • 雙重提交 cookie:將 CSRF 令牌同時存儲在 cookie 和表單中,并在服務器端進行驗證。
區別和聯系

區別

  • 目標
    • XSS 攻擊目標是用戶,通過在用戶瀏覽器中執行惡意腳本來竊取信息或執行操作。
    • CSRF 攻擊目標是服務器,通過偽造用戶的請求來執行未授權的操作。
  • 攻擊手段
    • XSS 利用網頁中的漏洞注入惡意腳本。
    • CSRF 利用用戶已建立的會話和信任關系偽造請求。
  • 影響范圍
    • XSS 主要影響用戶,可能導致用戶信息泄露和瀏覽器被劫持。
    • CSRF 主要影響服務器,可能導致服務器執行未授權的操作。

聯系

  • 攻擊載體:兩者都可以通過用戶的瀏覽器作為攻擊載體。
  • 組合攻擊:XSS 和 CSRF 可以結合使用,攻擊者可以先利用 XSS 獲取用戶的認證信息或 CSRF 令牌,再通過 CSRF 發起進一步攻擊。
總結

XSS 和 CSRF 是兩種不同的網絡攻擊技術,但它們都依賴于用戶的瀏覽器作為攻擊媒介。理解它們的區別和聯系,有助于更好地設計防御策略,保護應用程序和用戶免受這些攻擊的侵害。通過輸入驗證、輸出編碼、CSRF 令牌、SameSite 屬性等措施,可以有效防御這些攻擊。

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

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

相關文章

lenovo聯想小新Pro 16 APH8 2023款(83AR)筆記本電腦原裝出廠Windows11系統鏡像安裝包下載

恢復出廠開箱狀態OEM預裝win11系統&#xff0c;自帶恢復重置初始化還原功能 下載鏈接&#xff1a;https://pan.baidu.com/s/1n_mPM4ZrLPrmXpCTukuyCQ?pwdmnwj 提取碼&#xff1a;mnwj 聯想原裝系統自帶所有驅動、出廠主題壁紙、系統屬性聯機支持標志、Office辦公軟件、聯想…

王安石,變革年代的文學巨匠

王安石&#xff0c;字介甫&#xff0c;號半山&#xff0c;生于北宋真宗天禧五年&#xff08;公元1021年&#xff09;&#xff0c;卒于哲宗元佑元年&#xff08;公元1086年&#xff09;&#xff0c;享年66歲。他是中國歷史上杰出的政治家、思想家、文學家和改革家&#xff0c;其…

2024年電工杯A題論文首發+摘要分享+問題一代碼分享

問題一論文代碼鏈接&#xff1a;https://pan.baidu.com/s/1kDV0DgSK3E4dv8Y6x7LExA 提取碼&#xff1a;sxjm --來自百度網盤超級會員V5的分享 園區微電網風光儲協調優化配置 摘要&#xff1a;園區微電網由風光發電和主電網聯合為負荷供電&#xff0c;為了盡量提高風光電量的…

python ofd轉pdf及圖片

本文部分內容參考&#xff0c;如有侵權請聯系刪除&#xff1a;使用 easyofd 解析ofd 文件_python模塊easyofd如何使用-CSDN博客 背景需求&#xff1a;需要將郵箱中得ofd格式發票提取出來轉換成pdf或者圖片。 在網上搜了發現使用pyofd包&#xff0c;安裝之后使用各種問題&…

.NET 一款兼容Exchange獲取密鑰的工具

01閱讀須知 此文所提供的信息只為網絡安全人員對自己所負責的網站、服務器等&#xff08;包括但不限于&#xff09;進行檢測或維護參考&#xff0c;未經授權請勿利用文章中的技術資料對任何計算機系統進行入侵操作。利用此文所提供的信息而造成的直接或間接后果和損失&#xf…

SCSS基本使用:構建高效、可維護的CSS架構

SCSS基本使用&#xff1a;構建高效、可維護的CSS架構 SCSS&#xff08;Sassy CSS&#xff09;是一個流行的CSS預處理器&#xff0c;它擴展了CSS的功能&#xff0c;提供了變量、嵌套規則、混合&#xff08;Mixins&#xff09;、函數等強大的編程特性&#xff0c;使得開發者能夠編…

甘肅教育雜志社-甘肅教育編輯部

《甘肅教育》來稿要求:    1、本刊對所有稿件有刪改權&#xff0c;如不同意刪改&#xff0c;請投稿時注明&#xff0c;切勿一稿多投&#xff0c;來稿一律文責自負。    2、稿件以word文檔格式&#xff0c;小四號宋體字&#xff0c;1.5倍行距。觀點鮮明&#xff0c;數據…

電商平臺的消費增值模式革新

在當今的電商市場&#xff0c;用戶留存和粘性是各大平臺競相追求的目標。而消費增值模式&#xff0c;以其獨特的激勵機制&#xff0c;正逐漸成為電商平臺吸引和留住用戶的新策略。 一、消費即投資&#xff1a;創新的返利機制 在傳統的電商消費中&#xff0c;消費者完成交易后&…

小阿軒yx-FTP文件傳輸服務

小阿軒yx-FTP文件傳輸服務 協議 用來上傳和下載實現遠程共享文件統一管理文件 原理 控制文件的雙向傳輸&#xff0c;是一個應用程序工作在TCP/IP協議簇的提高文件傳輸的共享性和可靠性使用C/S模式的工作方式連接同時處理服務器和客戶端的連接命令和數據傳輸將命令和數據分…

【NumPy】NumPy實戰入門:線性代數(dot、linalg)與隨機數(numpy.random)詳解

&#x1f9d1; 博主簡介&#xff1a;阿里巴巴嵌入式技術專家&#xff0c;深耕嵌入式人工智能領域&#xff0c;具備多年的嵌入式硬件產品研發管理經驗。 &#x1f4d2; 博客介紹&#xff1a;分享嵌入式開發領域的相關知識、經驗、思考和感悟&#xff0c;歡迎關注。提供嵌入式方向…

Modular RPG Hero PBR

-掩碼著色著色器提供了無限的顏色變化。(適用于標準/HDRP/URP 11.0.0) -為劍與盾/雙劍/雙劍姿態提供了簡單的角色控制器。(不包括弓和魔杖控制器)(它是用舊的輸入系統建造的) -HDRP/URP(11.0.0)SRP 100%支持常規著色器和遮罩著色著色器(基于著色器圖形) -具有許多模塊…

rtk技術的使用, test ok

1. 什么是gnss 2 rtk定位

邏輯回歸模型的背景與應用

1.1邏輯回歸模型的背景與應用 邏輯回歸模型&#xff0c;作為一種經典的機器學習方法&#xff0c;起源于統計學領域。在眾多實際應用場景中&#xff0c;邏輯回歸模型都發揮著重要作用&#xff0c;尤其在分類問題中。當我們需要對具有離散特征的數據進行建模和預測時&#xff0c…

五分鐘部署開源運維平臺Spug結合內網穿透實現遠程登錄管理

文章目錄 前言1. Docker安裝Spug2 . 本地訪問測試3. Linux 安裝cpolar4. 配置Spug公網訪問地址5. 公網遠程訪問Spug管理界面6. 固定Spug公網地址 前言 Spug 面向中小型企業設計的輕量級無 Agent 的自動化運維平臺&#xff0c;整合了主機管理、主機批量執行、主機在線終端、文件…

移除元素-力扣

第一種解法&#xff0c;暴力解法&#xff0c;使用兩個for循環一個進行遍歷&#xff0c;一個進行覆蓋&#xff0c;代碼如下&#xff1a; class Solution { public:int removeElement(vector<int>& nums, int val) {int size nums.size();for(int i 0; i < size; …

C語言中的 ?: :三元運算符詳解

C語言中的 ?: &#xff1a;三元運算符詳解 在C語言的浩瀚代碼海洋中&#xff0c;三元運算符&#xff08;?:&#xff09;如同一位優雅的舞者&#xff0c;以簡潔的姿態完成條件判斷與賦值的雙重任務。它以問號&#xff08;?&#xff09;和冒號&#xff08;:&#xff09;這兩個…

Linux完整版命令大全(九)

4. linux壓縮備份命令 ar 功能說明&#xff1a;建立或修改備存文件&#xff0c;或是從備存文件中抽取文件。語  法&#xff1a;ar[-dmpqrtx][cfosSuvV][a<成員文件>][b<成員文件>][i<成員文件>][備存文件][成員文件]補充說明&#xff1a;ar可讓您集合許多…

Spring boot 注入成員變量HttpServletRequest的原理

前言 最近做項目&#xff0c;springboot項目&#xff0c;本來我們在controller的requestmapping取參數值或者返回寫時&#xff0c;使用方法參數&#xff0c;但是發現老項目直接注入了成員變量&#xff0c;Spring本身是單例的&#xff0c;如果是成員變量注入&#xff0c;那么也…

【C語言】指針(三)

目錄 一、字符指針 1.1 ? 使用場景 1.2 ? 有關字符串筆試題 二、數組指針 2.1 ? 數組指針變量 2.2 ? 數組指針類型 2.3 ? 數組指針的初始化 三、數組指針的使用 3.1 ? 二維數組和數組名的理解 3.2 ? 二維數組傳參 四、函數指針 4.1 ? 函數的地址 4.2 ? 函數…

JAVA面試題大全(十一)

1、為什么要使用 hibernate&#xff1f; 對JDBC訪問數據庫的代碼做了封裝&#xff0c;大大簡化了數據訪問層繁瑣的重復性代碼基于jdbc的主流持久化框架&#xff0c;是一個優秀的ORM實現&#xff0c;很大程度的簡化了dao層的編碼工作使用java的反射機制性能好&#xff0c;是一個…