亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaSE一維數(shù)組和二維數(shù)組用法詳解

 更新時(shí)間:2024年04月03日 11:26:16   作者:逸狼  
數(shù)組存儲(chǔ)同一種數(shù)據(jù)類型多個(gè)元素的集合,既可以存儲(chǔ)基本數(shù)據(jù)類型,也可以存儲(chǔ)引用數(shù)據(jù)類型,這篇文章主要給大家介紹了關(guān)于JavaSE一維數(shù)組和二維數(shù)組用法的相關(guān)資料,需要的朋友可以參考下

一維數(shù)組

數(shù)組:可以看成是相同類型元素的一個(gè)集合。

基本語(yǔ)法

T[] 數(shù)組名 = new T[N]; 

  • T:表示數(shù)組中存放元素的類型
  • T[]:表示數(shù)組的類型
  • N:表示數(shù)組的長(zhǎng)度

初始化

int[] array={1,2,3,4,5};
int []arr1=new int[]{1,3,4};
int []aa=new int[19];

遍歷和打印

  • 數(shù)組是一段連續(xù)的內(nèi)存空間,因此支持隨機(jī)訪問(wèn),即通過(guò)下標(biāo)訪問(wèn)快速訪問(wèn)數(shù)組中任意位置的元素  
  • 下標(biāo)從0開(kāi)始,介于[0, N)之間不包含N,N為元素個(gè)數(shù),不能越界,否則會(huì)報(bào)出下標(biāo)越界異常。

三種方法

        public static void main(String[] args) {
            int[] array={1,2,3,4,5};
            System.out.println(array.length);//求數(shù)組長(zhǎng)度
            System.out.println(array[2]);//通過(guò)下標(biāo)訪問(wèn)數(shù)組元素

            //遍歷打印數(shù)組
            for (int i = 0; i < array.length; i++) {
                System.out.print(array[i]+" ");
            }

            //for each循環(huán) 遍歷數(shù)組,把每一個(gè)值放入x中,獲取不到下標(biāo)
            for (int x:array) {
                System.out.print(x+" ");
            }

            //借助Java的原生的方法   
            String ret= Arrays.toString(array);//將數(shù)組元素以字符串的形式輸出
            System.out.println(ret);

數(shù)組是引用型變量

引用變量并不直接存儲(chǔ)對(duì)象本身,可以簡(jiǎn)單理解成存儲(chǔ)的是對(duì)象在堆中空間的起始地址。通過(guò)該 地址,引用變量便可以去操作對(duì)象。

JVM內(nèi)存分布

  • 程序計(jì)數(shù)器 (PC Register): 只是一個(gè)很小的空間, 保存下一條執(zhí)行的指令的地址
  • 虛擬機(jī)棧(JVM Stack): 與方法調(diào)用相關(guān)的一些信息,每個(gè)方法在執(zhí)行時(shí),都會(huì)先創(chuàng)建一個(gè)棧幀,棧幀中包含 有:局部變量表、操作數(shù)棧、動(dòng)態(tài)鏈接、返回地址以及其他的一些信息,保存的都是與方法執(zhí)行時(shí)相關(guān)的一 些信息。比如:局部變量。當(dāng)方法運(yùn)行結(jié)束后,棧幀就被銷毀了,即棧幀中保存的數(shù)據(jù)也被銷毀了。
  • 本地方法棧(Native Method Stack): 本地方法棧與虛擬機(jī)棧的作用類似. 只不過(guò)保存的內(nèi)容是Native方法的局 部變量. 在有些版本的 JVM 實(shí)現(xiàn)中(例如HotSpot), 本地方法棧和虛擬機(jī)棧是一起的
  • 堆(Heap): JVM所管理的最大內(nèi)存區(qū)域. 使用 new 創(chuàng)建的對(duì)象都是在堆上保存 ,堆是隨著程序開(kāi)始運(yùn)行時(shí)而創(chuàng)建,隨著程序的退出而銷毀,堆中的數(shù)據(jù)只要還有在使用,就不會(huì)被銷 毀。
  • 方法區(qū)(Method Area): 用于存儲(chǔ)已被虛擬機(jī)加載的類信息、常量、靜態(tài)變量、即時(shí)編譯器編譯后的代碼等數(shù) 據(jù). 方法編譯出的的字節(jié)碼就是保存在這個(gè)區(qū)域 現(xiàn)在我們只簡(jiǎn)單關(guān)心堆 和 虛擬機(jī)棧這兩塊空間

基本類型變量與引用類型變量的區(qū)別

  • 基本數(shù)據(jù)類型創(chuàng)建的變量,稱為基本變量,該變量空間中直接存放的是其所對(duì)應(yīng)的;
  • 而引用數(shù)據(jù)類型創(chuàng)建的變量,一般稱為對(duì)象的引用,其空間中存儲(chǔ)的是對(duì)象所在空間的地址。

null

可以將數(shù)組置為null

int[] arr = null;

null 的作用類似于 C 語(yǔ)言中的 NULL (空指針), 都是表示一個(gè)無(wú)效的內(nèi)存位置. 因此不能對(duì)這個(gè)內(nèi)存進(jìn)行任何讀寫(xiě)操 作. 一旦嘗試讀寫(xiě), 就會(huì)拋出 NullPointerException.

注意: Java 中并沒(méi)有約定 null 和 0 號(hào)地址的內(nèi)存有任何關(guān)聯(lián)

數(shù)組傳參和返回

本質(zhì)上還是傳值調(diào)用

例如想要實(shí)現(xiàn)將原數(shù)組的每一位元素都擴(kuò)大兩倍

有兩種實(shí)現(xiàn)方法

    //無(wú)返回值
    public static void func(int[]array1){
        for (int i = 0; i < array1.length; i++) {
            array1[i]= array1[i]*2;//將每個(gè)數(shù)字?jǐn)U大2倍
        }
    }

    //數(shù)組作為返回值
    public static int[] func2(int[]array1){
        int[]tmp=new int[array1.length];
        for (int i = 0; i < array1.length; i++) {
            tmp[i]=array1[i]*2;
        }
        return tmp;//Java中數(shù)組可以是返回值
    }

    public static void main(String[] args) {
        int[] array={1,2,4,5};
        int[] retArray=func2(array);//本質(zhì)上還是傳值調(diào)用
        String ret=Arrays.toString(retArray);
        System.out.println(ret);
    }

總結(jié)

所謂的 "引用" 本質(zhì)上只是存了一個(gè)地址. Java 將數(shù)組設(shè)定成引用類型, 這樣的話后續(xù)進(jìn)行數(shù)組參數(shù)傳參, 其實(shí) 只是將數(shù)組的地址傳入到函數(shù)形參中. 這樣可以避免對(duì)整個(gè)數(shù)組的拷貝(數(shù)組可能比較長(zhǎng), 那么拷貝開(kāi)銷就會(huì)很大).

二維數(shù)組

基本語(yǔ)法

數(shù)據(jù)類型[][] 數(shù)組名稱 = new 數(shù)據(jù)類型 [行數(shù)][列數(shù)] { 初始化數(shù)據(jù) };

初始化

有三種

        //二維數(shù)組
        int[][]array={{1,3,4,5},{6,6,4,7}};//是第二種的簡(jiǎn)化,常用
        int[][]array2=new int[][]{{1,3,4,5},{6,6,4,7}};
        int[][]array3=new int[2][4];//全部初始化為0

遍歷和打印

有兩種

 public static void main(String[] args) {
        //二維數(shù)組
        int[][]array={{1,3,4,5},{6,6,4,7}};
//第一種,要數(shù)行和列的個(gè)數(shù)
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();
        }
        System.out.println("#########");
        //另一種不用數(shù)二維數(shù)組的個(gè)數(shù)的方法
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();
        }
    }

結(jié)果

總結(jié) 

到此這篇關(guān)于JavaSE一維數(shù)組和二維數(shù)組用法詳解的文章就介紹到這了,更多相關(guān)JavaSE一維數(shù)組和二維數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 判斷兩個(gè)對(duì)象是否為同一個(gè)對(duì)象實(shí)例代碼

    java 判斷兩個(gè)對(duì)象是否為同一個(gè)對(duì)象實(shí)例代碼

    這篇文章主要介紹了java 判斷兩個(gè)對(duì)象是否為同一個(gè)對(duì)象實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • MyBatis無(wú)縫對(duì)接Spring的方法

    MyBatis無(wú)縫對(duì)接Spring的方法

    Spring框架與MyBatis框架是Java互聯(lián)網(wǎng)技術(shù)的主流框架。那么mybatis如何無(wú)縫對(duì)接spring呢?下面通過(guò)本文給大家介紹,需要的的朋友參考下吧
    2017-09-09
  • Java線程池由淺入深掌握到精通

    Java線程池由淺入深掌握到精通

    什么是線程池?很簡(jiǎn)單,簡(jiǎn)單看名字就知道是裝有線程的池子,我們可以把要執(zhí)行的多線程交給線程池來(lái)處理,和連接池的概念一樣,通過(guò)維護(hù)一定數(shù)量的線程池來(lái)達(dá)到多個(gè)線程的復(fù)用
    2021-09-09
  • Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式舉例詳解

    Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式舉例詳解

    在我們開(kāi)發(fā)項(xiàng)目過(guò)程中經(jīng)常需要定時(shí)任務(wù)來(lái)幫助我們來(lái)做一些內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • SpringBoot設(shè)置接口超時(shí)的方法小結(jié)

    SpringBoot設(shè)置接口超時(shí)的方法小結(jié)

    這篇文章主要介紹了SpringBoot設(shè)置接口超時(shí)的方法小結(jié),包括配置文件,config配置類及相關(guān)示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Java線程數(shù)究竟設(shè)多少合理

    Java線程數(shù)究竟設(shè)多少合理

    這篇文章主要介紹了Java線程數(shù)究竟設(shè)多少合理,對(duì)線程感興趣的同學(xué),可以參考下
    2021-04-04
  • 簡(jiǎn)單說(shuō)說(shuō)Java SE、Java EE、Java ME三者之間的區(qū)別

    簡(jiǎn)單說(shuō)說(shuō)Java SE、Java EE、Java ME三者之間的區(qū)別

    本篇文章小編就為大家簡(jiǎn)單說(shuō)說(shuō)Java SE、Java EE、Java ME三者之間的區(qū)別。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-10-10
  • Java如何利用Mybatis進(jìn)行數(shù)據(jù)權(quán)限控制詳解

    Java如何利用Mybatis進(jìn)行數(shù)據(jù)權(quán)限控制詳解

    這篇文章主要介紹了Java如何利用Mybatis進(jìn)行數(shù)據(jù)權(quán)限控制詳解,數(shù)據(jù)權(quán)限控制最終的效果是會(huì)要求在同一個(gè)數(shù)據(jù)請(qǐng)求方法中,根據(jù)不同的權(quán)限返回不同的數(shù)據(jù)集,而且無(wú)需并且不能由研發(fā)編碼控制。,需要的朋友可以參考下
    2019-06-06
  • Java利用廣度優(yōu)先搜索實(shí)現(xiàn)抓牛問(wèn)題

    Java利用廣度優(yōu)先搜索實(shí)現(xiàn)抓牛問(wèn)題

    廣度優(yōu)先搜索是最簡(jiǎn)便的圖的搜索算法之一,這一算法也是很多重要的圖的算法的原型。本文將利用廣度優(yōu)先搜索實(shí)現(xiàn)抓牛問(wèn)題,感興趣的可以了解下
    2022-06-06
  • 帶你入門(mén)Java的方法

    帶你入門(mén)Java的方法

    這篇文章主要介紹了java基礎(chǔ)之方法詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-07-07

最新評(píng)論