数组定义的三种不同形式以及数组存储对象动态赋值与静态赋值
2019-04-18 11:50
176 查看
1、数组定义
数组如同一所学生公寓,用来分别住男生女生的一种容器,数组只能是同一类型,当然java数组也能存储对象!!!
2、数组特点
数组拥有固定的索引顺序,并且从0开始
3、数组的格式
格式1:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
格式2:
元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
示例:int[] arr = new int[]{3,5,1,7};
格式3:
元素类型[] 数组名 = {元素,元素,……};
示例:int[] arr = {3,5,1,7};
4、数组存储对象动态赋值与静态赋值
//定义一个NameSystem类 class NameSystem{ private String name; private int times; //定义有参构造器 public NameSystem(String name,int times){ this.setName(name); this.setTimes(times); //以下是getset操作 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getTimes() { return times; } public void setTimes(int times) { this.times = times; } } }
下面是在Main方法中的操作
//1、创建对象 NameSystem[] persons=new NameSystem[5]; // persons[0].setName("张三"); // persons[0].setTimes(0); //2、动态赋值 persons[0]=new NameSystem("小李",0); persons[1]=new NameSystem("小张",0); persons[2]=new NameSystem("小王",0); persons[3]=new NameSystem("小明",0); persons[4]=new NameSystem("小刚",0); //1+2 == 3、静态赋值 // NameSystem[] persons={new NameSystem("小李",0),new NameSystem("小张",0),new NameSystem("小王",0), // new NameSystem("小明",0),new NameSystem("小刚",0) // };
分析:
数组存储对象时创建对象:实质是使用了格式1数组存储对象动态赋值:实质是使用了格式2
数组存储对象静态赋值:实质是使用了格式3
5、数组内存分析
关键字new 会在堆内存中开辟相应的空间,分别赋予了两个数组不同的地址。当比较的时候,比较的是两个数组的地址。
int[] in=new int[]{1,2,3}; int[] in2=new int[]{1,2,3}; System.out.println("in.equals(in2):"+in.equals(in2));
结果: in.equals(in2):false
分析:
关键字new 会在堆内存中开辟相应的空间,分别赋予了两个数组不同的地址,所以为false
相关文章推荐
- JS/Jquery 中怎么定义存储一个类似map中key-value形式的变量,并且怎样动态赋值key和value?
- S/Jquery 中怎么定义存储一个类似map中key-value形式的变量,并且怎样动态赋值key和value?
- 【iOS开发-75】iOS数据存储的三种简单方式:plist、preference以及用NSCoding存储对象
- Android拍照存储文件报open failed: ENOENT (No such file or directory)(适配不同手机的方法)以及6.0动态权限
- Java中解锁数组正确姿势以及赋值,foreach遍历?,Java自带的对数组排序,比较等等的静态方法总结
- 栈的定义以及不同的存储结构的AVA实现
- 数组指针的三种定义形式
- 控制对对象的访问——代理模式详解(静态代理和动态代理的区别以及联系)
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的不同处理方法
- 类中定义数组提示:静态成员引用必须与特定对象相对
- js 动态创建一个变量,以字符串形式定义变量,定义对象
- 1.5 使用new创建动态结构和自动, 静态, 动态三种存储方式
- JavaScript基础(基本语法:变量、语句、数组、函数、对象、全局方法以及js与java不同,js与html关联)
- OpenCV Mat 只能用静态数组定义时初始化,动态数组赋值给Mat需要逐元素进行. MATLAB,OpenCV,VS混合编程
- 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板
- 堆和栈以及静态存储区分配时机的不同
- 获取一个对象的属性/属性值,以及动态给属性赋值
- JVM概念中的Java对象的大小,以及三种引用类型的定义与区分
- 二维动态数组定义及二维静态数组与**P的区别
- 数组的概念,定义格式,取值,赋值以及数组的初始化