java数组初始化及内存分析
2015-09-29 09:40
211 查看
数组:相同类型的、用一个标识符名封装到一起是一个对象序列或基本类型数据序列。
一维数组的声明:1 int[ ] a1; 2 int a1[ ]
两种格式含义一样,第二种符合c和c++程序员的习惯。第一种或许更合理,表明类型是“一个int型数组”。
编译器不允许指定数组的大小。声明数组的时候不能指定其长度(元素的个数)如int a[5]; //非法。初始化的时候可以指定大小。
Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;现在只是对数组的一个引用(已经为该引用分配了存储空间),并没有给数组对象本身分配任何空间,初始化才会创建相应的存储空间。
初始化的两种方式:
静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;
格式:数组名 = new 数组类型[]{元素1,元素2,元素3...元素n}; a1 = new int{1,2,3,4,5};
简化语法:数组名 = {元素1,元素2,元素3...元素n}; a1 = {1,2,3,4,5};
动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;
格式:数组名 = new 数组类型[数组长度]; a1 = new int[ 8];
注意:不能静态和动态初始化同时使用,也就是说不能同时指定数组的长度和元素;数组的长度一旦确定,就不能改变,也就数组是定长的;
所有数组都有一个固有成员,length,通过 数组名.length 可获得数组成员个数。java数组下标是从0开始的,最大下标为数组名.length-1。超出这个边界会出现异常数组脚标越界异常(ArrayIndexOutOfBoundsException)。
内存分析:
示例:
给出了a1的初始值,但a2在后面被赋给a1数组,俩数组指向相同的堆地址,所以a2数组的值改变,a1也跟着改变。
一维数组的声明:1 int[ ] a1; 2 int a1[ ]
两种格式含义一样,第二种符合c和c++程序员的习惯。第一种或许更合理,表明类型是“一个int型数组”。
编译器不允许指定数组的大小。声明数组的时候不能指定其长度(元素的个数)如int a[5]; //非法。初始化的时候可以指定大小。
Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;现在只是对数组的一个引用(已经为该引用分配了存储空间),并没有给数组对象本身分配任何空间,初始化才会创建相应的存储空间。
初始化的两种方式:
静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;
格式:数组名 = new 数组类型[]{元素1,元素2,元素3...元素n}; a1 = new int{1,2,3,4,5};
简化语法:数组名 = {元素1,元素2,元素3...元素n}; a1 = {1,2,3,4,5};
动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;
格式:数组名 = new 数组类型[数组长度]; a1 = new int[ 8];
注意:不能静态和动态初始化同时使用,也就是说不能同时指定数组的长度和元素;数组的长度一旦确定,就不能改变,也就数组是定长的;
所有数组都有一个固有成员,length,通过 数组名.length 可获得数组成员个数。java数组下标是从0开始的,最大下标为数组名.length-1。超出这个边界会出现异常数组脚标越界异常(ArrayIndexOutOfBoundsException)。
内存分析:
示例:
public class ArrayInit{ public static void main(String[] args){ int[] a1 ={1,2,3,4,5}; int[] a2; a2 =a1; for(int i =0;i<a2.length;i++) a2[i]=a2[i]+1; for(int i =0;i<a1.length;i++) System.out.println("a1["+ i +"] =" + a1[i]); } } 输出: a1[0]=2 a1[1]=3 a1[2]=4 a1[3]=5 a1[4]=6
给出了a1的初始值,但a2在后面被赋给a1数组,俩数组指向相同的堆地址,所以a2数组的值改变,a1也跟着改变。
相关文章推荐
- Java数据类型和MySql数据类型对应表
- 举例讲解Java中的多线程编程
- dos命令配置jdk环境
- java数字字符串压缩
- Eclipse中注释部分的签名
- 各种排序算法的分析及java实现
- 【Eclipse】利用本地历史记录回档
- java使用poi处理excel防止数字变成科学计数法的形式
- java 读取数据库图片地址,将图片展示在jsp页面(图片必须在服务器硬盘上,此方法才可成功)
- java使用poi处理excel防止数字变成科学计数法的形式
- Java 字符的验证
- 八大排序算法 java实现
- Java深入---百万数据提取最大的前一百个数据
- ACM中Java的使用
- Java 7 中 NIO.2 的使用——第四节 文件和目录
- 事务基础知识-->Spring事务管理
- 线程本地变更ThreadLocal-->Spring事务管理
- 注解-->Spring配置
- XML基础知识-->Spring配置
- 属性编辑器PropertyEditor-->Spring IoC