Java 學習筆記(基礎篇3)

1. 數組:

① 靜態初始化:

(1) 格式:

int[] arr = {1, 2, 3};

② 遍歷

/* 格式:
數組名.length */
for(int i = 0; i < arr.length; i++){//在循環的過程中,i依次表示數組中的每一個索引sout(arr[i]);//就可以把數組里面的每一個元素都獲取出來,并打印在控制臺上了。
}

③ 數組動態初始化

(1) 格式:

int[] arr = new int[3];

④ 練習:

(1)?請編寫一個 Java 程序,實現以下功能:

  1. 創建一個長度為 10 的整數數組
  2. 使用隨機數為數組賦值,隨機數的范圍是 1 到 100(包含 1 和 100)
  3. 打印輸出數組中的所有元素
  4. 計算并輸出數組中所有元素的總和
  5. 計算并輸出數組中所有元素的平均值(取整數部分)
  6. 統計并輸出數組中比平均值小的元素的個數
public class test4 {public static void main(String[] args) {int[] arr = new int[10];int count = 0;Random r = new Random();for (int i = 0; i < arr.length; i++) {int num = r.nextInt(100) + 1;arr[i] = num;System.out.print(arr[i] + " ");}int sum = 0;for (int i = 0; i < arr.length; i++) {sum += arr[i];}System.out.println("數組中所有數據的和為" + sum);int avg = sum / arr.length;System.out.println("數組中平均數為" + avg);for (int i = 0; i < arr.length; i++) {if (arr[i] < avg){count++;}}System.out.println("在數組中,一共有" + count + "個數據,比平均數小");}
}

關鍵邏輯:

  • 計算數組總和:遍歷數組,用累加的方式(sum += arr[i])計算所有元素的總和
  • 輸出數組元素的行:逐個打印數組中的元素,元素之間用空格分隔使用?print?而非?println保證所有元素在同一行輸出(例如:35 12 78 ...),而不是每個元素單獨占一行。

(2) 交換數據

定義一個包含元素 {1,2,3,4,5} 的整數數組,通過編程將數組中的元素進行反轉(即第一個元素與最后一個元素交換位置,第二個元素與倒數第二個元素交換位置,以此類推),最后將反轉后的數組元素依次打印輸出(元素之間用空格分隔)。

public class test5 {public static void main(String[] args) {int[] arr = {1,2,3,4,5};for (int i = 0, j = arr.length - 1; i < j; i++, j--){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

關鍵邏輯:

  1. 雙指針對稱遍歷
    循環中使用兩個指針(i?和?j):

    • i?從數組開頭(索引 0)向后移動
    • j?從數組末尾(索引arr.length-1)向前移動
    • 循環條件?i < j?確保只交換前半部分與后半部分的對稱元素(避免重復交換)
  2. 元素交換實現反轉
    在每次循環中:

    • 用臨時變量?temp?保存?arr[i]?的值
    • 將?arr[j]?的值賦給?arr[i](把后半部分元素放到前半部分)
    • 將?temp(原來的?arr[i])的值賦給?arr[j](把前半部分元素放到后半部分)
    • 交換后?i?遞增、j?遞減,繼續處理下一對對稱元素

2. 方法

① 帶參數方法的定義和調用:

(1) 形參和實參:

形參:方法定義中的參數,等同于變量定義格式;
實參:方法調用中的參數,等同于使用變量或常量;

(2) 帶返回值方法的定義和調用

public static 返回值類型 方法名() {return 數據值;
}

(3) 調用方法時需要注意:

void類型的方法可以直接調用;
非void類型的方法,推薦用變量接收調用;

② 方法的重載

(1) 方法重載(Overloading):在同一個類中,方法名相同,但參數不同(類型/個數/順序)。

(2) 特點

  • 方法名相同
  • 參數不同(個數、類型、順序)
  • 與返回值無關

③ 練習

(1) 數組遍歷

請編寫一個 Java 程序,實現以下功能:

  1. 定義一個 int 類型的數組,數組元素為 {11, 22, 33, 44, 55}
  2. 編寫一個名為 printArr 的靜態方法,該方法接收一個 int 類型數組作為參數
  3. printArr 方法需要按照 "[元素 1, 元素 2, 元素 3, ..., 元素 n]" 的格式打印數組內容(注意元素之間用逗號加空格分隔,最后一個元素后沒有逗號)
  4. 在 main 方法中創建數組并調用 printArr 方法打印數組內容
public class test9 {public static void main(String[] args) {int[] arr ={11, 22, 33, 44, 55};printArr(arr);}public static void printArr(int[] arr){System.out.print("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {System.out.print(arr[i]);} else{System.out.print(arr[i] + "," +" ");}}System.out.println("]");}
}

關鍵邏輯:

當執行?printArr(arr)時,并不是把數組的所有元素復制一份傳遞給方法,而是把arr中存儲的首地址傳遞給了printArr方法的參數arr(方法參數列表中的int[] arr)。

這意味著:

  • 方法內部的arr和主方法中的arr指向同一塊內存空間(同一個數組)。
  • 所以在printArr方法中,通過arr[i]可以訪問到數組的所有元素 —— 因為拿到了首地址,就能順藤找到后續所有元素(數組是連續存儲的)。

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

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

相關文章

知識點匯總linuxC高級-3 shell腳本編程

shell腳本編程shell ---> 解析器&#xff1a;sh csh ksh bashshell命令 ---> shell解析的命令shell腳本 --> shell命令的有序集合shell腳本編程&#xff1a;將shell命令結合按照一定邏輯集合到一起&#xff0c;寫到一個 .sh 文件&#xff0c;去實現一個或多個功能&…

【C++學習篇】:基礎

文章目錄前言1. main() 函數2. 變量賦值3. cin和cout的一些細節4. 基本類型運算5. 內存占用6. 引用7. 常量前言 C 語法的學習整理&#xff0c;作為個人總結使用。 1. main() 函數 #include <iostream> //使用輸入輸出流庫&#xff08;cin&#xff0c;cout&#xff09;…

使用nginx反向代理kkfile

這篇說一下我解決的思路和方式哈&#xff0c;不一定適用于大家&#xff0c;可以做個參考比如我們的系統服務是http://10.63.25.35:80&#xff0c;而我們的文件服務是在10.63.25.37:8012上&#xff0c;正常不使用代理的話&#xff0c;我們前端調用后端接口&#xff0c;后端調用k…

【低成本擴容】動態擴容實戰指南

面對擴容操作時&#xff0c;下面這種操作是否也會迷惑你&#xff1f;下面來為大家解惑~size_t newcapacity 2*_capacity > (_size len)?2*_capacity:(_sizelen); //len為即將插入的字符串有效字符個數//_size為當前字符串有效字符個數//_capacity為當前容量大小//newcapa…

Product Hunt 每日熱榜 | 2025-08-14

1. Autumn 標語&#xff1a;為AI初創公司簡化的Stripe服務 介紹&#xff1a;Autumn幫助AI初創公司通過只需三個API調用來定價、計量和控制使用情況。基于Stripe搭建&#xff0c;它可以在一個地方管理訂閱、使用情況和訪問權限。無需復雜的webhooks或后端邏輯&#xff0c;非常…

Scrapy + Django爬蟲可視化項目實戰(二) 詳細版

系列文章 Scrapy + Django爬蟲可視化項目實戰(一)_django scrapy-CSDN博客 實現技術 Scrapy Django Echarts 引言 可視化部分需要讀者具備一定的Django基礎!!! 上一個文章我們已經實現了爬取景點的數據,那么接下來就是根據爬取到的數據進行可視化 一、環境搭建 (一) 創…

選擇式與生成式超啟發算法總結

這里寫目錄標題Selection HHGeneration HHGPHH示例存在大量針對特定問題設計的啟發式算法&#xff0c;近年來學術界提出了一個關鍵問題&#xff1a;如何選擇最合適的啟發式方法。這一問題推動了超啟發式&#xff08;hyper-heuristic&#xff09;方法的研究發展。超啟發式是一種…

NetBIOS 設置

在 Windows 系統中,WINS (Windows Internet Name Service) 和 NetBIOS 緊密相關,主要用于 NetBIOS 名稱解析(將計算機名轉換為 IP 地址)。WINS 是一個動態數據庫,類似于 DNS,但專門用于 NetBIOS 名稱解析,適用于早期 Windows 網絡(如 Windows NT/2000/XP)。 1. 查看 N…

vue2 + SimpleMindMap 制作思維導圖

vue2 SimpleMindMap 制作思維導圖 該代碼包含SimpleMindMap已知的所有功能&#xff0c;有需要的小伙伴可自行copy&#xff0c;框架使用el-ementui。其中有些圖標是阿里巴巴矢量圖的圖片&#xff0c;可自行進行替換。保姆級教程 以下是vue文件&#xff1a; <template><…

Discord x Pulsar: 使用 Pulsar、Flink 和 Iceberg 搭建流式機器學習平臺

本文整理自 Discord 機器學習工程師 David Christle 在 Pulsar Summit NA 上的演講內容&#xff0c;一起來看 Discord 是如何基于 Pulsar 實現兼顧安全和個性化功能的實時流式機器學習平臺的&#xff5e;1. 背景Discord 是一個實時?視頻通信平臺&#xff0c;?持?本/語?/視頻…

【數據結構入門】二叉樹(2)

目錄 1.二叉樹遍歷順序 1.1 前序&#xff08;先根&#xff09;遍歷 1.2 中序&#xff08;中根&#xff09;遍歷 1.3 后序&#xff08;后根&#xff09;遍歷 1.4 層序遍歷 1.5 深度優先遍歷&廣度優先遍歷 2.二叉樹的遍歷 2.1 前根遍歷&#xff08;遞歸&#xff09; …

【電機參數】電壓、電流、轉速標幺化推算過程

【電機參數】電壓、電流、轉速標幺化推算過程 文章目錄[TOC](文章目錄)前言一、標幺化目的——優化計算二、Q15與標幺化的關系三、標幺值計算1.電壓標幺值2.電流標幺值3.轉速標幺值四、參考資料總結前言 一、標幺化目的——優化計算 不同物理量的量綱和數值范圍差異巨大&#…

v-scale-scree: 根據屏幕尺寸縮放內容

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

linux設備驅動之字符設備驅動

一、cdev結構體?成員/功能??說明??相關操作函數/宏??kobj?內嵌的kobject對象&#xff0c;用于Linux設備模型管理&#xff0c;實現引用計數和sysfs接口kobject_init()?owner?指向擁有該結構體的模塊指針&#xff08;通常為THIS_MODULE&#xff09;&#xff0c;防止模塊…

★CentOS:MySQL數據備份

一、cp 命令備份特點&#xff1a;優點&#xff1a;備份恢復數據快&#xff1a;直接復制文件&#xff0c;無需進行數據轉換和復雜的處理&#xff0c;因此備份恢復速度非常快缺點&#xff1a;需要停止數據庫服務&#xff0c;靈活性差&#xff0c;占用空間大&#xff0c;可移植性差…

Python代碼規范與靜態檢查(ruff/black/mypy + pyproject.toml + Makefile)自動化工具鏈介紹

文章目錄**1. 核心工具的作用****(1) black&#xff1a;代碼格式化工具****(2) ruff&#xff1a;代碼質量檢查工具****(3) mypy&#xff1a;靜態類型檢查工具****2. pyproject.toml&#xff1a;統一配置中心****示例配置**&#xff08;pyproject.toml&#xff09;&#xff1a;*…

軟件需求管理過程詳解

需求管理過程需求管理是軟件工程和系統開發中的核心過程&#xff0c;它確保項目始終圍繞正確、穩定且可追溯的需求進行。在復雜系統開發中&#xff0c;需求往往動態變化&#xff0c;需求管理通過系統化的方法控制變更、維護版本、建立追溯關系&#xff0c;從而降低項目風險、保…

MySQL性能優化實戰指南:從入門到精通的完整優化體系

MySQL性能優化實戰指南&#xff1a;從入門到精通的完整優化體系&#x1f680; 前言&#xff1a;在當今數據驅動的時代&#xff0c;MySQL作為世界上最流行的開源關系型數據庫&#xff0c;其性能優化能力直接決定了應用系統的響應速度和用戶體驗。本文將從多個維度深入探討MySQL優…

KingbaseES主備讀寫分離集群安裝教程

首先我們先要找數據庫集群安裝軟件和腳本。這里我事先安裝一臺單機。 [rootlocalhost zip]# mkdir -p /home/kingbase/software [rootlocalhost zip]# scp -r * /home/kingbase/software/ #安裝軟件和腳本在單機版本的/opt/Kingbase/ES/V9/ClientTools/guitools/DeployTools/z…

electron程序適配loongArch64

一、原始項目 1.原始程序適配arm&#xff0c;x86國產linux設備;新增需求適配loongArch64麒麟v10sp1。 2.原始devDependencies "devDependencies": {"electron": "^17.2.0","electron-builder": "^23.0.3",}二、可能遇到的問…