COSCon'19 | 如何設計新一代的圖數據庫 Nebula
835
2025-04-02
一、抽象類和接口的使用場景
抽象類的使用場景:
1、既想約束子類有共同的行為,又想擁有自己的方法,又能擁有實例變量
接口的應用場景:
約束多個類擁有統一的行為,但是不在乎每一個類是如何實現的。
作為能夠實現特定功能的標識存在,或者是什么都不做的純粹的標識
實現類具備很多不同的功能,但是這些功能沒有什么聯系
使用接口的引用調用具體實現類的方法
二、抽象類和接口的區別?
1、抽象類對變量沒有限制,接口只能包含常量
2、抽象類擁有構造方法,接口沒有構造方法
3、抽象類中的方法可以是抽象的,也可以不是抽象的,但是接口中的方法必須是public abstract的,
三、如何進行單元測試?
在代碼編寫完成之后,進行單元測試主要分為兩個步驟:
人工靜態檢查
該階段主要保證代碼算法的正確性和邏輯性,盡可能的發現程序中沒有發現的錯誤。
動態執行跟蹤
執行待測程序,將實際運行結果和預期結果進行比較,發現其中存在的錯誤
四、如何實現低耦合?
1、少用繼承,多用接口隱藏實現的細節
2、模塊的功能設計盡可能的單一
3、遵循一個定義只在一個地方出現
4、少用全局變量
5、類中的屬性和方法少用public,多用private
6、少用“硬編碼”,盡量避免直接使用sql語句操作數據庫
7、盡量減少模塊直接操作或調用其他模塊,
8、盡量使用數據耦合,少用控制耦合,限制公共耦合的范圍,不用內容耦合
五、聚集索引和非聚集索引的區別?
聚集索引:該索引中鍵值的邏輯順序決定了表中相應行的物理順序
聚集索引的使用情況:
列經常被分組排序
返回某范圍內的數據
數據列中的數據基本不同
主鍵列和外鍵列
非聚集索引:數據存儲在一個地方,索引存儲在另一個地方,索引的指針指向數據的存儲位置
非聚集索引的使用情況:
列經常用分組排序
頻繁更新的列
主鍵列和外鍵列
頻繁修改索引列
六、Springboot中的容器有什么用?
1、添加組件(@configtion、@bean、Component、@Controller、@Service、@Repository)
2、導入xml配置文件
七、shiro中的token有什么用?是如何生成的?
Token的使用比session更有用,因為session過多的時候會占用服務器資源,而且在分布式系統中很難完成session的共享,
Token和session的作用都是對用戶請求進行合法性認證。
Token存放位置:
Token會放置在請求頭中,在前后端分離的時代,服務器認證通過之后,會返回給客戶端一個token,在vue項目中,將這個token設置在全局cookie中,每次請求通過interceptors.request.use這個攔截,動態地為每個請求帶上剛剛那個token,
Token的實現過程:
1.用戶登錄校驗,校驗成功后就生成Token并返回給客戶端。
2.客戶端收到數據后保存在客戶端的cookie中
3.客戶端每次訪問API都從cookie中取出token并攜帶到服務器端。
4.服務器端采用filter過濾器校驗請求攜帶的token。校驗成功則返回請求數據,校驗失敗則返回錯誤碼
不存儲token,無論在緩存中或者數據庫中的驗證過程:在用戶登錄認證完成之后,服務器會向客戶端返回一個加了密的token,這個token是由用戶請求的部分信息、請求的URL、時間戳這三部分融合在一起形成的,在客戶端再次發送請求的時候,會重新根據請求的部分內容、請求的URL、時間戳生成一個新的token,然后將這個新的token和之前的token進行比較,如果相同則這次合法。這樣token不會占用存儲空間,而且加密的過程要比從數據庫中進行查詢快得多。
八、vue和后臺交互時如何規范接口?
一般常使用代理方式配置接口
歡迎小伙伴們補充指正!
我是灰小猿,我們下期見!
Java Spring 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。