java中数组变量名的默认值 如定义int[] a;此时a的默认值应该为null吧,如

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中数组变量名的默认值 如定义int[] a;此时a的默认值应该为null吧,如相关的知识,希望对你有一定的参考价值。

java中数组变量名的默认值
如定义int[] a;此时a的默认值应该为null吧,如何才能测试看到呢?

看你的数组定义在哪里了,定义在类成员上默认值为null,直接打印就可以了。如果定义在方法里必须初始化。追问

就在主方法里,想测试一下老师说的一句话,引用类型的变量默认值为null,但是定义了数组如果不初始化是不能直接打印a的,有什么方法可以看到new之前a的值到底是不是null

追答

老师讲的默认值是建立在类成员的基础上的。局部变量是没有默认初始值的。null也是个初始值。

参考技术A 判断一下不就行了,如果是Null,就返回true,否则返回false

JAVA数组总结

关于数组赋值
int[] a= a是引用变量
int [] a =new int[元素个数]
数组值没有初始化 默认值0(数组元素类型)
动态初始化数组 int[] a=new int[4] 1,2,3,4,
引用类型是什么? 引用类型是个线索。 用来找到堆中的真正数据
引用类型 也是值传递,形参的改变不会影响实参
自己理解:改变线索,原值不变;改变柜子中东西,原值改变。
找到数组的线索
Java中3个区域:
栈区 堆区 方法区
局部变量a 1,2,3(数组)
int[] a=;
int [] b=a;//b也指向a指向的数组对象
b=1,1,1b的指向改变不会影响a和a指向的对象
b[0]=100;改变的是b指向的数组对象的内容。会影响a

四种变量:
形参和局部变量: 栈区
属性: 堆区(对象内部)
静态属性: 方法区 (随着类)
int[] a=null 线索A 没有指向任何数组 继续访问a[0] NullPointerException 提示错误
int[] b=a b 和a指向同一个数组
引用的方法也是调用:
形参的值不会改变实参的值
实参传递给形参 相当于又形成了一个新的变量

java 中垃圾回收(garbage collection)
垃圾:没有引用指向的对象(数组) 没有使用价值

获取数组的长度
a.length;
String s s.length();

下标:intdex () 可能出现的问题:空指和 越界
数组的遍历
for(int i=0;i<a.length;i++)

foreach
for(int element:a)
element

以上是关于java中数组变量名的默认值 如定义int[] a;此时a的默认值应该为null吧,如的主要内容,如果未能解决你的问题,请参考以下文章

java类中构造函数中:数组怎样初始化

JAVA中,是否先要用常量设置一个值,在用值定义数字,还是直接用常量定义值或数字?

JAVA数组总结

C语言中定义int变量,默认值是多少

java基础 javaBean对象成员变量默认值及数组默认值

数组元素的默认初始化值