一年Java經驗應該會些什么

*************************************優雅的分割線 **********************************

分享一波:程序員賺外快-必看的巔峰干貨

如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程

請關注微信公眾號:HB荷包
在這里插入圖片描述
一個能讓你學習技術和賺錢方法的公眾號,持續更新
*************************************優雅的分割線 **********************************
1.引言

畢業已經一年有余,這一年里特別感謝技術管理人員的器重,以及同事的幫忙,學到了不少東西。這一年里走過一些彎路,也碰到一些難題,也受到過做為一名開發卻經常為系統維護和發布當救火隊員的苦惱。遂決定梳理一下自己所學的東西,為大家分享一下。

經過一年意識到以前也有很多認識誤區,比如:

偏愛收集,經常收集各種資料視頻塞滿一個個硬盤,然后心滿意足的看著容量不行動。

不重基礎,總覺得很多基礎東西不需要再看了,其實不懂的地方很多,計算機程序方面任何一個結果都必有原因,不要只會用不知道原理,那是加工廠出來的。現在ide查看代碼那么方便,ctrl+點擊就進入了JDK查看實現細節。

好高騖遠,在計算機基礎不牢固的情況下,總想著要做架構,弄分布式,搞大數據之類。

不重視性能,只求能實現功能,sql查詢是不是可以優化,是否有算法妙用,大對象是否要清除。

不重視擴展性,模塊之間緊密耦合,常用方法不提取成工具類,調用關系混亂等問題。

……

本文重點不在這些,故只列舉了一小部分,下面進入正題。

2.語法基礎

2.1 Java類初始化順序
 
  這是所有情況的類初始化順序,如果實際類中沒有定義則跳過:父類靜態變量——父類靜態代碼塊——子類靜態代碼塊——父類非靜態變量——父類非靜態代碼塊——父類構造函數——子類非靜態變量——子類非靜態代碼塊——子類構造函數

2.2 值傳遞和引用傳遞
 
  可能很多人對此不屑一顧,心想老子都工作一年了,對這些還不熟悉嗎?但實際情況并非這樣,JDK中東西全部熟悉了嗎?以一個最簡單的例子開始,你覺得下圖中代碼執行完之后fatherList中的元素是什么?
在這里插入圖片描述

這是一個最基礎的值傳遞和引用傳遞的例子,你覺得好簡單,已經想躍躍欲試的挑戰了,那么請看下面的,StringBuffer很好理解,但是當你執行一遍之后發現是不是和預想中的輸出不一樣呢?String不是引用類型嗎,怎么會這樣呢?如果你無法理解,那么請看下String的實現源碼,了解下其在內存中分配的實現原理。
在這里插入圖片描述

2.3 集合的使用
 
  這部分幾乎每個人都會用到,而且大家還都不陌生。下圖來源于互聯網,供大家復習一下。但是利用集合的特性進行巧妙的組合運用能解決優化很多復雜問題。Set不可重復性,List的順序性,Map的鍵值對,SortSet/SortMap的有序性,我在工作中有很多復雜的業務都巧妙的使用了這些,涉及到公司保密信息,我就不貼出代碼了。工作越久越發現這些和越巧妙。
在這里插入圖片描述

2.3 異常處理
 
  1.看著try、catch、finally非常容易,如果和事務傳播結合在一起,就會變得極其復雜。

2.finally不一定必須執行,return在catch/finally中處理情況(建議親自操刀試一下)。

3.catch中可以繼續拋自定義異常(并把異常一步步傳遞到控制層,利用切面抓取封裝異常,返回給調用者)。

2.4 面向對象思想
 
  一提起面向對象,大家都知道抽象、封裝、繼承、和多態。但是實際工作經驗中又知道多少呢,對于項目中如何巧用估計更不要提了。

共性的機會每個都需要用的建立基類,如每個控制層方法可能要通過security獲取一個登錄用戶id,用于根據不同的用戶操作不同的數據,可以抽象出一個應用層基類,實現獲取id的protect方法。同理DAO層可以利用泛型提取出一個包含增刪改查的基類。

多態的Override:基類的引用變量不僅可以指向基類的實例對象,也可以指向其子類的實例對象,如果指向子類的實例對象,其調用的方法應該是正在運行的那個對象的方法。在策略模式中使用很普遍。

提到面向對象,就不可避免的要說設計模式,在工作中,一個技術大牛寫的一個類似策略模式(更復雜一點),十分巧妙的解決了各種業務同一個方法,并且實現了訂單、工單、業務的解耦,看得我是非常佩服。我想很多面試中都會問道單例模式吧,還沒有理解的建議去看一看。

3.多線程

3.1 線程安全
 
  這個是老生常談的問題了,但是確實是問題和bug高發區。線程同步問題不需要單獨寫了,想必大家都清楚,不太熟悉的建議百度一下。

3.1.1 線程安全問題
 
  1.代碼中如果有同步操作,共享變量要特別注意(這個一般都能意識到)

2多個操作能修改數據表中同一條數據的。(這個容易被忽略,業務A可能操作表a,業務B也可以操作表a,業務A、B即使在不同的模塊和方法中,也會引起線程安全問題。例如如果一個人訪問業務A接口,另一個人訪問業務B接口,在web中每個業務請求都是會有單獨的一個線程進行處理的,就會出現線程安全問題)。

3.不安全的類型使用,例如StringBuffer、StringBuild,HashTable、HashMap等。在工作中我就遇到過有人在for循環進行list的remove,雖然編譯器不報錯,程序可以運行,但是結果卻可想而知。

4.Spring的bean默認是單例的,如果有類變量就要特別小心了(一般情況下是沒人在控制層、業務層、DAO層等用類變量的,用的話建議是final類型,例如日志log,gson等)。

5.多個系統共享數據庫情況,這個其實和分布式系統類似

用戶重復提交問題(即使代碼中從數據庫讀取是否存在進行限制不能解決問題)

3.1.2 線程安全解決
 
  在需要同步的地方采用安全的類型。

JDK鎖機制,lock、tryLock,synchronized,wait、notify、notifyAll等

Concurrent并發工具包,在處理一些問題上,誰用誰知道。強烈建議查看源碼!

數據表加鎖。(除非某個表的訪問頻率極低,否則不建議使用)

涉及分布式的,采用中間件技術例如zookeeper等解決。

3.2 異步
 
  異步使用場景不影響主線程,且響應較慢的業務。例如IO操作,第三方服務(短信驗證碼、app推送、云存儲上傳等)。

如果異步任務很多,就需要使用任務隊列了,任務隊列可以在代碼級別實現,也可以利用redis(優勢太明顯了)。

3.3 多線程通信
 
  這方面文章非常多,這里不在詳述。

1.共享變量方式(共享文件、全局變量,信號量機制等)

2.消息隊列方式

3. 忙等,鎖機制

3.4多線程實現
 
  1.集成Thread類,重寫(這里的重寫指的是override)run方法,調用start方法執行。

2.實現Runable接口,實現run方法,以Runable實例創建thread對象。

3.實現Callable接口,實現call方法,FutureTask包裝callable接口,FutureTask對象創建thread對象,常用語異步操作,建議使用匿名內部類,方便閱讀和使用。

額外需要說明的是:

1.理解thread的join方法;

2.不要認為volitate是線程安全的(不明白原因的建議去看jvm運行時刻內存分配策略);

3.sleep時間片結束后并不保證立馬獲取cpu。

4.ThreadLocal能夠為每一個線程維護變量副本,常用于在多線程中用空間換時間。

4. 開源框架

4.1 Hibernate、Mybatis

相信每一個java程序員對這些都不陌生,這里不再詳述。

需要說明的主要以下幾點:

1.hibernate一級緩存(內置session緩存),二級緩存(可裝配sessionFactory緩存),二級緩存會引起并發問題。

2.hibernate延遲加載原理理解。

3.hibernate 的get、load方法,sava、persist、savaOrUpdate方法區別

4.session重建了關聯關系卻并沒有同數據庫進行同步和更新

5.hibernate session關聯關系:detached對象、persistent對象

6.Spring data集成,注解方式配置屬性和實體。

7.mybatis 插件。

8.分頁查詢(數據庫)。

9.連接池技術

4.2 Spring IOC

4.1.1 Spring bean
    1.bean注入 注解方式方便易讀,引用第三方(數據庫連接,數據庫連接池,JedisPool等)采用配置文件方式。

2. bean作用域:Singleton,prototype,request,session,global session

3.bean生命周期:如下圖所示(圖片來源于互聯網):

在這里插入圖片描述

4.3 Spring AOP

基本概念:關注點、切面Aspect、切入點pointcut、連接點joinpoint、通知advice、織入weave、引入introduction。

Spring AOP支持5中類型通知,分別是MethodBeforeAdvice、AfterReturningAdvice、ThrowsAdvice、MethodInterceptor、IntroductionInterceptor(吐槽一下名字太長)

實現方式如下:

1.基于代理的AOP

2.基于@Aspect注解驅動的切面。(強烈推薦:可讀性好,易維護,易擴展,開發快)

3.純POJO切面。

4.注入式Aspect切面。

4.4 Srping事務

4.4.1 事務傳播
 
  概念:某些操作需要保證原子性,如果中間出錯,需要事務回滾。如果某個事務回滾,那么調用該事務的方法中的事務的作出如何的動作,就是事務傳播。

短時間內寫不清楚,建議訪問 http://www.cnblogs.com/yangy608/archive/2010/12/15/1907065.html 查看。

事務傳播屬性:

1. PROPAGATION_REQUIRED–支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。

2. PROPAGATION_SUPPORTS–支持當前事務,如果當前沒有事務,就以非事務方式執行。

3. PROPAGATION_MANDATORY–支持當前事務,如果當前沒有事務,就拋出異常。

4. PROPAGATION_REQUIRES_NEW–新建事務,如果當前存在事務,把當前事務掛起。

5. PROPAGATION_NOT_SUPPORTED–以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

6. PROPAGATION_NEVER–以非事務方式執行,如果當前存在事務,則拋出異常。

事務隔離級別:

1. ISOLATION_DEFAULT: 這是一個PlatfromTransactionManager默認的隔離級別,使用數據庫默認的事務隔離級別.另外四個與JDBC的隔離級別相對應

2. ISOLATION_READ_UNCOMMITTED: 這是事務最低的隔離級別,充許令外一個事務可以看到這個事務未提交的數據。這種隔離級別會產生臟讀,不可重復讀和幻像讀。

3. ISOLATION_READ_COMMITTED: 保證一個事務修改的數據提交后才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數據

4. ISOLATION_REPEATABLE_READ: 這種事務隔離級別可以防止臟讀,不可重復讀。但是可能出現幻像讀。它除了保證一個事務不能讀取另一個事務未提交的數據外,還保證了避免下面的情況產生(不可重復讀)。

5. ISOLATION_SERIALIZABLE 這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止臟讀,不可重復讀外,還避免了幻像讀。

4.5 其他Spring 技術棧

spring boot 輕量級啟動框架

spring security 用戶權限管理,根據角色和用戶,實現UserDetailsService,進行自定義權限管理。

spring task 代碼級定時任務,注解方式,使用起來非常方便。需要注意的是,如果某次定時任務出了異常而沒有進行處理,會導致接下來定時任務失效。如果各個任務相互獨立,可以簡單用try,catch包圍(之前就吃過這方面的虧)。

spring data 注解方式定義實體,屬性等

spring mvc 簡單明了的mvc框架。url傳值、數組傳值、對象傳值、對象數組等傳值類型,上傳/下載文件類型需要注意。

spring restful 注意命名,對命名要求很嚴格。

spring shell 命令行方式執行命令,救火、導入導出數據等用起來非常方便、制作報表。

5. Web基礎

5.1 web容器啟動
 
  1.web.xml加載順序: listener -> filter -> servlet

2.webt容器啟動過程,java新手很怕配置文件,理解完這些有助于熟悉配置文件 http://blog.csdn.net/u014431852/article/details/47042895

5.2 Servlet、Interceptor、Listener、Filter
 
  Servlet 接收請求返回響應,最原始的web業務處理類。

Interceptor 攔截器,可以實現HandlerInterceptor接口自定義攔截器,在日志記錄、權限檢查、性能監控、通用行為等場景使用,本質是AOP。

Listener 監聽器 常用于統計在線人數等縱向功能。

Filter 過濾器 在請求接口處理業務之前改變requset,在業務處理之后響應用戶之前改變response。如果某些數據不加密,很容易用抓包工具加filter作弊。

5.3 web項目結構
 
  5.3.1 mvn結構
  
  熟練掌握幾種常見的mvn項目結構,mvn可以自動生成,這里不再詳述。

5.3.2 mvn包管理
  
  1.版本號盡量幾種在一個文件中便于管理。

2.spring milestone包解決spring包沖突問題。

3.mvn dependency:tree命令分析所有包依賴,對于沖突的在pom文件中 包圍起來

5.3.3 版本控制
  
  1.git、svn等

2.代碼沖突解決方案

3.分支管理。

對于某個穩定版本上線后,如果在此基礎上開發新功能,一定要新建分支,在新分支上提交代碼,最后在新版發布時合并分支。修改運營環境bug切換到主分支進行修改

5.4 Http請求

5.4.1 請求方法
  
  post、get、put、head、delete、copy、move、connect、link、patch,最常用的是前4、5個。

5.4.2 請求頭,狀態碼
  
  常用的請求頭有Accept(下載文件會特殊使用)、Accept-Charset(設置utf-8字符集)、Content-Type(json等配置)等

常用的響應頭有Content-Type、Content-Type、Content-Length等,偏前端,不再詳述。

6. 系統架構

接觸的不是特別多,目前用到的只是服務器主從備份。Nginx反向代理進行配置。

多個項目nginx配置

Spring Mvc 用json數據進行交互,配置json轉換的servlet。

封裝返回值

自定義RunEnvironmentException(狀態碼,原因),覆蓋原有Exception,切面ExceptionHandler抓取Exception并封裝到返回值中(前后端松耦合)

令人頭疼的用戶重復(連續快速點擊)提交問題,前端限制治標不治本;后端用sessonid在切面上實現,又需要前端存儲,對所有請求數據加sessionId。最后用jedis中存儲,用接口名+用戶名當做key,根據不同的接口對不同的key可以單獨設置時間,不僅保證了重復提交問題,也避免了惡意請求問題,同時還能自定義請求間隔。(期初擔心redis緩存讀寫時間延誤導致限制失效,后來發現多慮了,對一般的小系統來說,經性能測試,發現即使請求頻率再提高100被也不會導致限制失效)

testNg單元測試、性能測試,覆蓋測試。

切面管理日期、權限。緩存等。

7. Nosql

1.Redis的java庫Jedis。

Jedispool配置。

項目中用到的有任務隊列、緩存。

2. neo4j圖數據庫

處理社交、推薦

8. 服務端

linux操作系統熟悉以centos為例:

常用簡單命令:ssh、vim、scp、ps、gerp、sed、awk、cat、tail,df、top,shell、chmod、sh、tar、find、wc、ln、|

目錄結構明細:/etc/、~/、/usr/、/dev/、/home/、/etc/init.d/

服務端:jdk、tomcat、nginx、mysql、jedis、neo4j啟動與配置(特別說明的是該死的防火墻,nginx啟動后一直訪問不了,查找一下午查不到原因,最后發現是防火墻問題)

監控服務器狀態(cpu,磁盤,內存),定位pid,日志查看

nginx負載均衡、反向代理、配置

自動化部署腳本

簡單shell腳本書寫,避免大量人力勞動。

監控系統,代碼拋fatal異常自動發郵件,系統指標持續偏高自動發郵件。

9. 數據庫相關
 
10. 第三方接口對接

10.1 支付接口

微信支付坑比較多,用將近兩周時間才把微信支付所有完成。需要在微信后臺配置的地方太多。

而支付寶支付模塊只用了2天時間就搞定了。

10.2 推送接口

為用戶定義tag、定義alias,注意當數據更新時需要同步更新tag、更新alias。如果沒采用異步實現(用戶體驗就是好卡啊)

10.3 云存儲

大量文件上傳云端(七牛云),注意創建bucket

10.4 短信驗證

很簡單的第三方接口,引入依賴,直接調用即可。需要在第三方后臺設置模板等,注意限定用戶訪問次數。

10.5 郵件

很簡單小功能,工具類。

*************************************優雅的分割線 **********************************

分享一波:程序員賺外快-必看的巔峰干貨

如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程

請關注微信公眾號:HB荷包
在這里插入圖片描述
一個能讓你學習技術和賺錢方法的公眾號,持續更新
*************************************優雅的分割線 **********************************

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

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

相關文章

mysql查詢各類課程的總學分_基于jsp+mysql的JSP學生選課信息管理系統

運行環境: 最好是java jdk 1.8,我們在這個平臺上運行的。其他版本理論上也可以。IDE環境: Eclipse,Myeclipse,IDEA都可以硬件環境: windows 7/8/10 2G內存以上(推薦4G,4G以上更好)可以實現: 學生,教師角色的…

80端口占用分析

SQL Server 2008 里面的組件——SQL Server Reporting Services (MSSQLSERVER)。是 SQL Server 的日志系統,就是他好端端的突然占用了80端口,而且對于普通人來講,這個組件的作用沒啥用,關掉也是節約資源。 關閉服務 ReportServer …

三年java經驗應該會什么?

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

python call agilent com_PyVISA通過RS232(USB)與安捷倫34970A通信時出現超時錯誤

這是我第一次嘗試使用Pyvisa,以便使用RS232連接(使用USB端口)與Agilent 34970A進行通信。在這就是發生在我身上的事情,插入基本的第一行:IN: import visaIN: rmvisa.ResourceManager()IN: print rm.list_resources()(uASRL4::INSTR,)IN: inst…

python加法運算符可以用來連接字符串并生成新字符串_中國大學MOOCPython語言入門網課答案...

中國大學MOOCPython語言入門網課答案表達式int(40.5)的值為____________。表達式160.5的值為____________________。python程序只能使用源代碼進行運行,不能打包成可執行文件。python語句list(range(1,10,3))執行結果為___________________。pip命令也支持擴展名為.…

全是滿滿的技術文檔

*************************************話不多說-先上教程 ********************************** 完整躺賺教程(不需任何技術,照做就能賺錢):點擊此處獲取 提取碼&#xff1a;6666 被動收入教程(需要一定的技術,會搭建服務器,會發布項目<教程里面會教你>):點擊此處獲取 提…

JavaScript面試的完美指南(開發者視角)

2019獨角獸企業重金招聘Python工程師標準>>> 摘要&#xff1a; 面試季手冊。 原文&#xff1a;javascript 面試的完美指南(開發者視角)作者&#xff1a;前端小智Fundebug經授權轉載&#xff0c;版權歸原作者所有。 為了說明 JS 面試的復雜性&#xff0c;首先&#x…

電腦上mysql數據庫無法登錄_無法遠程登入MySQL數據庫的幾種解決辦法MySQL綜合 -電腦資料...

方法一&#xff1a;嘗試用MySQL Adminstrator GUI Tool登入MySQL Server&#xff0c;Server卻回復錯誤訊息&#xff1a;Host 60-248-32-13.HINET-IP.hinet.net is not allowed to connect to thisMySQL server這個是因為權限的問題&#xff0c;處理方式如下&#xff1a;shell&g…

如何優化 App 的啟動耗時?

原文&#xff1a;iOS面試題大全 iOS 的 App 啟動主要分為以下步驟&#xff1a; 打開 App&#xff0c;系統內核進行初始化跳轉到 dyld 執行。這個過程包括這些步驟&#xff1a;1&#xff09;分配虛擬內存空間&#xff1b;2&#xff09;fork 進程&#xff1b;3&#xff09;加載 M…

windows qt 不能debug_linux配置vlc-qt

vlc-qt 是基于vlc庫&#xff0c;用于開發音頻視頻應用&#xff0c;性能優秀。vlc-qt/vlc-qt?github.com使用vlc-qt首先需要編譯vlc-qt &#xff08;windows可以下載使用編譯好的&#xff0c;但是只能用在release模式&#xff09;&#xff08;在windows系統中&#xff09;使用w…

idou老師教你學Istio 27:解讀Mixer Report流程

1、概述 Mixer是Istio的核心組件&#xff0c;提供了遙測數據收集的功能&#xff0c;能夠實時采集服務的請求狀態等信息&#xff0c;以達到監控服務狀態目的。 1.1 核心功能 ?前置檢查&#xff08;Check&#xff09;&#xff1a;某服務接收并響應外部請求前&#xff0c;先通過E…

mysql刪除密碼代碼_mysql 用戶新建、受權、刪除、密碼修改

mysql 用戶新建、授權、刪除、密碼修改首先要聲明一下&#xff1a;一般情況下&#xff0c;修改MySQL密碼&#xff0c;授權&#xff0c;是需要有mysql里的root權限的。注&#xff1a;本操作是在WIN命令提示符下&#xff0c;phpMyAdmin同樣適用。用戶&#xff1a;phplamp 用戶數…

KindEditor 上傳漏洞致近百個黨政機關網站遭植入

開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f; >>> 2月21日消息&#xff0c;近日&#xff0c;安恒明鑒網站安全監測平臺和應急響應中心監測發現近百起黨政機關網站被植入色情廣告頁面&#xff0c;分析發現被植入色情廣告頁面的網站都…

php mysql登陸頁面完整代碼_求助:PHP實現登陸注冊的代碼是什么啊(主要是數據庫那塊)?...

思路&#xff1a;注冊&#xff1a;獲取前臺表單數據->數據庫連接->判斷數據是否存在&#xff0c;存在輸出提示&#xff0c;不存在則向數據庫插入表單傳來的值->如果sql執行失敗輸出錯誤&#xff0c;成功功輸出注冊成功登陸&#xff1a;獲取前臺表單數據->數據庫連接…

Insql 1.8.2 發布,輕量級 .NET ORM 類庫

開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f; >>> Insql 是一個輕量級的.NET ORM 類庫。對象映射基于 Dapper, Sql 配置靈感來自于 Mybatis。 TA 的追求&#xff1a;簡潔、優雅、性能與質量 TA 的宗旨&#xff1a;讓你用起來感覺到…

python 函數中所有print保存csv_python for循環print怎樣才能輸出csv呢

import csv,redef search(req,line):text re.search(req,line)if text:data text.group(1)else:data noreturn datacsvfile file(serp_html.csv,rb)reader csv.reader(csvfile)輸出百度搜索結果數據&#xff1a;當前關鍵詞&#xff0c;排名&#xff0c;排名網站&#xff0…

java中具有繼承關系的類及其對象初始化順序

先說結論對于具有繼承關系的類&#xff0c;它們的類和對象構造順序為&#xff1a;父類的類構造器() -> 子類的類構造器() -> 父類成員變量的賦值和實例代碼塊 -> 父類的構造函數 -> 子類成員變量的賦值和實例代碼塊 -> 子類的構造函數。 實驗代碼如下&#xff1…

mysql varchar 2000能存_mysql 數據庫 varchar 到底可以存多少數據呢,長文慎入

一、關于UTF-8 UTF-8 Unicode Transformation Format-8bit。是用以解決國際上字符的一種多字節編碼。 它對英文使用8位(即一個字節)&#xff0c;中文使用24位(三個字節)來編碼。 UTF-8包含全世界所有國家需要用到的字符&#xff0c;是國際編碼&#xff0c;通用性強。 UTF-8編碼…

教程 | 如何利用C++搭建個人專屬的TensorFlow

在開始之前&#xff0c;首先看一下最終成型的代碼&#xff1a; 分支與特征后端&#xff08;https://github.com/OneRaynyDay/autodiff/tree/eigen&#xff09;僅支持標量的分支&#xff08;https://github.com/OneRaynyDay/autodiff/tree/master&#xff09;這個項目是我與 Min…

docker kali安裝mysql_kali安裝docker(有效詳細的教程) ——vulhub漏洞復現 001

前記&#xff1a;博主有著多次安裝docker的豐富經驗&#xff0c;曾經為了在kali成功安裝docker花費不少時間。在kali2016.3一直到最新的kali2019.4都通吃&#xff01;所以跟著下面的步驟走&#xff0c;絕對不會出錯。(該機子此前沒裝過docker&#xff0c;并且配置好了kali更新源…