欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java由淺入深細數(shù)數(shù)組的操作上

 更新時間:2022年04月27日 08:29:56   作者:星鴉wyk  
數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當然不同語言對數(shù)組的實現(xiàn)及處理也不盡相同。Java?語言中提供的數(shù)組是用來存儲固定大小的同類型元素

本篇介紹一維數(shù)組以及相關(guān)操作,二維數(shù)組放在下一篇

1.JVM的內(nèi)存分布

Java的代碼是運行在JVM上的,為了方便管理,對所使用的內(nèi)存按照功能的不同進行了劃分,這不是本篇重點,只做簡單的介紹:

Java虛擬棧:局部變量在這里開辟空間

Java本地方法棧:運行一些由C/C++編寫的程序

堆:對象在這里存儲,且開辟后的空間使用完畢后Java會自動收回,不需要我們再寫free

程序計數(shù)器:存儲指令

方法區(qū):存儲靜態(tài)變量、類、常量等

之前的int、double等都是在Java棧中開辟空間,而數(shù)組則是在堆上開辟的空間

2.引用類型變量的特點

引用類型變量并不會直接存儲對象本身,它所存儲的是對象本身在堆中的首地址,通過地址來操作對象,假設(shè)有一個數(shù)組arr,數(shù)組中有1~5共5個元素,數(shù)組起始地址是0x0001,那么這個數(shù)組在JVM中的存儲情況如下:

基本類型的數(shù)據(jù)空間中保存的都是初始化的值,這也是二者之間的區(qū)別

3.一維數(shù)組的使用

3.1定義和初始化

一維數(shù)組的定義和初始化如下:

int [] arr1 = {1,2,3,4,5};
int [] arr2 = new int [] {1,2,3,4,5};
int [] arr3 = new int [5];  //數(shù)組元素的值默認為0

同Java中的int等變量一樣,數(shù)組也必須進行初始化,若數(shù)組初始化不知道給多大空間,元素給什么值,那么可以先賦值null

null在Java中表示空引用,int [] arr=null 就說明arr引用的是一個空對象,這個要和C語言中的NULL區(qū)分開來

3.2數(shù)組的訪問

依舊是通過下標來對數(shù)組進行訪問,下標還是從0開始,有一點和C語言不同

假設(shè)數(shù)組有10個元素,我們打印第11個元素,C語言中會打印隨機值,但在Java中則是直接報錯

3.3打印數(shù)組所有的元素

在打印之前有一個問題需要解決:如何確定數(shù)組的長度

Java中沒有給類似C語言中的sizeof的操作符,而是采用“數(shù)組名.length”來求數(shù)組長度,如下圖:

現(xiàn)在來看看我們有多少種打印數(shù)組所有元素的方式:

  • 循環(huán)語句:這個就不展開講了,過于簡單
  • foreach

具體結(jié)構(gòu)如下:

 冒號左邊寫打印的元素的數(shù)據(jù)類型,右邊寫數(shù)組名

Array.toString

這個是將數(shù)組的內(nèi)容轉(zhuǎn)換成字符串,這樣就可以按照打印字符串的方式來打印,使用前要引用包(類似C語言中的引用頭文件)

引用方法:

import java.util.Arrays

3.4數(shù)組的拷貝

  • 循環(huán)語句:依舊跳過
  • Arrays.copyOf()

 此方法返回值是數(shù)組,有兩個參數(shù),分別是拷貝的目標和拷貝的數(shù)組的長度

  • System.arraycopy()

此方法有5個參數(shù),從左至右依次是:源數(shù)組、源數(shù)組的起始位置、目標數(shù)組、目標數(shù)組的起始位置、拷貝的元素個數(shù)

  • 數(shù)組名.clone()

3.5作為參數(shù)和返回值

Java中的數(shù)組可以作為返回值,這沒有什么需要注意的地方

數(shù)組作為參數(shù),因為變量存放的是地址,所以在實參傳參的時候?qū)嶋H上是將地址傳遞過去, 形參接收的也是地址,形參通過地址可以對堆上的數(shù)組進行操作

一維數(shù)組內(nèi)容結(jié)束,完

到此這篇關(guān)于Java由淺入深細數(shù)數(shù)組的操作的文章就介紹到這了,更多相關(guān)Java數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring在多線程下保持事務(wù)的一致性的方法實現(xiàn)

    Spring在多線程下保持事務(wù)的一致性的方法實現(xiàn)

    當Spring在多線程環(huán)境下運行時,確保事務(wù)一致性是非常重要的,本文主要介紹了Spring在多線程下保持事務(wù)的一致性的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • java中&與&&的區(qū)別

    java中&與&&的區(qū)別

    本文主要介紹了java中&與&&的區(qū)別,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • Spring AOP基本概念

    Spring AOP基本概念

    這篇文章主要為大家詳細介紹了spring基礎(chǔ)概念A(yù)OP與動態(tài)代理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-07-07
  • JDK安裝配置教程

    JDK安裝配置教程

    這篇文章主要為大家詳細介紹了JDK安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Java中switch判斷語句典型使用實例

    Java中switch判斷語句典型使用實例

    這篇文章主要介紹了Java中switch判斷語句典型使用實例,本文直接給出代碼實例,在忘記switch語法時特別有用,復(fù)制修改即可使用,需要的朋友可以參考下
    2015-06-06
  • 在CentOS系統(tǒng)上安裝Java的openjdk的方法

    在CentOS系統(tǒng)上安裝Java的openjdk的方法

    這篇文章主要介紹了在CentOS系統(tǒng)上安裝Java的openjdk的方法,同樣適用于Fedora等其他RedHat系的Linux系統(tǒng),需要的朋友可以參考下
    2015-06-06
  • java 在圖片上寫字,兩個圖片合并的實現(xiàn)方法

    java 在圖片上寫字,兩個圖片合并的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨ava 在圖片上寫字,兩個圖片合并的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • Selenium+Tesseract-OCR智能識別驗證碼爬取網(wǎng)頁數(shù)據(jù)的實例

    Selenium+Tesseract-OCR智能識別驗證碼爬取網(wǎng)頁數(shù)據(jù)的實例

    本文主要介紹了Selenium+Tesseract-OCR智能識別驗證碼爬取網(wǎng)頁數(shù)據(jù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java實現(xiàn)Map遍歷key-value的四種方法

    Java實現(xiàn)Map遍歷key-value的四種方法

    本文主要介紹了Java實現(xiàn)Map遍歷key-value的四種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • SpringBoot Event 事件如何實現(xiàn)異步延遲執(zhí)行

    SpringBoot Event 事件如何實現(xiàn)異步延遲執(zhí)行

    這篇文章主要介紹了Spring Boot Event 事件如何實現(xiàn)異步延遲執(zhí)行問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論