<em id="vo9r9"><object id="vo9r9"><input id="vo9r9"></input></object></em>

<em id="vo9r9"><ruby id="vo9r9"><u id="vo9r9"></u></ruby></em>
<rp id="vo9r9"><acronym id="vo9r9"></acronym></rp>
<tbody id="vo9r9"><noscript id="vo9r9"></noscript></tbody>
<dd id="vo9r9"></dd>

后端研發校招經驗分享

發布時間:2022-05-09 23:12

上成果

校招這件事情為什么能成,拋開每個人可能不同的影響因素,面試時候針對具體的問題去準備是沒有壞處的,刻意練習對我的幫助很大。

回顧走過的“彎路”

背景

  • 大一的時候學了高中最不喜歡的化學,有了轉專業的念頭,但是自己太菜,一開始還想著轉專業學金融,后來發現自己不太適合,但是當時時間已經不多了,匆忙準備了下去轉專業考試,最后面試的時候掛掉了。當時筆試過了以為自己穩了,終究還是太年輕
  • 大二的時候選了雙學位,想著轉不過去就雙學位跨考研究生吧,結果最后意外轉專業成功了,就開始了自己的軟件工程之路,但是代價也是挺慘的,被迫降了一級,因為課程上不完了
  • 大二升大三的暑假開始比賽,有了之前的積累,寫一些web的項目還是比較順手,當時還初生牛犢不怕虎,自己學深度學習,NLP,做了一些深度學習的項目,啥也不懂自己電腦跑模型,主板給燒了?;旧纤械亩紘L試過了,明白自己不適合搞科研,所以在大三上學期結束的時候有了找工作的寫法,但是當時家人還是極力勸阻,讓讀研究生,自己那段時間也很迷茫。因為沒有一個人支持自己工作。
  • 時間來到大三寒假,開始重新系統學習java web,因為打算要去找工作了。彼時的自己屬實焦慮,因為自己的準備實在太少了,常??磁?秃芡砹璩繋c,哈哈哈,找工作的這個決定做了,接下來卻是要走的彎路才剛剛開始。

考研還是工作:也曾舉棋不定

關于這個,其實是我自己不太喜歡上學的氛圍,你可以讓我學習,但是得學習我感興趣的,目光短淺的我選擇了就業,或許研究生會有更加廣闊的天空,但是每個人都有自己要走的路,選擇了就不要后悔。
關于如何選擇,大家可以參考下面的文章:考研還是工作[1]我覺得最后的總結說的已經非常到位了!

春招:投不出去的簡歷

時間過的飛快,當時差不多一二月份開始準備的結果過了一個年各個大廠就開始春招了,自己簡歷還沒開始寫,朋友也在催先寫簡歷試試,但是我自己知道自己當時什么也不會,就一直拖著。當時主要有幾個痛點,相信很多人也會和我走一樣的彎路:
  • 算法題刷的太少,更多時候是一種逃避(想著學哪個不是學,面試都要問,其實算法是校招重中之重)
  • 簡歷上的項目太平庸(普通學生,寫出花了面試官看來也是垃圾,把自己的簡單項目熟悉透了就好)
  • 八股文還沒有系統看完(八股文是看不完的,過上幾遍就好了,重要的是有自己的知識體系)
我一開始講重點放在了八股文,然后是項目,然后是算法,其實這個順序對于校招而言是完全反了,校招更加側重的是你的邏輯能力,而不是你的八股文6不6,但是當時自己是一個人準備的,時間久了很容易就走到了錯誤的方向了。直到五月份到六月份才認識到自己的策略錯了,再這樣下去秋招也沒戲了,只能是第二年的春招了,所以首先做的決定是直接放棄春招了,不去暑期實習了,到時候直接秋招。開始慢慢調整自己準備的重心,轉向算法。

秋招:來不及了,卻意外收獲

是的,當秋招提前批開始的時候我和春招提前批開始是同一個狀態,還是沒有寫出來簡歷,還是沒有拿出手的項目,還是算法不過關。這個時候也開始動搖了,開始懷疑自己這樣不顧一切選擇工作,沒有留考研的后路是不是對的,那些天真的是天天自我懷疑。一邊懷疑一邊還得看。
暑假來了,大家都回去了,寢室里就剩下考研的室友和我兩個人,第一次面試給了字節,面試官很好,居然給過了,當時信心大增,結果二面的時候面試官上來就兩道算法題,做出來一道,問我是不是做過,當場涼涼,隨便為了一下八股文結束了。
字節第一次面試,也是找工作的第一次面試,不能說表現多不好,至少邁出了第一步,之后開始先面小公司,然后小米,然后百度和其他的大廠,那段時間可能是把積攢了一年的好運氣全用了,面試幾乎不掛,也很感謝每一個面試官的手下留情。

總結

個人在秋招的主要競爭力可能還是在數據庫和消息隊列的原理看的比較多,個別廠面的時候 jdk 和 spring 框架也起到一定作用,但是spring這種框架絕對不是重點,也就只有阿里問的深一點,包括依賴注入的源碼以及循環依賴的解決,其余都直接不問。但是中間件比如Redis,MQ 只要項目涉及了基本對應的八股文是沒跑了。

“可復用的套路”

1. 明確大方向

  • 技術方向
  • 準備流程:整體--局部--整體
    1. 圖片說明
    2. 圖片說明
    3. 圖片說明
    4. 之后深入到每一個模塊詳細學習,每一個模塊都要有自己詳細的筆記;堅持固定時間刷題,復習自己寫的算法筆記,畢竟是校招
    5. 最后整體匯總到一個思維導圖,包含所有模塊的重點,用來面試前看。

2. 寫簡歷(寫個初版,一邊準備面試一邊改)

  1. 最終簡歷,在朋友的反復 review 下壓縮成了一頁。
注意點:
  • 別覺得自己看過就往上寫,一定是自己比較熟悉的,自己在沒有任何提示的情況下可以說個大概的才寫上去,那種只是之前學過沒有實際上手的非重點,就盡量不要寫上去,容易給自己挖坑。否則寫太多東西面試前那叫難受,東西太多了,是真的看不完(雖然最后很多面試官基本沒問我列出的那些技能)

3. 面向簡歷準備

可能寫完簡歷之后過一段時間,你會有一種感覺:這說的是我嗎???我熟悉嗎,我深入理解嗎?我寫會這些技能的時候到底在想什么?
其實我在深入每一個模塊學習的時候確實是自以為可以達到深入理解的程度的,畢竟源碼都是debug過的,但是需要看的東西實在是太多了,后面是一定會忘的,所以就是最后總結的時候是要面向簡歷準備的,不要說剛學完的時候多精通。
下面是需要看的一些知識點的提綱,每一個都應該深入理解。最后達到可以自己不借助任何資料寫出來這些提綱,面試說的時候就基本不會卡殼,也就可以自己延伸一些話題,把握面試的主動權。所以最重要的還是知識要成體系。
一開始學快速總覽全局,之后深入每一個細節,最后還要抓住每一個模塊的重點整理出自己的知識框架,就可以去面試了。

基礎(次次重要)(java后端)

每一個點深入進去都可以寫幾本書,我就是因為把握不住,在這部分花費了大量時間,雖然面試基本不卡殼,但是也直接導致我沒有參加春招,所以各位一定要合理分配時間,有些內容該放棄就放棄(比如什么class字節碼解析,各大框架源碼,實在想裝逼看看spring源碼,但是問的也沒那么多(尤其是校招不重視框架源碼掌握)等等)。

重點

  • java
    • Thread:4個創建方式、中斷、狀態以及狀態變化涉及的方法
    • 線程池:Excutors的缺點,參數含義,阻塞隊列的選擇,參數的選擇,常見拒絕策略
    • ThreadLocal:實現源碼,內存泄漏,子線程想共享怎么辦
    • volatile:作用,實現原理,MESI,為什么有了MESI還要volatile(MESI 實現可見性-->store buffer + 失效隊列 實現加速,但是帶來不一致-->讀寫屏障解決不一致-->volatile手動設置屏障位置)。
    • synchronized:使用(方法和代碼塊使用的鎖,阻塞,條件等待),字節碼(方法和代碼塊的區別),JVM實現原理ObjectMonitor(數據結構,加鎖流程),鎖的升級流程
    • Lock
    • JMM:邏輯還是物理存在,導致的問題。
    • Serial:單線程下,即使CPU指令重排,看起來沒有重排
    • happens-before:多線程下,即使不是按照順序執行,看起來是順序執行
    • AQS:繼承需要實現方法,如何實現可重入(state字段),如何實現公平和非公平,同步隊列和條件隊列(Condition)
    • 常見Lock的實現
    • 和synchronized的對比:使用上,實現原理上,效率上,使用場景選擇
    • List
    • Map
    • Set
    • Queue
    • ArrayList
    • LinkedList
    • 數組和List之間的相互轉換,注意事項
    • HashMap:數據結構,put流程(死循環原因),擴容流程(前面都是7和8對比說),幾個參數(容量2的冪,refactor 0.75,8,6,64)默認值原因,線程安全(null的時候)
    • Collections.synchronizeMap(),HashTable(問題,鎖粒度大)
    • ConcurrentHashMap:7分段鎖原理,鎖粒度;8的CAS+ synchronized以及所粒度;轉移節點,協助擴容。count 的CAS并發計算,
    • TreeMap
    • HashSet
    • TreeSet
    • BlockingQueue
    • 面向對象和面向過程的本質區別,SOLID原則,面向對象的特性。
    • 接口和抽象類的區別
    • 字符串常見的問題,以及不同版本中新建字符串時候的區別。
    • 包裝類和基本類型的自動裝包拆包,包裝類的緩存,互相轉換方法
    • final修飾變量,方法,類。transient作用。
    • Object的方法以及使用注意
    • 泛型實現原理、泛型擦除
    • 異常:繼承體系,try catch finally 誰可以省略,return在某個地方是否會執行
    • 反射:原理(動態獲取類或者對象的字段以及方法,可以獲取private字段)
    • 動態代理:JDK和cglib的實現原理區別,性能對比,spring里面默認什么,如何切換。
    • 新特性:8 的lamda和Stream,方法引用;9 的String使用byte,接口的私有方法
    • 基礎
    • 容器(基本都是源碼級別理解的要求,自己實現需要注意什么,各個培訓機構和八股文其實講爛了,多看幾遍就記住了)
    • 并發編程(線程池基本是別問的,再寫個并發編程的代碼)
    • 常見參數含義,Xms,Xmx,Xmn,Xss,SurvivorRatio
    • 動態年齡判斷機制
    • 空間擔保機制
    • 為什么需要GC,為什么其他語言不需要GC
    • 垃圾定位:引用計數,可達性分析,GCroot是誰
    • 區域劃分
    • 3個算法:使用區域,優缺點
    • 垃圾回收器:特點,流程,使用場景,不同JDK默認的垃圾回收器,三色標記(增量更新,原始快照)
    • 逃逸分析,標量替換
    • 共享(堆,方法區),獨享(虛擬機棧,本地方法棧,程序計數器)
    • JDK678中方法區的實現改進
    • 字符串常量池在6和7 的區別,intern() 的實現機制差別
    • 加載,分配內存,設置對象頭,執行init方法
    • 對象頭的構成
    • 加載鏈接(驗證準備解析)初始化,初始化時機,準備階段做什么,類卸載的條件。
    • 雙親委派源碼,常見類加載器,自定義類加載的方式
    • Tomcat如何打破,如何實現熱加載
    • 類加載
    • 對象實例化
    • JVM內存模型
    • GC理論
    • JVM參數調優
  • 設計模式(最簡單的例子,在自己的項目里面使用策略模式替換了多種類型的時候 if else代碼塊,使得系統變得更加易擴展,也可以結合JDK源碼里面和Spring源碼里面涉及到的一些模式展開描述)
    • FutureTask
    • 餓漢
    • 懶漢:
    • 雙重檢查 + volatile + synchronized
    • 靜態內部類:可以防止反射攻擊
    • 枚舉類
    • 單例模式(可能會手寫,最好掌握,理解每一個字段的作用)
    • 工廠模式
    • 策略模式
    • 適配器模式
    • 責任鏈模式
    • 模板方法
    • 監聽者模式
  • MySQL(這個要理解好還真得看看書,視頻和專欄都太簡略了,我基本比較好評的書、視頻、專欄都看了)
    • update:涉及到緩存頁的讀取,bufferpool 鏈表的修改,undolog的更新,數據頁的修改,事務提交時日志的兩階段提交
    • select:涉及到緩存頁的讀取,bufferpool 鏈表的修改
    • 定位
    • 解決
    • show processlist
    • 設置慢查詢日志超時時間
    • 偶爾:buffer pool小,redolog buffer小,
    • 頻繁:explain 看是否有索引,是否用對索引。
    • buffer pool實現原理:內存結構,三個鏈表,描述數據,LRU冷熱數據優化
    • 表空間,數據區組,數據區,頁,頁目錄,槽,行記錄
    • 行格式(變長字段,null字段,數據頭,三個隱藏字段,真實數據)
    • 主從復制:三個線程執行流程。
    • binlog:意義,參數設置
    • redolog:2階段提交,redolog buffer/block
    • undolog:記錄的內容
    • 三者區別
    • 事務特性,AID實現C,如何實現
    • 隔離級別,如何實現
    • MVCC = readview + undolog
    • 實現數據結構,為什么用這個
    • 優化理論
    • innodb和MyISAM的區別
    • SQL題目(基本刷題,看書沒用):連表查詢,分組查詢,SQL關鍵字的執行順序
    • 存儲引擎
    • 索引
    • 事務
    • 日志
    • 高可用
    • InnoDB實現原理
    • 慢查詢
    • SQL完整流程
    • BufferPool
  • Redis (最常見的就是數據結構的實現,使用場景以及持久化的一些原理,緩存問題)
    • 數據庫
    • Redis
    • zk
    • nx
    • lua
    • 實現原理
    • gossip 原理
    • 如何實現自動切換
    • raft 選哨兵的主
    • 客戶端使用時候的注意事項
    • 全量復制原理
    • 增量復制原理
    • 先改緩存后改數據庫
    • 先改數據庫后改緩存
    • 先刪緩存后改數據庫
    • 先改數據庫后刪緩存(cache aside)
    • 緩存雪崩
    • 緩存擊穿
    • 緩存穿透
    • 自帶的
    • lua腳本
    • aof
    • rdb
    • 混合持久化
    • 各自的實現編碼的方式
    • sds的改進,和c、java對比,
    • 跳表的實現,
    • 字典和跳表為什么結合使用,zset分別使用key以及分數查詢時候的時間復雜度,實現原理
    • 為什么不使用紅黑樹或者B+樹而使用跳表
    • Redis 和 memcache 的對比
    • 數據結構:常見五個記住就好,以及一些簡單的命令
    • 編碼格式:
    • 應用場景
    • 持久化
    • 事務
    • 緩存問題以及常見解決方案
    • 數據庫和緩存不一致方案
    • 主從復制
    • 哨兵
    • 集群
    • 分布式鎖
  • spring (培訓機構最喜歡講的,比較偏向社招,不要太沉迷,說的就是我)
    • IOC 和 依賴注入的源碼實現
    • AOP的源碼實現
    • spring 的啟動流程
    • 循環依賴的解決(二層緩存可以嗎,一層呢)
    • 事務的實現原理
    • 事務的傳播機制,隔離級別
    • Bean的生命周期,線程是否安全
    • spring的擴展點
  • springboot (下面的三個就基本夠了)
    • 自動配置的原理
    • 啟動的原理
    • starter的原理
  • mq消息隊列
    • rocketMQ事務消息,半消息隊列
    • 重試隊列和死信隊列
    • rocketMQ組件啟動流程,心跳機制,拉取路由實際,負載均衡算法
    • commitlog,零拷貝(和kafka的區別),consumequeue,index file
    • rocket高可用,dledger。raft算法,主從同步,落盤機制
    • rabbitMQ 和 rocketMQ 和 kafka的對比,使用場景
    • 常見問題:消息不丟,消息有序,消息不重,消息積壓的解決方案
    • 實現原理(時間不夠挑一個重點學,我學的rocket,因為用java實現的)
  • 計算機網絡:“小林coding”的電子書,應對普通研發崗綽綽有余(至少我面的這些是這樣的)。
    • 四層七層模型分別作用
    • 應用層:http請求響應組成,常見字段,狀態碼,http 1、1.1、2、3的區別,https流程,
    • 傳輸層:TCP和UDP區別,TCP握手回收流程,狀態變化,每一次消息丟失的補救措施,頭部字段。UDP如何實現安全
    • 網絡層:IP層
    • 數據鏈路層
    • URL回車整個流程
    • 網絡安全:中間人攻擊,CSRF跨站請求偽造,XSS跨站腳本攻擊,SYN Flood攻擊 ,DNS劫持,對應的解決辦法
  • 操作系統:CPU緩存行,執行一個c程序的流程,虛擬內存,分頁分段段頁式,進程線程協程,PCB組成,進程間通信,線程間通信
  • Linux:
    • 常見命令使用:top,iostat,lsof,ping,
    • 命令原理,kill原理,fork()函數原理
    • 僵尸進程,孤兒進程
    • 索引目錄項,索引節點inode,數據塊
    • 硬鏈接(ln -s , 同一個INODE,多個指向自己),軟鏈接(不同INODE,文件里面放的文件指針)

非重點

    • reactor + 多路復用
    • 零拷貝的幾個實現方式,netty的具體實現
    • 源碼流程
    • netty 如何解決粘包拆包,斷線重連,JDK的空輪詢
    • ByteBuffer和ByteBuf的區別是什么
  • springmvc
    • 運行流程是什么
    • RequestMapping的原理是什么
  • mybatis
    • 兩個緩存的作用是什么
    • #$的區別
    • 設計模式
  • 微服務
    • 為什么使用微服務,又是優點和缺點
    • 服務如何拆分
  • docker (字節做go的部門可能會問問)
    • 解釋namespace
    • 解釋cgroup
  • Git (沒問過我)
  • maven (沒問過我)

項目(次重要)

  • 博客(??偷捻椖?,自己改了一些,面試主要是講一些自己改動的部分)
    • 數據流,項目架構,主要的項目難點,
    • 消息隊列選型對比
    • 緩存選型對比
    • Redis在項目里面的使用,常見數據類型,使用場景,實現原理
    • RocketMQ 的事務消息的實現原理,保證消息不丟失和有序性
    • 為什么使用websocket + netty 替換 瀏覽器輪詢的方式,這是單體項目,分布式下還適用嗎,不適用怎么做,重新設計一下。
    • netty 的源碼流程,好處(問的時候都是讓我一個人說,問題很泛,將的時候就講reactor架構,再將啟動流程,再講底層NIO 以及 Linux 的多路復用三者之間的關聯是如何相互對應和調用的,一般都會問多路復用怎么樣。最后有機會說說netty都做了哪些優化)
    • 項目性能提升的手段
    • docker 的部署方式,docker 的原理(cgroup,namespace)
    • 常見問題
  • 比賽項目(一個微服務項目)
    • rabbitMQ 如何實現
    • 項目地址[2]
    • 常見問題
  • 秒殺(最后沒敢寫),其實當時也是花了不少時間準備,怎么說呢,大家都說秒殺爛大街但是還是在用,因為可以選擇的可以說的項目比較少,還是看自己有沒有其他選擇吧(我是怕被懟,我發現你準備多少,都會被面試官問倒的)

算法(最重要)

準備思路(ACM大佬除外,早就開始刷題的老哥除外),如果你是準備的比較晚,而且算法的基礎比較薄弱,那我建議你可以按下面的思路準備(大佬不要嘲笑,但他對我快速提升算法確實有效):
  1. 先看PDF,所有題目過一遍,直接看題解,理解思路
  2. 再開始刷題,刷題之外每天再回顧之前的PDF。這個時間點沒必要一杯茶一支煙一道力扣調一天。最重要的是如何快速掌握。

面試加分項

  • JDK源碼(重要)、點到為止的Spring源碼(refresh啟動流程搞清楚,循環依賴等等如何解決)
  • 系統設計(自己的項目熟悉好,設計秒殺系統,海量數據分布式計算也經??迹?/span>
  • 分布式理論和算法

總結

校招面試不可能考你 class 字節碼每一部分構成以及作用,不會問你G1垃圾回收器實現定長時間回收的參數是什么,你可以學過,知道在哪里可以快速回憶,但是沒有必要面試前記住這些。所以深入完整學習完每一部分之后一定要匯總每一部分的重點。
時間越短越要學會放棄,一定要有自己十分擅長的。一旦被問到就“總分總”結構去說,面試官不想聽會在“分”打斷你的。

避坑指南:一些準備誤區以及注意事項

  • 后端的東西太多了,容易自己走迷路了,一段時間一定要看看自己是不是準備到偏路上了,走偏路是我準備秋招時候經常干的事情。一定要及時調整,時間不等人,你可以招聘完再學,但是招聘錯過就是錯過了,所以自己要有一個優先級,什么是目前最需要的知識
  • 一個人戰斗太難了,有同行的最好同行。也不容易走偏,自己很容易大方向走偏,像我從年初到八月底整個過程都是自己在搞,和外界幾乎沒什么交流,因為周圍的人都在保研考研,也沒什么共同話題。所以把自己封閉起來了,最痛的就是自己的大方向走歪了。導致春招連一份簡歷都沒投出去
  • 自己喜歡看什么就一直看什么,我險些因為這個把自己玩兒沒了。盡可能還是要一起看
  • 一定要重視算法,可能市面上的培訓班不太重視算法,那是因為公司業務用的少,社招算法也不是大頭,所以培訓機構整天都是分布式秒殺三高,卻不重視算法,但是校招算法真的是門檻,門檻都過不去還說啥。(我就是在這上面栽了跟頭,很多時候其實不是你意識不到,而是意識到也無從下手。。小白可以參考上面的方法準備算法,大佬不要嘲笑)
  • 面試前看的一般不考,但是一定要看,重要的不是你看了什么,而是激活你的思維,打開你的思路。面試時候不卡殼。別指望面試突擊被考到,我遇到的大部分都是平時學的東西,不是考前看的。
  • 沒有實習不能進大廠?實習對于技術開發崗,尤其是本科,如果你的學校還說得過去,應該就不是硬性要求。
  • 面試一定要笑,一定要注意禮貌。起碼的。你也會因此獲益,試試就知道了。
  • 開始準備的時間,如果是參加春招實習或者秋招正式,最輕松有保障的時間就是前一年的九月份,九月份先狠刷PDF上的題,大量記思路,后面慢慢每天上手寫題,每天看基礎,寫項目,到第二年二月三月差不多春招提前批開了(是否實習看個人吧,我沒來得及實習不代表我不想實習,當時實力不允許,自信心也不夠)。后面秋招也是最好參加提前批。按照這個思路應該是差不多可以參加提前批的。
  • 面試遇到不清楚的:對不起不會/不了解/不知道,但是讓我實現的話我會。。。

一些資料推薦

    • yes的練級攻略
    • 小林coding
    • 艾小仙
    • 帥地玩兒編程
    • 安琪拉的博客
    • 數據結構和算法
  • 書籍專欄分享:
    • OAuth2
    • 分布式協議
    • 并發編程
    • DDD 微服務落地實戰
    • netty
    • 算法
    • 并發編程
    • JVM
    • MySQL
    • mq
    • MySQL是怎么運行的
    • 儒猿技術窩專欄
    • 拉勾教育專欄
    • 極客時間專欄
    • 圖靈教育騰訊課堂
有需要的同學可以留下自己的郵箱,我過幾天把自己用過的資料整理好可以發給大家。

碎碎念

最后想說的,就是相信自己。你或許一開始真的沒有能力,但是你準備了一段時間之后,即使沒有能力也應該去試試,因為這回讓你及時糾正自己當前的錯誤,回歸到正確的道路上。
走過最長的路,就是自己鋪的彎路。上了4年高中,5年大學,高考完不想看志愿隨便寫,最后超了分數線8分調劑到自己最害怕的化學專業,學了2年終于轉到了軟件,開啟了2年的肝帝生活,好在階段性結果還算可以接受,但是誰又知道這是不是下一條彎路,但是根據以往的彎路經驗(只要不放松警惕,居安思危,一般不會太彎,畢竟“巔峰之處即為跌落之始”,一直保持進步和敏銳,運氣應該不會太差,彎路不會走太久。

最后總結

文章是去年十月份校招結束寫了一些,但是一直沒有發出來,現在完善下發出來希望對大家有幫助,其實一段時間不接觸八股文自己都有些淡忘了。還是要制造機會繼續熟悉起來。本來只是想簡單寫寫,沒想到一寫就收不住,想起自己這幾年的經歷,有太多想寫的,但也有很多不能公開寫,也算是階段里程碑吧,可能幾年后會把自己現在寫的當笑話看看,感覺自己還是格局小了。也希望自己以后看這些文字變成笑話,人是需要進步的,希望自己是在進步的。

參考資料

[1]

考研還是工作: https://mp.weixin.qq.com/s/ug33XpoZB54xMqjKYFKSpg

[2]

項目地址: https://github.com/delta-qin/data-heterogeneous-system


本文轉載自網絡,如有侵犯您的權益,請郵件聯系wyl860211@qq.com刪除

混跡職場

升職加薪

熱門推薦

人与嘼zozo免费观看

<em id="vo9r9"><object id="vo9r9"><input id="vo9r9"></input></object></em>

<em id="vo9r9"><ruby id="vo9r9"><u id="vo9r9"></u></ruby></em>
<rp id="vo9r9"><acronym id="vo9r9"></acronym></rp>
<tbody id="vo9r9"><noscript id="vo9r9"></noscript></tbody>
<dd id="vo9r9"></dd>