java数组的理解--学习总结
2016-01-16 18:13
393 查看
java 数组里面要求一个数组里面只能存储一种数据类型的数据。
1.定义数组
java里面支持两种方式来定义数组。
例:type[] arrayName; 或type arrayName[];
对于type[] arrayName类型来说,很容易知道定义的是type[]的类型,区别于type类型。第二种的可读性较差,在
java语言中已不常用。
在java中,数组只是一种引用类型的变量,它并没有指向任何有效的内存。因此定义数组时不能定义数组的长度。所以
也并没有有效的内存来处理数组元素。只有对这个数组进行初始化才可以进行使用。
2.数组的初始化
数组的初始化有两种方式:静态初始化和动态初始化
1、静态初始化
arrayName = new type[]{element1,element2,element3,element4};
例:将数组的定义,与初始化同时完成
int[] intArr;
intArr =new int[]{5,6,8,20};
2、动态初始化
arrayName = new type[length];
例:将定义数组与数组的初始化同时完成
int[] prices = new int[5];
3.使用数组
例:for(int i = 0;i<prices.length;i++)
{
System.out.println(prices[i]);
}
4.foreach 循环
for(type variableName:array|collection)
{
System.out.println(variableName);
}
5.深入数组理解
(1)内存中的数组
数组只是一种引用数组类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。只有该引用变量指向一段有效的内存时,才可以访问对应数组元素。
实际的数组对象被存储在堆(heap)内存中,而数组引用变量是一个局部变量,它被存在栈(stack)内存中。
所有的方法中定义的局部变量都是放在栈内存中的。必须牢记的是,定义并初始化一个数组以后,在内存中分配的两个空间,一个用于存放数组的引用变量,另一个用于存放数组本身。
(2)基本类型数组的初始化
public class PrimitiveArrayTest
{
public static void main(String[] args)
{
int[] iArr;
iArr = new int[5];
for(int i = 0;i<iArr.length;i++)
{
iArr[i]=i+10;
}
}
}
动态初始化的典型过程如下:
(3)多维(二维)数组的使用
定义:type[][] arrName;
arrName = new type[length][];
例:
public class TwoDimensionTest
{
public static void main(String[] args)
{
int[][] a;
a = new int[]4[];
for(int i = 0;len = a.length;i<len;i++)
{ System.out.println(a[i]);
}
a[0] = new int[2];
a[0][1] = 6;
for(int i = 0,len = a[0].length;i<len;i++)
{ System.out.println(a[0][i]);
}
}
}
这段代码的执行过程如下所示:
1.定义数组
java里面支持两种方式来定义数组。
例:type[] arrayName; 或type arrayName[];
对于type[] arrayName类型来说,很容易知道定义的是type[]的类型,区别于type类型。第二种的可读性较差,在
java语言中已不常用。
在java中,数组只是一种引用类型的变量,它并没有指向任何有效的内存。因此定义数组时不能定义数组的长度。所以
也并没有有效的内存来处理数组元素。只有对这个数组进行初始化才可以进行使用。
2.数组的初始化
数组的初始化有两种方式:静态初始化和动态初始化
1、静态初始化
arrayName = new type[]{element1,element2,element3,element4};
例:将数组的定义,与初始化同时完成
int[] intArr;
intArr =new int[]{5,6,8,20};
2、动态初始化
arrayName = new type[length];
例:将定义数组与数组的初始化同时完成
int[] prices = new int[5];
3.使用数组
例:for(int i = 0;i<prices.length;i++)
{
System.out.println(prices[i]);
}
4.foreach 循环
for(type variableName:array|collection)
{
System.out.println(variableName);
}
5.深入数组理解
(1)内存中的数组
数组只是一种引用数组类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。只有该引用变量指向一段有效的内存时,才可以访问对应数组元素。
实际的数组对象被存储在堆(heap)内存中,而数组引用变量是一个局部变量,它被存在栈(stack)内存中。
所有的方法中定义的局部变量都是放在栈内存中的。必须牢记的是,定义并初始化一个数组以后,在内存中分配的两个空间,一个用于存放数组的引用变量,另一个用于存放数组本身。
(2)基本类型数组的初始化
public class PrimitiveArrayTest
{
public static void main(String[] args)
{
int[] iArr;
iArr = new int[5];
for(int i = 0;i<iArr.length;i++)
{
iArr[i]=i+10;
}
}
}
动态初始化的典型过程如下:
(3)多维(二维)数组的使用
定义:type[][] arrName;
arrName = new type[length][];
例:
public class TwoDimensionTest
{
public static void main(String[] args)
{
int[][] a;
a = new int[]4[];
for(int i = 0;len = a.length;i<len;i++)
{ System.out.println(a[i]);
}
a[0] = new int[2];
a[0][1] = 6;
for(int i = 0,len = a[0].length;i<len;i++)
{ System.out.println(a[0][i]);
}
}
}
这段代码的执行过程如下所示:
相关文章推荐
- JavaSE-可变个数的形参
- 算法之 冒泡排序
- java编程思想阅读心得——第一章对象导论
- Java String.split()用法小结
- 根据excel中的列表值,导入注解单元写入到指定包下所有java类方法中
- DBConnection公共类的使用-------java操作数据库(3)
- JAVA线程池原理以及常用线程池介绍
- Eclipse 智能提速和推荐10个快捷键
- JdbcTemplateUtil公共类的使用-------java操作数据库(2)
- java流与文件——对象流和序列化
- JAVA生成四位数的验证码
- 一个导出指定包下 spring Controller excel清单的例子(包括包名、类名、方法名、访问路径)
- HibernateUtil公共类的使用------java操作数据库(1)
- JAVA并发处理经验(四)并行模式与算法4:并行搜索模式
- Java中的输入与输出
- 面试 -- SpringMVC和Struts2 的区别
- java byte【】数组与文件读写(增加新功能)
- java 中反射能访问私有属性吗?
- java使用dbcp连接池实现jdbc动态新增,修改,删除,切换数据库源
- java随笔<1>连载