Java---數組


樂觀學習,樂觀生活,才能不斷前進啊!!!

我的主頁:optimistic_chen
我的專欄:c語言
歡迎大家訪問~
創作不易,大佬們點贊鼓勵下吧~

前言

無論c語言還是java數組都是重中之重,今天我們來學習java數組,看他與C語言中有幾分不同。

文章目錄

  • 前言
  • 數組的創建
  • 初始化
  • 數組的使用
  • 數組的本質
  • 數組應用
    • 參數傳基本數據類型
    • 參數傳輸組類型(引用數據類型)
  • 引用變量
  • 完結

數組的創建

Type[ ] 數組名=new Type[N]

例如:

int[] array=new int[10];
double[] array2=new double[10];
String[] array3=new String[10];

初始化

動態初始化:在創建數組時,直接指定數組中元素的個數

int[] array=new int[10];

靜態初始化:在創建數組時不直接指定數據元素的個數,而直接將具體的數據內容進行指定

Type[] 數組名={data1,data2,...,datan};int[] array={1,2,3,4,6};

注意:
·靜態初始化雖然沒有指定數組的長度,編譯器在編譯時會根據{}中元素個數來確定數組的長度。
·靜態初始化時, {}中數據類型必須與[]前數據類型一致。
·靜態初始化可以簡寫,省去后面的new Type[ ]。
·如果沒有對數組初始化,數組中元素為默認值。
·如果·數組中儲存元素的類型為引用類型,默認值為NULL

類型默認值
byte0
short0
int0
long0
float0.0f
double0.0
char0
booleanfalse

數組的使用

因為在C語言中我們接觸過數組,所以對于基本的數組訪問和遍歷我們不再說明,相信大家都了解過很多。我們直接從兩者不同的地方開始說起。
C語言中求數組長度時使用sizeof關鍵詞,但是在Java中數組長度可以通過數組對象.length來獲取

int[]array = new int[]{10, 20, 30, 40, 50};
for(int i = 0; i < array.length; i++){System.out.println(array[i]);
}

當然,遍歷數組也有一個新方式,for-each循環,語法格式如下:

for(數據類型 變量:集合名稱){
代碼塊;
}

int[] array = { 100, 200, 300, 400, 500 };for (int x : array) {System.out.print(x+",");}

雖然foreach是for循環的增強版,簡化了編程,提高了代碼的可讀性和安全性,避免了數組越界。而foreach一般是結合泛型使用,在需要使用數組或者集合索引時,for-each就不好用了。

數組的本質

之前博客初始Java中說過Java中的基本類型變量,指的是該變量空間中直接存放的是其所對應的值。而Java的數組是引用類型。指引用數據類型創建的變量,一般稱為對象的引用,其空間中儲存的是對象所在空間的地址

public static void func() {int a = 10;int b = 20;int[] array = new int[]{1,2,3};
}

array是數組類型的引用變量,其內部保存的內容可以簡單理解成是數組在堆空間中的首地址(有點類似C語言中的指針)。
在這里插入圖片描述

數組應用

參數傳基本數據類型

public static void main(String[] args) {int num = 0;func(num);System.out.println("num = " + num);
}
public static void func(int x) {x = 10;System.out.println("x = " + x);
}

執行結果

在這里插入圖片描述
發現在func方法中修改形參 x 的值, 不影響實參的 num 值.

參數傳輸組類型(引用數據類型)

public static void main(String[] args) {int[] arr = {1, 2, 3};func(arr);System.out.println("arr[0] = " + arr[0]);
}
public static void func(int[] a) {a[0] = 10;System.out.println("a[0] = " + a[0]);
}

執行結果

在這里插入圖片描述
發現在func方法內部修改數組的內容, 方法外部的數組內容也發生改變.
因為數組是引用類型,按照引用類型來進行傳遞,是可以修改其中存放的內容的。

引用變量

public static void main(String[] args){int[] array={1,2,3,4};System.out.println(array);int a=10;
}

我們知道數組是引用類型,那么數組名應該為引用變量。既然是引用變量,那就說明存的是一個地址,那個地址的指向才是數組中真正存的東西。也就是說引用變量指向一個對象,即:array這個引用指向一個數組對象。

array[0]=1;//通過array這個引用,訪問當前對象的0下標
array.length//通過array這個引用,訪問當前對象的長度

示例:

public static void main(String[] args) {int[] array1=new int[3];array1[0]=10;array1[1]=20;array1[2]=30;int[] array2=new int[]{1,2,3,4,5};array2[0]=100;array2[1]=200;array1=array2;//array1這個引用指向array2這個引用指向的對象array1[2]=300;array1[3]=400;array2[4]=500;for (int i = 0; i < array2.length; i++) {System.out.println(array2[i]);}}

在這里插入圖片描述
當兩個引用同時指向一個對象的時候,通過任何一個引用都能修改這個對象的值,并且如果一個對象如果一直沒有人引用,那么JVM自動回收。

注意:一個引用不可能同時指向兩個對象

完結

好了,這期的分享到這里就結束了~
如果這篇博客對你有幫助的話,可以點一個免費的贊并收藏起來喲~
可以點點關注,避免找不到我~
我們下期不見不散~~

下期預告:java—類與對象

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

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

相關文章

LangChain 入門案例教程

LangChain 是一個基于 transformer 模型的語言鏈模型&#xff0c;它可以根據輸入文本生成相應的回答。下面是一個簡單的入門案例教程&#xff0c;旨在幫助您快速上手 LangChain。 1. 安裝 LangChain 首先&#xff0c;您需要安裝 LangChain。可以使用 pip 安裝&#xff1a; p…

【簡歷】湖南某一本大學:JAVA實習簡歷指導,面試通過率比較低

注&#xff1a;為保證用戶信息安全&#xff0c;姓名和學校等信息已經進行同層次變更&#xff0c;內容部分細節也進行了部分隱藏 簡歷說明 這個同學的學校是重點一本院校&#xff0c;這種學校背景我們建議大家嘗試投一下大廠&#xff0c;然后投遞主體在中廠。但是因為項目經歷…

曠野之間12 - 內容創作用的最佳大模型評測

?????? 我正在做一個項目,需要我找出最適合內容創作的 LLM。我查看了 lmsys 排行榜上的頂級模型,閱讀了其他人對這些模型的評價,查看了頂級 LLM 的模型卡,在沒有明確答案后,我決定對所有這些 LLM 進行測試,以完成不同的內容創作任務。 評估模型 我想要評估的模型…

在iPhone / iPad上輕松模擬GPS位置 AnyGo for Mac

在iPhone / iPad上輕松模擬GPS位置 AnyGo for Mac AnyGo for Mac是一款專為Mac電腦用戶設計的虛擬定位工具。它可以模擬你的GPS位置&#xff0c;讓你的設備顯示你在任何世界上的任何地方。無論你是想在游戲中虛擬移動&#xff0c;還是在社交媒體上分享虛擬的旅行照片&#xff0…

Flask+Layui開發案例教程

基于 Python 語言的敏捷開發框架_DjangoAdmin敏捷開發框架FlaskLayui版本_開發文檔 軟件產品基于 Python 語言&#xff0c;采用 Flask2.x、Layui、MySQL 等技術棧精心打造的一款集模塊化、高性能、組件化于一體的企業級敏捷開發框架&#xff0c;本著簡化開發、提升開發效率的初…

C 語言中如何實現字符串的拼接?

&#x1f345;關注博主&#x1f397;? 帶你暢游技術世界&#xff0c;不錯過每一次成長機會&#xff01; &#x1f4d9;C 語言百萬年薪修煉課程 【https://dwz.mosong.cc/cyyjc】通俗易懂&#xff0c;深入淺出&#xff0c;匠心打磨&#xff0c;死磕細節&#xff0c;6年迭代&…

Objective-C 中的 isa 不再是簡單的結構體指針

了解 Objective-C 中的 isa 指針內存結構 在 Objective-C 中&#xff0c;isa 指針是對象和類之間的重要橋梁。它不僅幫助運行時系統識別對象的類型&#xff0c;還參與了一些內存和性能優化。本文將深入講解 isa 指針的內存結構&#xff0c;包括其在早期和現代實現中的演變。 …

Linux使用python調用串口<Ubuntu>

要在 Ubuntu 上使用 /dev/ttyUSB0 設備編寫一個簡單的串口收發程序&#xff0c;你可以使用 Python&#xff0c;結合 pyserial 庫來實現。這種方法相對簡單&#xff0c;適用于各種串行通信任務。以下是如何在 Python 中編寫串口收發程序的步驟及代碼示例&#xff1a; 步驟 1: 安…

JWT重放漏洞攻防策略

JWT重放漏洞概述 概念&#xff1a;JWT&#xff08;JSON Web Token&#xff09;是Web應用廣泛使用的身份驗證令牌。重放攻擊&#xff1a;攻擊者截獲JWT后&#xff0c;利用其有效性冒充用戶執行操作。 重放攻擊的危害 權限濫用&#xff1a;攻擊者可越權操作&#xff0c;如非法…

ffmpeg新舊函數對比

搬運博客園“kn-zheng”大佬博客 從FFmpeg 3.0 開始 &#xff0c; 使用了很多新接口&#xff0c;對不如下&#xff1a; 1、avcodec_decode_video2() 原本的解碼函數被拆解為兩個函數avcodec_send_packet()和avcodec_receive_frame() 具體用法如下&#xff1a; old: avcodec_d…

MySQL8之mysql-community-embedded-compat的作用

MySQL8中的mysql-community-embedded-compat包的作用主要是提供MySQL服務器作為嵌入式庫時的兼容性支持&#xff0c;特別是對于那些使用庫版本18的應用程序。嵌入式MySQL服務器允許開發者將MySQL數據庫直接嵌入到他們的應用程序中&#xff0c;而無需運行獨立的MySQL服務器進程。…

Transformer 論文通俗解讀:FFN 的作用

在經過前面3節關于 Transformer 論文的解讀之后&#xff0c;相信你對提出 Transformer 架構的這篇論文有了一定的了解了&#xff0c;你可以點擊下面的鏈接復習一下前3節的內容。 《Attention is all you need》通俗解讀&#xff0c;徹底理解版&#xff1a;part1 《Attention …

合合信息“大模型加速器”亮相2024世界人工智能大會

文章目錄 &#x1f4d1;引言一、大模型發展的挑戰數據稀缺問題 二、大模型“加速器”解決方案概述文檔解析引擎的特征 三、文檔解析引擎的優勢3.1 高速處理能力3.2 智能理解文檔結構3.3 多種數據類型支持3.4 高精度數據提取3.5 應用廣泛&#xff0c;適應性強 四、復雜圖表解析4…

Auslogics Disk Defrag Pro v11激活版下載、安裝、使用教程 (磁盤碎片整理工具)

前言 Auslogics Disk Defrag Pro 是一款支持 FAT16 文件系統的磁盤碎片整理工具&#xff0c;它可以快速整理磁盤碎片&#xff0c;使磁盤空間更加整潔&#xff0c;顯著提升電腦的運行速度。該軟件無需任何分析階段&#xff0c;并且速度比大多數其他碎片整理軟件更快。它可以幫助…

stm32 開發板可以拿來做什么?

STM32開發板可以用來做許多不同的事情&#xff0c;具體取決于您的應用需求和編程能力。我收集歸類了一份嵌入式學習包&#xff0c;對于新手而言簡直不要太棒&#xff0c;里面包括了新手各個時期的學習方向編程教學、問題視頻講解、畢設800套和語言類教學&#xff0c;敲個22就可…

詳解太陽能控制器PWM / MPPT極簡方案其設計要點,臺灣遠翔FP7209升壓24V,30V,36V,42V,48V

文章目錄 前言 一、單節電池升壓9V、12V、24V方案 二、單節電池升壓30V&#xff0c;36V&#xff0c;42V&#xff0c;48V方案 三、芯片介紹 FP7209X與FP7209M的區別&#xff1a; 四、單節電池升壓成為市面上太陽能控制器首選的原因&#xff1f; 總結 前言 太陽能是一種環保…

定時器TIM配置微妙延時函數

定時器TIM配置微妙延時函數 文章目錄 定時器TIM配置微妙延時函數開胃小菜&#xff08;BOOT0、BOOT1&#xff09;Boot0Boot1&#xff08;如果有&#xff09; 三種定時器高級控制定時器&#xff08;TIM1&#xff0c;TIM8&#xff09;通用定時器&#xff08;TIM2, TIM3, TIM4, TIM…

linux命令: rsync的使用

使用rsync同步本地文件夾到遠程目錄 rsync -zvrt /localdir/ -e ssh -p 30000 rootip:/remotedir/rsync -zvrt /localdir/ /remotedir/ 遠程備份 rsync -avlR --delete -e ssh -p 3231 tangboqi221.122.114.27:backup ~/backup/ R表示保留目錄結構&#xff0c;如果不保留…

基于Intel Chainer 和姿勢檢測的動作識別(人體、面部、手部關鍵點識別動作識別)

項目概述 目標 開發一個能夠實時或近實時識別特定動作的系統&#xff0c;如運動姿勢、表情變化或手勢控制。實現對人體關鍵點的精確追蹤&#xff0c;以便于分析和理解人的動態行為。 技術棧 Intel硬件&#xff1a;可能使用Intel的高性能計算平臺&#xff0c;如Xeon處理器或…

【國潮】國產化系統甲方問題總結

持續更新。。。。。。。。。。。。。。。 【國潮】國產化系統甲方問題總結 1. 安全性問題2. 可靠性和穩定性問題3. 性能問題4. 符合軍事標準問題5. 兼容性和集成問題6. 維護和升級問題7. 項目管理問題8. 隱私和合規性問題9. 災難恢復和備份問題10. 技術支持和培訓問題 引言&am…