赞
踩
目录
对于变量来说,java定义就是声明
例如: int[] a; 我们可是说它是定义也可以说它是声明
初始化或者直接在声明时完成,或者放到构造函数里进行,或者用{}扩起来
没初始化时,编译器只会提示说identifier expected。
- public class StudentTest {
-
- private int i ;
- /**
- * Label identifier expected 缺标号标识符
- * Destructor Identifier expected 缺析构函数标识符
- * Pointe type identifier expected 缺指针类型标识符
- *
- * 编译器提示说identifier expected
- **/
- //此处若给变量赋值,会报错,JAVA所有的除定义或声明语句之外的任何语句都必须在方法内部(而方法又必须在某个类内部,不存在游离于类外部的方法或成员)
- // i = 2;
- /**
- * 1、声明时初始化
- **/
- private int j = 2;
-
- /**
- * 2、{}初始化
- **/
- {
- Student stu = new Student();
- stu.name = "dd";
- }
- /**
- * 3、构造器初始化
- **/
- Student stu = new Student("dd");
- }
Java语言中数组必须先初始化,然后才可以使用。
初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。
注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值:
基本数据类型的整数类型(byte、short、int、long)默认值是0;
基本数据类型的浮点类型(float、double)默认值是0.0;
基本数据类型的字符类型(char)默认值是'\u0000';
基本数据类型的布尔类型(boolean)默认值是false;
类型的引用类型(类、数组、接口、String)默认值是null。
初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组的长度;
1. arrayName = new type[]{element1,element2,element3...}
int[] arr2;
arr2 = new int[]{1,2,3};
2 简化的静态初始化方式
type[] arrayName = {element1,element2,element3...};
int[] arr1 = {1,2,3};
初始化时由程序员指定数组的长度,由系统初始化每个数组元素的默认值。
arrayName = new type[length];
int[] arr3 = new int[3];
注意:不要同时使用静态初始化和动态初始化,也就是说,不要在进行数组初始化时,既指定数组的长度,也为每个数组元素分配初始值。
一旦数组完成初始化,数组在内存中所占的空间将被固定下来,所以数组的长度将不可改变。
String[] str = {"1","2","3"}; 这种形式叫数组初始化式(ArrayInitializer),只能用在声明同时赋值的情况下。
String[] str = new String[]{"1","2","3"}是一般形式的赋值,=号的右边叫数组字面量,数组字面量可以用在任何需要一个数组的地方。
- 方式一:
- int[] arr1 = {1,2,3};//正确
-
- int[] arr11;
- arr11 = {1,2,3};//错误写法 编译不同过
-
-
- 方式二和方式三,声明和内存分配是分开的,这一步是在栈空间分配一个引用,存放的是一个引用,null
- 方式二直接赋值
- int[] arr2;
- arr2 = new int[]{1,2,3};
- 方式三 默认初始化,基本类型是 0 布尔类型是 false 引用类型为null
- int[] arr3;
- arr3 = new int[3];
- 到这一步的时候jvm才开始在内存堆区域分配空间,并赋值
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。