java数组初始化及内存分析
来源:互联网 发布:nginx 取header 编辑:程序博客网 时间:2024/05/18 03:19
数组:相同类型的、用一个标识符名封装到一起是一个对象序列或基本类型数据序列。
一维数组的声明: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]=2a1[1]=3a1[2]=4a1[3]=5a1[4]=6
- java数组初始化及内存分析
- Java语言基础-数组的静态初始化和内存分析
- Java语言基础-数组的动态初始化和内存分析
- java数组内存分析
- java数组内存分析
- Java数组内存分析
- java数组声明及初始化
- JAVA数组初始化及应用
- 3维数组初始化及内存释放
- java 数组及内存
- 13.java语言基础-数组的动态初始化和内存分析
- java数组的初始化与内存分配
- Java数组初始化与内存控制
- Java--数组初始化,内存以及操作
- java数组与内存分析
- java 二维数组内存分析
- java内存相关及程序初始化顺序
- 数组及java内存结构
- MongoDB数据库设计中6条重要的经验法则(三)
- Java数据类型和MySql数据类型对应表
- 潘洛斯三角形 不可能图形unity实现
- nodejs routines:EVP_PKEY_get1_RSA:expecting an rsa key: error 及npm升级nodejs
- php取得当前时间函数
- java数组初始化及内存分析
- Oracle数据库timestamp选择时间间隔大于30分的记录 和 INTERVAL DAY TO SECOND数据类型详解
- 音频设备的3种硬件接口--PCM,IIS和AC97
- 感想
- 分类器是如何做检测的?(2)——【续】检测中的LBP和HAAR特征计算过程
- Android Phone模块详解
- iOS开发-------文字表情(NSAttributeString 属性字符串 以及 NSRegularExpression 正则表达类)
- java反射访问私有成员变量
- 将数据库数据放到redis中并保持数据一致性方案