java数组

来源:互联网 发布:该域名未授权解决方案 编辑:程序博客网 时间:2024/06/04 23:30

java数组的静态和动态的初始化及格式和注意事项

/** * java数组是静态的,必须经过初始化后才能使用,并且一旦初始化指定了数组的长度,该长度是不可变的。 *  *  *  *  A:数组静态初始化的格式: * 格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…}; * 初始化时显示指定每个数组元素的初始值,由系统决定数组的长度 * 简化格式: * 数据类型[] 数组名 = {元素1,元素2,…}; *  *  B:java数组动态初始化 *  动态初始化:就是与静态初始化相对的, *  其实动态初始化就是在初始化的时候指定数组长度(这时已经分配内存) *   *   *  注意:所有的局部变量都是放在栈内存中保存的, *  不管其实基本类型的变量还是引用类型的变量,都是存储在各自的方法栈区中; *  但引用类型变量所引用的对象(包括数据,普通java对象)则总是存储在堆内存中。 *   *  Java中数组是引用变量(类似于C语言中的指针变量),我们初始化操作后, *  就是将它的引用指向了堆内存中开辟的指定长度的连续内存空间。 *  所以我们真正所做的初始化是将栈中数组变量指向有效的内存。 *   *   *  数组相关的两个异常 *   a:ArrayIndexOutOfBoundsException:数组索引越界异常 *      原因:你访问了不存在的索引。 *  b:NullPointerException:空指针异常 * 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。 * int[] arr = {1,2,3}; * arr = null; * System.out.println(arr[0]); */public class f {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub//数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};int[] arr = new int[]{11,22,33,44,55};//int[] arr = new int[5]{11,22,33,44,55};//不允许动静结合//Cannot define dimension expressions when an array initializer is providedint[] arr2 = {11,22,33,44,55};//静态初始化的简写形式int[] arr3;//声明数组引用arr = new int[]{11,22,33,44,55};int[] arr4;//arr2 = {11,22,33,44,55};//简写形式声明和赋值要在同一行//Array constants can only be used in initializersSystem.out.println(arr2);System.out.println(arr2[4]);}}


0 0
原创粉丝点击