牛客java練習題

@ [toc]

1.依賴注入

  • 依賴注入是一種設計模式和編程思想,不依賴 具體的框架實現,可以通過多種方式和框架來實現
  • 可以通過Spring , Google Guice , PicoContainer 等都可以實現依賴注入,也可以通過手動編寫實現
  • 目的:
    • 為了解耦合,將對象之間的依賴關系從代碼中解耦出來, 使系統更加靈活,更易于維護和測試
  • 方法:
    • 構造方法注入: 通過構造函數傳入依賴對象
    • Setter方法注入:通過Setter方法設置依賴對象
    • 接口注入

2.File類

  • File類是用來表示文件和目錄路徑名的抽象,主要功能是對文件和目錄進行操作,如創建,刪除,重命名,以及獲取文件和目錄的各種屬性信息.如果要進行文件內容的讀寫,則需要使用java IO流相關的類
  • java中用于文件操作的基礎類,主要用于獲取文件和目錄的屬性,信息等,而不能直接進行文件的讀寫操作
  • File本身不能讀寫文件內容,需要使用FileInputStream,FileOutputStream,FIleReader,FileWriter等流類操作
  • 通過createNewFile()方法創建文件,通過mkdir()或者mkdirs()方法創建目錄

3.多線程

  • run()方法是線程執行的入口點,也是新線程執行的起點.當一個類繼承Thread類實現Runnable接口時,必須==重寫run()==方法來定義線程要執行的任務
  • start()方法是用來啟動線程的方法,是線程進入就緒狀態,等待CPU調度

4.HashMap

  • java中常用的集合類
  • 使用鍵值對的形式存儲數據,每個鍵都映射一個特定的值,這種結構讓數據的存取非常高效
  • 不保證元素的順序,有序存儲需要使用LinkedHashMap或者ThreeMap
  • 允許使用null作為鍵,但是只能有一個null鍵
  • 允許使用null做值,并且可以有多個鍵映射到值
  • 鍵必須是唯一的,但是值可以重復
  • HashMap的實現基于哈希表,查找效率為O(1)
  • 不是線程安全,多線程環境下應使用ConcurrentHashMap

5.序列化

  • java實現序列化時,必須實現Serializable接口,這是一個標記接口,沒有定義任何方法,僅用來標識某個類對象可以序列化.當一個類實現后,java虛擬機在序列化的過程中提供默認的序列化機制
  • 序列化時將對象轉換為字節序列的過程
  • 反序列化是將字節序列恢復對象的過程
  • serialVersionUID是 序列化版本號,用于確保序列化與反序列化的類版本一致
  • 使用transient關鍵字可以標記不需要序列化的字段

6.Cloneable接口

  • 用于標記一個類的對象可以被克隆

7.Comparable接口

  • 用于定義對象之間自然排序規則,提供compareTo方法的實現

8.Writeable

  • 不是java標準庫中的接口

9.executeUpdate()方法返回值的具體含義

  • 其返回值表示受影響的行數
  • 對于INSERT語句:返回新增的記錄數
  • 對于UPDATE語句:返回更新的記錄數
  • 對于DELETE語句:返回刪除的記錄數
  • 如果執行失敗,則會拋出SQLException,恩施返回特殊值

10.volatile

  • 用于多線程環境下的同步控制,但是并不能完全保證線程安全
  • 能保證可見性 和 有序性 ,但是不能保證原子性
  • JVM的內存模型規定,volatile變量的值在使用前必須從主內存重新加載,保證獲取到的是最新值
  • 輕量級的同步機制,保證內存可見性和機制指令重新排序,但是不保證原子性,所以不保證線程安全

11.線程安全的類

  • Hashtable:其所有方法都是同步的(synchronized),任一時刻只能有一個線程訪問,所以是線程安全的,但是性能不如HashMap,在多線程環境下可以安全使用
  • Vector:與Hashtable類似,所有方法是同步的,可在多線程環境下安全使用,是ArrayList的線程安全版本
  • 現在更推薦使用java.util.concurrent包下的并發集合類,如ConcurrentHashMap,CopyOnWriteArrayList等

12.線程不安全的類

  • TreeSet:基于T熱額Map實現的,不是線程安全的,可以使用Collections.synchronizedSet()實現線程安全
  • LinkkedList:是雙向鏈表實現,本身不是線程安全的,在多線程環境下使用需要額外的同步措施

13.類方法的特性和調用規則

  • 類方法中不能使用this關鍵字,因為this表示當前對象的引用,而類方法屬于類本身,不依賴與具體對象,在類方法中使用this是語法錯誤
  • 可以直接調用本類的其他方法和類變量
  • 也可以調用實例方法,但需要先創建類的實例對象,然后通過對象引用來調用

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

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

相關文章

大模型應用開發自學筆記

理論學習地址: https://zh.d2l.ai/chapter_linear-networks/index.html autodl學術加速: source /etc/network_turboconda常見操作: 刪除: conda remove --name myenv --all -y導出: conda env export > environment.yml…

鴻蒙ArkUI實戰之TextArea組件、RichEditor組件、RichText組件、Search組件的使用

本文接上篇繼續更新ArkUI中組件的使用,本文介紹的組件有TextArea組件、RichEditor組件、RichText組件、Search組件,這幾個組件的使用對應特定場景,使用時更加需要注意根據需求去使用 TextArea組件 官方文檔: TextArea-文本與輸…

除了`String`、`StringBuffer` 和 `StringBuilder`之外,還有什么處理字符串的方法?

一、標準庫中的字符串處理類 1. StringJoiner(Java 8) 用途:用于在拼接字符串時自動添加分隔符、前綴和后綴。示例:StringJoiner sj new StringJoiner(", ", "[", "]"); sj.add("A").…

Qt中讀寫結構體字節數據

在Qt中讀寫結構體字節數據通常涉及將結構體轉換為字節數組(QByteArray)或直接從內存中讀寫。以下是幾種常見方法&#xff1a; 方法1&#xff1a;使用QDataStream讀寫結構體 cpp #include <QFile> #include <QDataStream>// 定義結構體 #pragma pack(push, 1) //…

Windows 10 上安裝 Spring Boot CLI詳細步驟

在 Windows 10 上安裝 Spring Boot CLI 可以通過以下幾種方式完成。以下是詳細的步驟說明&#xff1a; 1. 手動安裝&#xff08;推薦&#xff09; 步驟 1&#xff1a;下載 Spring Boot CLI 訪問 Spring Boot CLI 官方發布頁面。下載最新版本的 .zip 文件&#xff08;例如 sp…

Unity3D仿星露谷物語開發37之澆水動畫

1、目標 當點擊水壺時&#xff0c;實現澆水的動畫。同時有一個水從水壺中流出來的特效。 假如某個grid被澆過了&#xff0c;則不能再澆水了。。 如果某個grid沒有被dug過&#xff0c;也不能被澆水。 2、優化Settings.cs腳本 增加如下內容&#xff1a; public static float…

【2】Kubernetes 架構總覽

Kubernetes 架構總覽 主節點與工作節點 主節點 Kubernetes 的主節點&#xff08;Master&#xff09;是組成集群控制平面的關鍵部分&#xff0c;負責整個集群的調度、狀態管理和決策。控制平面由多個核心組件構成&#xff0c;包括&#xff1a; kube-apiserver&#xff1a;集…

如何對docker鏡像存在的gosu安全漏洞進行修復——筑夢之路

這里以mysql的官方鏡像為例進行說明&#xff0c;主要流程為&#xff1a; 1. 分析鏡像存在的安全漏洞具體是什么 2. 根據分析結果有針對性地進行修復處理 3. 基于當前鏡像進行修復安全漏洞并復核驗證 # 鏡像地址mysql:8.0.42 安全漏洞現狀分析 dockerhub網站上獲取該鏡像的…

【Tauri2】026——Tauri+Webassembly

前言 不多廢話 直言的說&#xff0c;筆者看到這篇文章大佬的文章 【04】Tauri 入門篇 - 集成 WebAssembly - 知乎https://zhuanlan.zhihu.com/p/533025312嘗試集成一下WebAssembly&#xff0c;直接開始 正文 準備工作 新建一個項目 安裝 vite的rsw插件和rsw pnpm instal…

OpenHarmony Camera開發指導(五):相機預覽功能(ArkTS)

預覽是在相機啟動后實時顯示場景畫面&#xff0c;通常在拍照和錄像前執行。 開發步驟 創建預覽Surface 如果想在屏幕上顯示預覽畫面&#xff0c;一般由XComponent組件為預覽流提供Surface&#xff08;通過XComponent的getXcomponentSurfaceId方法獲取surfaceid&#xff09;&…

puzzle(0531)腦力航跡

目錄 腦力航跡 規則 解法 簡單模式 中等模式 困難模式 專家模式 腦力航跡 規則 2條航跡會產生一個相對航跡&#xff1a; 根據相對航跡和其中一個航跡推導另外一個航跡。 解法 沒有任何需要推理的地方&#xff0c;就是純粹的2個矢量相加。 簡單模式 中等模式 困難模…

在win上安裝Ubuntu安裝Anaconda(linx環境)

一&#xff0c;安裝Ubuntu 1. 在 Microsoft 商城去下載Ubuntu(LTS:是長期維護的版本) 2.安裝完之后啟動程序&#xff0c;再重新打開一個黑窗口&#xff1a; wsl --list --verbose 3.關閉Ubuntu wsl --shutdown Ubuntu-22.04 WSL2 Ubuntu-20.04文件太占c盤空間&#xff0c;…

NEAT 算法解決 Lunar Lander 問題:從理論到實踐

NEAT 算法解決 Lunar Lander 問題:從理論到實踐 0. 前言1. 定義環境2. 配置 NEAT3. 解決 Lunar lander 問題小結系列鏈接0. 前言 在使用 NEAT 解決強化學習問題一節所用的方法只適用于較簡單的強化學習 (reinforcement learning, RL) 環境。在更復雜的環境中使用同樣的進化解…

【KWDB 創作者計劃】_上位機知識篇---ESP32-S3Arduino

文章目錄 前言1. ESP32-S3核心特性2. 開發環境搭建(1) 安裝Arduino IDE(2) 添加ESP32-S3支持(3) 選擇開發板(4) 關鍵配置3. 基礎代碼示例(1) 串口通信(USB/硬件串口)(2) Wi-Fi連接(3) 藍牙LE廣播4. 高級功能開發(1) USB OTG功能(2) AI加速(MicroTensorFlow)(3) 雙核任務處理…

JavaScript學習教程,從入門到精通,DOM節點操作語法知識點及案例詳解(21)

DOM節點操作語法知識點及案例詳解 一、語法知識點 1. 獲取節點 // 通過ID獲取 const element document.getElementById(idName);// 通過類名獲取&#xff08;返回HTMLCollection&#xff09; const elements document.getElementsByClassName(className);// 通過標簽名獲取…

PCA 降維實戰:從原理到電信客戶流失數據應用

一、簡介 在機器學習領域&#xff0c;數據的特征維度往往較高&#xff0c;這不僅會增加計算的復雜度&#xff0c;還可能導致過擬合等問題。主成分分析&#xff08;Principal Component Analysis&#xff0c;簡稱 PCA&#xff09;作為一種經典的降維技術&#xff0c;能夠在保留數…

信創時代編程開發語言選擇指南:國產替代背景下的技術路徑與實踐建議

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家、CSDN平臺優質創作者&#xff0c;高級開發工程師&#xff0c;數學專業&#xff0c;10年以上C/C, C#, Java等多種編程語言開發經驗&#xff0c;擁有高級工程師證書&#xff1b;擅長C/C、C#等開發語言&#xff0c;熟悉Java常用開…

Arcgis10.1的漢化包及破解文件分享

Arcgis10.1的漢化包分享 網上有好多10.2的漢化包&#xff0c;但是10.1的漢化包很少&#xff0c;特在此分析出來給大家 Arcgis10.1破解文件及漢化包: (訪問密碼: 9784) license manager破解安裝文件 另外也分享了license manager破解安裝文件&#xff0c;也在相同的分享鏈接里…

CrewAI Community Version(一)——初步了解以及QuickStart樣例

目錄 1. CrewAI簡介1.1 CrewAI Crews1.2 CrewAI Flows1.3 Crews和Flows的使用情景 2. CrewAI安裝2.1 安裝uv2.2 安裝CrewAI CLI 3. 官網QuickStart樣例3.1 創建CrewAI Crews項目3.2 項目結構3.3 .env3.4 智能體角色及其任務3.4.1 agents.yaml3.4.2 tasks.yaml 3.5 crew.py3.6 m…

word選中所有的表格——宏

Sub 選中所有表格()Dim aTable As TableApplication.ScreenUpdating FalseActiveDocument.DeleteAllEditableRanges wdEditorEveryoneFor Each aTable In ActiveDocument.TablesaTable.Range.Editors.Add wdEditorEveryoneNextActiveDocument.SelectAllEditableRanges wdEdito…