java数组

java数组

Java中为了存放一组数据所以引进了数组
一维数组定义的格式
格式1: 数据类型[] 数组名;   (推荐用)
格式2: 数据类型 数组名[];
Java一维数组的动态初始化
1.数组必须初始化才可以使用
  初始化就是为数组中的数组元素分配内存空间并为每个数组元素赋值
2.动态初始化格式
 数据类型[] 数组名=new 数据类型[数组长度];
eg: int[] arr=new int[3];
Java一维数组的内存图解(一个数组)
栈:存储的都是局部变量    局部变量:就是在方法定义中或者方法声明的变量
堆:每一个new出来的东西  
	堆内存特点:
			a.系统会为每一个new出来的东西分配一个内存地址
			b.每一个元素都有默认的初始化值
			       byte,short,int,long    ------0
			       float,double           ------0.0
			       char                   ------'\u0000'
			       boolean                ------false
			       引用数据类型             ------null
			c.使用完毕以后就变成垃圾,等待垃圾回收器对其回收
方法区
本地方法区:和系统相关
寄存器:CPU
class Demo{
    public static void main(String[] args){
        int[] arr=new int[3];
        arr[0]=1;
        arr[1]=2;
        arr[2]=3;
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0AtCVVoB-1605790596293在这里插入图片描述
)(C:\Users\张航\Desktop\2020-11-18_212702.png)]

程序开始运行Demo类的字节码文件加载进入内存,虚拟机主动调用main()方法,main()方法进栈开始执行代码,定义一个int类型数组arr,然后在堆内存里开辟空间给数组arr分配一个地址,并初始化数组arr,然后给每个数组元素赋值。
java一维数组的内存图解(三个数组)
class Demo2{
    public static void main(String[] args){
        int[] arr=new int[3];
        arr[0]=1;
        arr[1]=2;
        arr[2]=3;
        int[] arr2=new int[3];
        arr2[0]=4;
        arr2[1]=5;
        arr2[2]=6;
        int[] arr3=arr;
        arr3[0]=7;
        arr3[1]=8;
        arr3[2]=9;
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+"、");
        }
        for(int i=0;i<arr2.length;i++){
            System.out.print(arr2[i]+"、");
        }
        for(int i=0;i<arr3.length;i++){
            System.out.print(arr3[i]+"、");
        }
    }
}
//打印结果是7,8,9,4,5,6,7,8,9结果如果和自己想的不一样看下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PzgpOuJz-1605790596295)(C:\Use在这里插入图片描述
rs\张航\Desktop\Inked2020-11-18_215441_LI.jpg)]

程序开始运行Demo2类的字节码文件加载进入内存,虚拟机主动调用main()方法,main()方法进栈开始执行代码,定义一个int类型的数组arr,在堆里开辟空间给数组arr分配一个地址,并初始化数组arr,然后给数组arr每个元素赋值;定义一个int类型的数组arr2,在堆里开辟空间给数组arr2分配一个地址,并初始化数组arr2,然后给数组arr2每个元素赋值;定义一个int类型的数组arr3将数组arr的地址引用给数组arr3,然后给数组arr3每个元素赋值
java一维数组的静态初始化
静态初始化的格式:
	数据类型[] 数组名=new 数据类型[]{元素1,元素2,元素3,....};
简化:数据类型[] 数组名={元素1,元素2,元素3,....};
class Demo{
    public static void main(String[] args){
        int[] arr=new int[]{1,2,3};//完整格式
        int[] arr={1,2,3};//简化格式
    }
}
java二维数组(格式1)
二维数组:就是元素为一维数组的数组,这个数组我们就叫做二维数组   数组嵌套
二维数组格式1:
	数据类型[][] 变量名=new 数据类型[m][n];
	m表示这个二维数组由多少个一维数组  必须写上
	n表是每一个一维数组的元素个数  可选
二维数组也可以这样表示(不建议使用)
	a.数据类型 数组名[][]=new 数据类型[m][n];
	b.数据类型[] 数组名[]=new 数据类型[m][n];
java二维数组的内存图解
class Demo{
    public static void main(String[] args){
        int[][] arr=new int[2][3];
        arr[0][0]=1;
        arr[0][1]=2;
        arr[0][2]=3;
        
        arr[1][0]=4;
        arr[1][1]=5;
        arr[1][2]=6;
        System.out.println(arr[0][0]);
        System.out.println(arr[1][0]);
    }
}

[外链图片转存失败,源站可能有防盗链机制,建在这里插入图片描述
议将图片保存下来直接上传(img-ShmkPdbQ-1605790596296)(C:\Users\张航\Desktop\2020-11-18_224924.png)]

程序开始运行Demo类的字节码文件加载进入内存,虚拟机主动调用main()方法,main()方法进栈开始执行代码,定义一个int类型的二维数组,然后通过new关键字在堆里开辟空间给数组arr分配一个地址,初始化数组arr2个一维长度,3个二维元素,然后给每个数组arr的元素赋值。
java二维数组(格式2和格式3)
二维数组格式2:
	数据类型[][] 变量名=new 数据类型[m][];
		m表示这个二维数组有多少个一维数组
		这一次没有直接给出一维数组的元素个数,可以动态给出
二维数组格式3:
	数据类型[][] 变量名=new 数据类型[][]{{元素...},{元素...},{元素...}...};
简化版:数据类型[][] 变量名={{元素...},{元素...},{元素...}...};
class Demo{
    public static void main(String[] args){
        int[][] arr=new int[2][];
        int[][] arr2=new int[3][]{{1,2,3},{2,5},{3,4,5}};
        int[][] arr3={{1,2,3},{2,5},{3,4,5}}; 
    }
}
java匿名数组
匿名数组的作用:相对某个集合进行一次操作,而这个集合只被用到一次。
语法: new int[]{元素1,元素2,...};
class Demo{
    public static void main(String[] args){
        printArr(new int[]{1,2,3});
    }
    public static void printArr(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
}








vscode插件合集,05月最新,包括以下插件: bibhasdn.django-html-1.2.0 bibhasdn.django-snippets-1.1.0 bitlang.cobol-1.7.8 christian-kohler.npm-intellisense-1.3.0 christian-kohler.path-intellisense-1.4.2 chrmarti.regex-0.2.0 CoenraadS.bracket-pair-colorizer-1.0.37 daltonjorge.scala-0.0.5 danields761.dracula-theme-from-intellij-pythoned-0.1.4 DavidAnson.vscode-markdownlint-0.17.0 dbaeumer.vscode-eslint-1.4.10 donjayamanne.jupyter-1.1.4 donjayamanne.python-extension-pack-1.0.1 DotJoshJohnson.xml-1.9.2 DotJoshJohnson.xml-2.0.0 eg2.vscode-npm-script-0.3.4 eriklynd.json-tools-1.0.2 fisheva.eva-theme-0.3.1 formulahendry.code-runner-0.9.3 formulahendry.terminal-0.0.10 gerane.theme-druid-0.0.2 GrapeCity.gc-excelviewer-2.0.21 humao.rest-client-0.18.4 humy2833.ftp-simple-0.6.3 Ikuyadeu.r-0.5.9 Ikuyadeu.r-lsp-0.0.7 itryapitsin.scala-0.1.7 itryapitsin.scalasnippets-0.1.7 jasonnutter.search-node-modules-1.3.0 jithurjacob.nbpreviewer-1.0.0 josephtbradley.hive-sql-0.0.2 kalitaalexey.vscode-rust-0.4.2 kondratiev.sshextension-0.2.1 luqimin.forgive-green-0.2.1 magicstack.magicpython-1.0.12 mohsen1.prettify-json-0.0.3 mooman219.rust-assist-0.2.0 ms-python.anaconda-extension-pack-1.0.0 ms-python.python-2018.4.0 ms-toolsai.vscode-ai-0.1.8 ms-vscode.go-0.6.80 mtxr.sqltools-0.13.0 PKief.material-icon-theme-3.4.0 qub.qub-xml-vscode-1.2.8 redhat.java-0.25.0 redhat.vscode-yaml-0.0.12 rust-lang.rust-0.4.3 rust-lang.rust-0.4.4 scala-lang.scala-0.1.2 sensourceinc.vscode-sql-beautify-0.0.4 truman.autocomplate-shell-0.1.1 vahidk.tensorflow-snippets-0.3.3 vscjava.vscode-java-debug-0.9.0 vscjava.vscode-java-pack-0.3.0 vscjava.vscode-java-test-0.6.1 vscjava.vscode-maven-0.8.0 waderyan.nodejs-extension-pack-0.1.9 wholroyd.jinja-0.0.8 xabikos.javascriptsnippets-1.6.0 yzhang.markdown-all-in-one-1.3.0 yzhang.markdown-all-in-one-1.4.0 ZakCodes.rust-snippets-0.0.1 zhuangtongfa.material-theme-2.13.5 zhuangtongfa.material-theme-2.13.6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值