成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

e簽寶面試,被問住了!

開發 前端
e簽寶面試問的技術細節不多,但涉及的知識點比較廣,因此也很考驗應聘者的綜合技術能力,冰凍三尺非一日之寒,只有日常不斷的積累,才能在面試的那一刻發揮出耀眼的光芒,

1、自我介紹

在自我介紹時需要講清楚以下 4 點:

  • 你是誰?
  • 你會什么技能?
  • 使用這些技能做出過什么項目或成績?(如果有編程大賽的經歷更好)
  • 你的優勢是啥?為什么我們要用你?(可以講解你的技術棧和企業技術棧的比較匹配)

2、靜態方法和普通方法的區別?

靜態方法和普通方法的區別主要體現在以下 2 點:

  • 靜態方法是屬于類的,而普通方法是屬于對象的。因此,靜態方法可以在不創建對象的情況下直接調用,而普通方法則需要先創建對象,然后通過對象來調用。
  • 靜態方法不能訪問非靜態成員變量,而普通方法即可訪問靜態成員變量有可以訪問非靜態成員變量。

3、了解bio/nio/aio嗎?

BIO、NIO、AIO 三者都是用來實現 IO(Input/Output)操作的,它們的區別如下:

  • BIO 傳統的 java.io 包,它是基于流模型實現的,交互的方式是同步、阻塞方式,也就是說在讀入輸入流或者輸出流時,在讀寫動作完成之前,線程會一直阻塞在那里,它們之間的調用是可靠的線性順序。它的優點就是代碼比較簡單、直觀;缺點就是 IO 的效率和擴展性很低,容易成為應用性能瓶頸。
  • NIO 是 Java 1.4 引入的 java.nio 包,提供了 Channel、Selector、Buffer 等新的抽象,可以構建多路復用的、同步非阻塞 IO 程序,同時提供了更接近操作系統底層高性能的數據操作方式。
  • AIO 是 Java 1.7 之后引入的包,是 NIO 的升級版本,提供了異步非堵塞的 IO 操作方式,因此人們叫它 AIO(Asynchronous IO),異步 IO 是基于事件和回調機制實現的,也就是應用操作之后會直接返回,不會堵塞在那里,當后臺處理完成,操作系統會通知相應的線程進行后續的操作。

簡單來說:BIO 就是傳統 IO 包,產生的最早;NIO 是對 BIO 的改進提供了多路復用的同步非阻塞 IO,而 AIO 是 NIO 的升級,提供了異步非阻塞 IO。

4、Spring中創建Bean的方法?

注意這里說的是 Spring 中創建 Bean 的方法,而不是 Spring Boot 中創建 Bean 的方法,所以千萬不要答錯了。Spring 中創建 Bean 最常見的 2 種方法如下:

通過 Spring XML 中配置標簽來實現。

通過 @Component/@Service/@Controller/@Repository 等注解來實現。

具體實現如下。

(1)通過Spring XML實現

在 Spring XML 中添加如下配置:

<bean id="user" class="site.javacn.entity"/>

(2)通過注解實現

比如以下代碼實現:

@Component
public class User{
}

需要注意的是,使用注解的方式需要在 Spring XML 中配置掃描路徑才行,如下所示:

<content:component-scan base-package="site.javacn.demo"></content:component-scan>

5、講講集合類?

Java 中的集合類主要有兩大部分:Collection 和 Map,而 Collection 中有包含了 Set、Queue 和 List,如下圖所示:

圖片其中最常用類是 List、Set 和 Map。

  • List(列表):List 是一個有序集合,允許重復元素。常見的 List 實現類包括 ArrayList、LinkedList 和 Vector。ArrayList 基于動態數組實現,它支持隨機訪問和快速查找;LinkedList 基于鏈表實現,支持高效的插入和刪除操作;Vector 是一個線程安全的 List,性能較差,通常不推薦使用。
  • Set(集):Set 是一個不允許重復元素的集合。常見的 Set 實現類包括 HashSet、LinkedHashSet 和 TreeSet。HashSet 是基于哈希表實現,它提供了 O(1) 的插入、刪除和查找操作;LinkedHashSet 在 HashSet 的基礎上保持了元素的插入順序;TreeSet 是基于紅黑樹實現,它可以保持元素的自然順序或者通過 Comparator 進行排序。
  • Map(映射):Map 是一種鍵值對(key-value)的映射表。常見的 Map 實現類包括 HashMap、LinkedHashMap 和 TreeMap。HashMap 是基于哈希表實現,它提供了 O(1) 的插入、刪除和查找操作;LinkedHashMap 在 HashMap 的基礎上保持了鍵值對的插入順序;TreeMap 是基于紅黑樹實現,可以按照鍵的自然順序或者通過 Comparator 進行排序。

6、說說ThreadLocal?

ThreadLocal 是 Java 中的一個線程本地變量類。它提供了一種簡單的方式來維護線程的私有變量,每個線程都可以獨立訪問自己的變量副本,互不干擾。

ThreadLocal 類的主要作用是解決多線程環境下共享變量的線程安全問題。在多線程應用程序中,如果多個線程共享同一個變量,可能會出現線程安全問題,例如競態條件(Race Condition)和數據爭用(Data Contention)。通過使用 ThreadLocal,可以將變量綁定到當前線程,確保每個線程都擁有自己的變量副本,從而避免線程間的沖突。

ThreadLocal 的使用方式相對簡單。首先,需要創建一個 ThreadLocal 對象,并使用泛型指定變量的類型。然后,可以通過調用 ThreadLocal 對象的方法來訪問和修改變量副本。每個線程通過 ThreadLocal 對象訪問的變量都是線程私有的,不會受到其他線程的干擾。ThreadLocal 的常用方法包括:

  • get():獲取當前線程的變量副本。
  • set(value):設置當前線程的變量副本為指定的值。
  • remove():移除當前線程的變量副本。
  • initialValue():提供一個初始值的方法,可以通過子類重寫該方法來自定義初始值。

需要注意的是,ThreadLocal 只能在當前線程內部訪問變量,其他線程無法直接訪問。每個線程都需要通過 ThreadLocal 對象來獲取和修改變量副本。此外,為了避免內存泄漏,使用完 ThreadLocal 后應該及時調用其 remove() 方法,清理當前線程的變量副本。

ThreadLocal 在很多場景下都非常有用,例如在 Web 應用程序中存儲用戶的會話信息、在數據庫連接池中維護每個線程的數據庫連接等。它為線程之間的數據隔離提供了一種簡潔而有效的解決方案。

7、Redis淘汰策略有哪些?

Redis 淘汰策略是指, 當 Redis(運行)內存被使用完時,也就是當 Redis 的運行內存,已經超過 Redis 設置的最大內存之后,Redis 將采用內存淘汰機制來刪除符合條件的鍵值對,以此來保障 Redis 的正常運行。Redis 4.0 之前有以下 6 種淘汰機制(也叫做內存淘汰策略):

  • noeviction:不淘汰任何數據,當內存不足時,新增操作會報錯,Redis 默認內存淘汰策略;
  • allkeys-lru:淘汰整個鍵值中最久未使用的鍵值;
  • allkeys-random:隨機淘汰任意鍵值;
  • volatile-lru:淘汰所有設置了過期時間的鍵值中最久未使用的鍵值;
  • volatile-random:隨機淘汰設置了過期時間的任意鍵值;
  • volatile-ttl:優先淘汰更早過期的鍵值。

在 Redis 4.0 版本中又新增了 2 種淘汰機制:

  • volatile-lfu:淘汰所有設置了過期時間的鍵值中,最少使用的鍵值;
  • allkeys-lfu:淘汰整個鍵值中最少使用的鍵值。

其中 allkeys-xxx 表示從所有的鍵值中淘汰數據,而 volatile-xxx 表示從設置了過期鍵的鍵值中淘汰數據。所以,現在 Redis 的版本中有 8 種內存淘汰策略。

更多詳情請查看:https://www.javacn.site/interview/redis/redis_memory.html

8、說下對JVM的了解?

JVM(Java Virtual Machine,Java虛擬機)是 Java 程序的運行環境,它負責將 Java 字節碼翻譯成機器代碼并執行。也就是說 Java 代碼之所以能夠運行,主要是依靠 JVM 來實現的。

JVM 整體的大概執行流程是這樣的:

  • 程序在執行之前先要把 Java 代碼轉換成字節碼(class 文件),JVM 首先需要把字節碼通過一定的方式類加載器(ClassLoader) 把文件加載到內存中運行時數據區(Runtime Data Area);
  • 但字節碼文件是 JVM 的一套指令集規范,并不能直接交個底層操作系統去執行,因此需要特定的命令解析器,也就是 JVM 的執行引擎(Execution Engine)會將字節碼翻譯成底層系統指令再交由 CPU 去執行;
  • 在執行的過程中,也需要調用其他語言的接口,如通過調用本地庫接口(Native Interface) 來實現整個程序的運行,如下圖所示:

所以,整體來看, JVM 主要通過分為以下 4 個部分,來執行 Java 程序的,它們分別是:

  • 類加載器(ClassLoader)
  • 運行時數據區(Runtime Data Area)
  • 執行引擎(Execution Engine)
  • 本地庫接口(Native Interface)

更多詳情請查看:https://www.javacn.site/interview/jvm/jvm.html。

9、詳細說下堆區?

在 JVM(Java虛擬機)中,堆區(Heap)是用于存儲對象實例的一塊內存區域。它是 Java 程序運行時內存的一部分,用于動態分配和管理對象的內存。堆區具有以下特點:

  • 對象實例存儲:堆區主要用于存儲 Java 程序中創建的對象實例。每當使用 new 關鍵字創建一個對象時,對象將被分配到堆區中。堆區中的對象可以動態地創建和銷毀,不需要程序員手動管理內存。
  • 動態內存分配:堆區采用動態內存分配方式,可以在程序運行時根據需要動態地分配內存空間給對象。這使得程序能夠靈活地創建和使用對象,無需靜態預先分配內存。
  • 垃圾回收:堆區是垃圾回收器的主要工作區域。當對象不再被引用或不可達時,垃圾回收器會自動回收該對象所占用的內存空間。垃圾回收器負責在堆區中識別不再使用的對象,并釋放它們占用的內存,從而回收資源。
  • 分代結構:堆區通常被劃分為不同的代(Generation)。通常,堆區分為新生代(Young Generation)和老年代(Old Generation)。新生代用于存放新創建的對象,而老年代用于存放存活時間較長的對象。這種分代結構可以提高垃圾回收的效率。
  • 內存管理:堆區的內存管理由垃圾回收器負責。垃圾回收器會根據需要進行內存分配和回收,以保證堆區的可用內存能夠滿足對象的創建和存儲需求。程序員不需要顯式地管理堆區的內存,但可以通過調整垃圾回收器的參數來優化垃圾回收的性能。

需要注意的是,堆區是 Java 程序中最大的一塊內存區域,也是所有線程共享的。因此,在多線程環境下,對堆區的訪問需要考慮線程安全性。此外,堆區的大小可以通過 JVM 的啟動參數進行配置,例如 -Xms 和 -Xmx 參數用于指定堆區的初始大小和最大大小。

堆區在 Java 程序中扮演著重要的角色,它提供了靈活的對象存儲和垃圾回收機制,使得 Java 程序能夠有效地管理內存并提供動態的對象創建與銷毀。

10、Nacos中有一個服務掛了再調用它會怎么樣?

Nacos(全稱為"Naming and Configuration Service")是一個開源的分布式服務發現和配置管理平臺,由阿里巴巴集團開發和維護。它旨在幫助開發人員構建和管理微服務架構中的服務注冊、發現和配置的需求。

Nacos 提供的主要功能是注冊中心(服務注冊與發現)和配置中心。

在 Nacos 中,當一個服務掛了(即不可用)后,如果其他服務仍然嘗試調用它,會出現以下情況:

  • 超時等待:調用方可能會在一定的超時時間內等待響應。如果超時時間內沒有收到響應,調用方可以選擇放棄等待或進行重試。
  • 請求失敗:如果調用方無法建立與掛掉服務之間的連接,請求將失敗。這可能是因為掛掉的服務無法響應請求或網絡連接問題。
  • 異常處理:當調用方收到來自掛掉的服務的錯誤響應或異常時,可以根據具體的業務邏輯進行處理。通常,調用方可以選擇進行重試、降級處理或返回錯誤信息給上層調用者。

為了應對服務掛掉的情況,Nacos 提供了一些解決方案:

  • 健康檢查:Nacos 具備健康檢查的功能,可以定期檢測服務的健康狀態。當服務掛掉時,Nacos 可以及時發現并將其標記為不可用,從而避免將請求發送給不可用的服務。
  • 負載均衡:Nacos 可以與負載均衡器(如Ribbon)等組件結合使用,通過負載均衡算法將請求均勻分發給可用的服務實例。當一個服務掛掉時,負載均衡器可以自動將請求轉發給其他可用的服務實例。
  • 服務降級:通過在 Nacos 配置中心配置服務降級規則,可以在服務不可用時,返回一個預設的默認值或執行一個備選邏輯。這樣可以避免整個系統的崩潰,并提供一定程度的可用性。

所以,在 Nacos 中,當一個服務掛掉后,具體的行為和后續處理取決于調用方的實現和配置。可以通過設置合適的超時時間、使用負載均衡、配置健康檢查和服務降級等機制,來提高系統的可用性和容錯性。

11、講講SpringBoot自動裝配的原理?

Spring Boot 的自動裝配(Auto-configuration)是 Spring Boot 框架的核心特性之一。通過自動裝配可以自動配置和加載 Spring Boot 所需的各種組件和功能,從而大大的減少開發人員手動配置的工作。

在傳統的 Spring 應用程序中,我們需要手動配置各種組件,如數據源、Web 容器、事務管理器等。這些配置需要編寫大量的 XML 配置文件或 Java 配置類,增加了開發的工作量和復雜性。而 Spring Boot 的自動裝配通過約定大于配置的原則,根據項目的依賴和配置信息,自動進行配置,使得開發人員無需進行大量的手動配置。

自動裝配原理

Spring Boot 在啟動時,會檢索所有的 Spring 模塊,找到符合條件的配置并應用到應用上下文中。這個過程發生在 SpringApplication 這個類中。Spring Boot 自動裝配主要依靠兩部分:

  • SpringFactoriesLoader 驅動:在啟動過程中會加載 META-INF/spring.factories 配置文件,獲取自動裝配相關的配置類信息。
  • 條件裝配:Spring Boot 不會永遠都自動裝配,它會根據類路徑下是否存在某個名稱符合命名規則的自動裝配類來決定是否進行自動裝配。這就是條件裝配,通過 @Conditional 條件注解完成。

自動裝配的流程請參考:https://www.javacn.site/interview/spring/springboot_autowired.html

12、講講索引的結構?

這里所說的索引結構是指 MySQL 索引實現的數據結構。MySQL 中默認的存儲引擎 InnoDB 的索引是使用 B+ 樹實現的。B+ 樹是一種多路搜索樹,它的葉子節點存儲了所有的數據行信息,葉子節點之間使用指針連接,方便范圍查詢和排序等操作,非葉子節點存儲的是索引字段的值,這樣就可以通過非葉子節點的索引值快速定位到葉子節點的數據了,索引的實現如下圖所示:

B+ 樹優點分析

查詢效率

B+ 樹的非葉子節點不存放實際的記錄數據,僅存放索引,因此數據量相同的情況下,相比即存索引又存記錄的 B 樹,B+ 樹的非葉子節點可以存放更多的索引,因此 B+ 樹可以比 B 樹更「矮胖」,查詢底層節點的磁盤 I/O 次數會更少。

插入和刪除效率

B+ 樹有大量的冗余節點,這樣使得刪除一個節點的時候,可以直接從葉子節點中刪除,甚至可以不動非葉子節點,這樣刪除非常快。B 樹則不同,B 樹沒有冗余節點,刪除節點的時候非常復雜,比如刪除根節點中的數據,可能涉及復雜的樹的變形。B+ 樹的插入也是一樣,有冗余節點,插入可能存在節點的分裂(如果節點飽和),但是最多只涉及樹的一條路徑。而且 B+ 樹會自動平衡,不需要像更多復雜的算法,類似紅黑樹的旋轉操作等。因此,B+ 樹的插入和刪除效率更高。

范圍查詢

因為 B+ 樹所有葉子節點間還有一個鏈表進行連接,這種設計對范圍查找非常有幫助,比如說我們想知道 12 月 1 日和 12 月 12 日之間的訂單,這個時候可以先查找到 12 月 1 日所在的葉子節點,然后利用鏈表向右遍歷,直到找到 12 月12 日的節點,這樣就不需要從根節點查詢了,進一步節省查詢需要的時間。而 B 樹沒有將所有葉子節點用鏈表串聯起來的結構,因此只能通過樹的遍歷來完成范圍查詢,這會涉及多個節點的磁盤 I/O 操作,范圍查詢效率不如 B+ 樹。因此,存在大量范圍檢索的場景,適合使用 B+樹。

更多詳情請查看:https://www.javacn.site/interview/mysql/indeximpl.html

13、講講線程池方面內容?

線程池是一種管理和復用線程資源的機制,它由一個線程池管理器和一組工作線程組成。線程池管理器負責創建和銷毀線程池,以及管理線程池中的工作線程。工作線程則負責執行具體的任務。線程池的主要作用是管理和復用線程資源,避免了線程的頻繁創建和銷毀所帶來的開銷。

Java中線程池的創建方式主要有以下幾種:

  • 使用 ThreadPoolExecutor 類手動創建:通過 ThreadPoolExecutor 類的構造函數自定義線程池的參數,包括核心線程數、最大線程數、線程存活時間、任務隊列等。
  • 使用 Executors 類提供的工廠方法創建:通過 Executors 類提供的一些靜態工廠方法創建線程池,例如 newFixedThreadPool、newSingleThreadExecutor、newCachedThreadPool 等。
  • 使用 Spring 框架提供的 ThreadPoolTaskExecutor 類:在 Spring 框架中可以通過 ThreadPoolTaskExecutor 類來創建線程池。

不同的創建方式適用于不同的場景,通??梢愿鶕嶋H情況選擇合適的方式創建線程池。手動創建 ThreadPoolExecutor 類可以靈活地配置線程池參數,但需要對線程池的各項參數有一定的了解;使用 Executors 工廠方法可以快速創建線程池,但可能無法滿足特定的需求,且容易出現內存溢出的情況;而 Spring 框架提供的 ThreadPoolTaskExecutor 類則只能在 Spring 框架中使用。

更多詳情請查看:https://www.javacn.site/interview/thread/threadpool.html。

14、未來的規劃

當在面試中被問到“未來的規劃”時,你從以下方面回答:

  • 深入學習和應用 Java 生態系統:表達你對 Java 技術的熱情,強調你計劃深入學習 Java 的各種框架、庫和工具。提到你對新的 Java 版本和功能的關注,并計劃在工作中應用它們。
  • 提高編碼技能和代碼質量:強調你的意愿提高編碼技能,遵循最佳實踐和設計模式,編寫高質量的可維護代碼。提到你的興趣學習新的編碼技術和工具,并將其應用到你的工作中。
  • 深入理解系統設計和架構:表達你對系統設計和架構的興趣,并表示你的意愿學習如何構建可擴展、可靠和高性能的Java應用程序。提到你計劃閱讀相關書籍、參與培訓或者加入項目,以提高自己在這個領域的技能。
  • 探索云計算和分布式系統:提到你對云計算和分布式系統的興趣,并表示你計劃學習使用云平臺和分布式技術來構建可擴展的 Java 應用程序。強調你的意愿了解和使用云原生技術,如 Docker 和 Kubernetes。
  • 提升溝通和團隊合作能力:強調你的意愿與團隊成員和其他利益相關者合作,分享知識和經驗,并以有效的方式與他們溝通。表達你的意愿參與代碼審查、團隊討論和知識分享會,以提高整個團隊的效率和質量。
  • 持續學習和追求專業發展:強調你對終身學習的承諾,并提到你計劃通過參加培訓、研討會和技術會議來不斷更新自己的技術知識。提到你的意愿積極參與開源項目、編寫博客或者給技術社區做貢獻。

請記住,這只是一些建議,你可以根據自己的興趣、目標和面試的具體情況進行適當調整。重點在于表達你對 Java 技術的熱情和對自我發展的承諾。

15、平時學習中碰到的難處

當在面試中被問到“平時學習中碰到的難處”時,你可以考慮以下回答:

  • 遇到復雜的概念或技術:提到你在學習過程中可能會遇到一些抽象或復雜的概念,解釋這些概念需要更多的時間和精力去理解和消化。重要的是表達你的解決問題的能力,比如你會通過反復閱讀文檔、查找相關資源、嘗試示例代碼或與他人討論來克服這些困難。
  • 遇到錯誤和調試問題:承認在編程學習中遇到錯誤和調試問題是很常見的。強調你的耐心和決心,解釋你會使用調試工具和日志信息來定位和解決問題。還可以提到你在閱讀錯誤消息、查看堆棧跟蹤和進行逐步調試時的技巧。
  • 學習新技術和工具的挑戰:提到你在學習新技術和工具時可能會遇到挑戰,因為它們可能有陡峭的學習曲線或復雜的配置過程。強調你的自學能力和適應能力,解釋你如何利用官方文檔、在線教程、視頻課程或社區論壇來克服這些挑戰。
  • 時間管理和優先級設置:承認在學習過程中管理時間和設置優先級可能是一個挑戰。解釋你如何使用時間管理工具、制定學習計劃和任務列表,以及如何將重點放在關鍵概念和技能上。強調你的組織能力和決策能力,以確保你能夠高效地學習和掌握新知識。
  • 與他人合作和解決問題:提到你可能會在學習過程中與他人合作,并且合作中可能會遇到一些挑戰,比如溝通問題、合作沖突或技術差異。強調你的團隊合作精神和解決問題的能力,解釋你如何積極參與團隊討論、分享知識和經驗,并與他人合作解決學習中的問題。

無論你遇到的困難是什么,重要的是展示你的積極態度、解決問題的能力和持續學習的動力。面試官更關心你如何應對和克服困難,而不僅僅關注你遇到了什么困難。

16、講講你對設計模式的了解

當校招中聊到設計模式時,可以舉一些常見的設計模式,以及這些設計模式的具體應用,比如以下這些:

  • 工廠模式(Factory Pattern):工廠模式是一種創建型設計模式,它提供了一種創建對象的方式,使得應用程序可以更加靈活和可維護。比如在 Spring 中,FactoryBean 就是一個工廠模式的實現,使用它的工廠模式就可以創建出來其他的 Bean 對象。
  • 單例模式(Singleton Pattern):單例模式是一種創建型設計模式,它保證一個類只有一個實例,并提供了一個全局訪問點。比如在 Spring 中,所以的 Bean 默認是單例的,這意味著每個 Bean 只會被創建一次,并且可以在整個應用程序中共享。
  • 代理模式模式(Proxy Pattern):代理模式是一種結構型設計模式,它允許開發人員在不修改原有代碼的情況下,向應用程序中添加新的功能。比如在 Spring AOP(面向切面編程)就是使用代理模式的實現,它允許開發人員在方法調用前后執行一些自定義的操作,比如日志記錄、性能監控等。
  • 模板方法模式(Template Pattern):模板方法模式是最常用的設計模式之一,它是指定義一個操作算法的骨架,而將一些步驟的實現延遲到子類中去實現,使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。此模式是基于繼承的思想實現代碼復用的。比如在 MyBatis 中的典型代表 BaseExecutor,在 MyBatis 中 BaseExecutor 實現了大部分SQL 執行的邏輯。
  • 觀察者模式(Observer Pattern):定義了一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都會得到通知并自動更新。比如事件驅動、消息傳遞等功能時,可以使用觀察者模式,例如 Spring Event 事件機制。
  • 適配器模式(Adapter Pattern):適配器模式是一種結構型設計模式,它允許開發人員將一個類的接口轉換成另一個類的接口,以滿足客戶端的需求。在 Spring 中,適配器模式常用于將不同類型的對象轉換成統一的接口,比如將 Servlet API 轉換成 Spring MVC 的控制器接口。

小結

e簽寶面試問的技術細節不多,但涉及的知識點比較廣,因此也很考驗應聘者的綜合技術能力,冰凍三尺非一日之寒,只有日常不斷的積累,才能在面試的那一刻發揮出耀眼的光芒,兄弟們,跟著磊哥學起來。

責任編輯:姜華 來源: Java面試真題解析
相關推薦

2023-12-14 12:56:00

鏈式調用代碼

2023-01-18 10:35:49

MySQL數據庫

2012-03-13 11:21:34

索尼AndroidVita OS

2024-11-07 08:28:53

2024-07-29 07:02:00

OpenAIGPT-4oAI

2021-06-27 21:06:47

開發循環依賴

2023-09-08 15:48:13

2021-04-22 12:50:28

數字人民幣支付寶區塊鏈

2015-06-26 09:31:08

E店寶電商ERP

2015-05-28 09:52:21

光纖支付寶

2023-02-17 07:27:28

2015-12-16 17:54:33

E店寶

2022-07-18 10:45:18

安全

2015-04-23 13:33:58

E店寶ERP

2011-12-30 14:13:41

寶通至強E7至強7500

2021-02-05 12:34:33

線程池系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 综合色久 | 精品久久香蕉国产线看观看亚洲 | 91天堂网 | 国产精品精品视频一区二区三区 | 中文在线一区二区 | 干干天天 | 亚洲精品99| 日韩α片| 欧美在线一区二区三区 | 一级在线视频 | 免费在线观看一区二区三区 | 欧美综合精品 | 久久久久欧美 | 久久久精品 | 日韩欧美在线视频观看 | 在线观看国产wwwa级羞羞视频 | 6996成人影院网在线播放 | 黄色在线观看 | 一级黄色片在线免费观看 | 欧美激情久久久 | 日本在线视频不卡 | 99精品久久 | 91网在线观看 | 欧美国产日韩在线观看 | 久久精品av麻豆的观看方式 | 亚洲综合天堂 | 久久久成人精品 | 中文字幕啪啪 | 麻豆视频在线看 | 精品久久香蕉国产线看观看亚洲 | 亚洲成人久久久 | 日本高清aⅴ毛片免费 | 亚州精品天堂中文字幕 | 国产精品资源在线观看 | 国色天香综合网 | 精品国产欧美在线 | 国产成人a亚洲精品 | 1000部精品久久久久久久久 | 夜夜摸夜夜操 | 久久se精品一区精品二区 | 一区二区电影 |