JAVA基础数组的问题
有两道问题先谢谢各位了第一道:publicclassChuShiHua1{publicstaticvoidmain(Stringargs[]){//创建一个boolean...
有两道问题 先谢谢各位了
第一道:
public class ChuShiHua1
{
public static void main(String args[])
{
//创建一个boolean型的数组,长度为2
boolean bo[] = new boolean[2];
//创建一个byte型的数组,长度为2
byte b[] = new byte[2];
//创建一个char型的数组,长度为2
char c[] = new char[2];
//创建一个short型的数组,长度为2
short s[] = new short[2];
//创建一个int型的数组,长度为2
int i[] = new int[2];
//创建一个long型的数组,长度为2
long l[] = new long[2];
//创建一个float型的数组,长度为2
float f[] = new float[2];
//创建一个double型的数组,长度为2
double d[] = new double[2];
System.out.println(bo[0]);
System.out.println(b[0]);
System.out.println(c[0]);
System.out.println(s[0]);
System.out.println(i[0]);
System.out.println(l[0]);
System.out.println(f[0]);
System.out.println(d[0]);
}
}
为什么char输出是空格 而其他的都是零
第二道:
public class ChuShiHua2
{
public static void main(String args[])
{
//创建一个boolean型的数组,长度为2
Boolean bo[] = new Boolean[2];
//创建一个byte型的数组,长度为2
Byte b[] = new Byte[2];
System.out.println(bo[0]);
System.out.println(b[0]);
}
}
此代码和第一道的基本一样 但为什么输出的是两个null 展开
第一道:
public class ChuShiHua1
{
public static void main(String args[])
{
//创建一个boolean型的数组,长度为2
boolean bo[] = new boolean[2];
//创建一个byte型的数组,长度为2
byte b[] = new byte[2];
//创建一个char型的数组,长度为2
char c[] = new char[2];
//创建一个short型的数组,长度为2
short s[] = new short[2];
//创建一个int型的数组,长度为2
int i[] = new int[2];
//创建一个long型的数组,长度为2
long l[] = new long[2];
//创建一个float型的数组,长度为2
float f[] = new float[2];
//创建一个double型的数组,长度为2
double d[] = new double[2];
System.out.println(bo[0]);
System.out.println(b[0]);
System.out.println(c[0]);
System.out.println(s[0]);
System.out.println(i[0]);
System.out.println(l[0]);
System.out.println(f[0]);
System.out.println(d[0]);
}
}
为什么char输出是空格 而其他的都是零
第二道:
public class ChuShiHua2
{
public static void main(String args[])
{
//创建一个boolean型的数组,长度为2
Boolean bo[] = new Boolean[2];
//创建一个byte型的数组,长度为2
Byte b[] = new Byte[2];
System.out.println(bo[0]);
System.out.println(b[0]);
}
}
此代码和第一道的基本一样 但为什么输出的是两个null 展开
展开全部
第一道,所用的都是基本数据类型,0是初值,而char的初值就是空格,对应的ASCII码是0
第二道,之所以输入的是null,是因为里面用的是类,而不是基本数据类型,类的初值是为null的。。Byte是基本数据类型byte的包装类。。是一个类而不是基本数据类型
希望对你有帮助。。。仍有问题可以HI我。。。
第二道,之所以输入的是null,是因为里面用的是类,而不是基本数据类型,类的初值是为null的。。Byte是基本数据类型byte的包装类。。是一个类而不是基本数据类型
希望对你有帮助。。。仍有问题可以HI我。。。
追问
我还是没弄明白第二题
两道题的代码基本一样 除了第一道是小写boolean 而第二道是大写Boolean 难道区别在这里吗
追答
是的。。。小写的boolean是JAVA里面的基本数据类型。。。。
而大写的Boolean是JAVA里面的一个类,所以初值为null
类的初值是为null的。。。。
展开全部
一个是基本类型,一个是引用类型,char的默认值是空格,引用类型的默认值都是null.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我先回答第二个问题:因为第二个中你建立的是对象数组,初始化值是null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java中数组使用new 关键字分配空间后会赋默认值,默认值的值要看数组的类型。
规律是:
基本变量:byte,short,int,long 初始化为0
boolean初始化为false
float,double初始化为0.0
char初始化为 '\u0000'
引用类型初始化为null
规律是:
基本变量:byte,short,int,long 初始化为0
boolean初始化为false
float,double初始化为0.0
char初始化为 '\u0000'
引用类型初始化为null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题属于Java的赋值原则
boolean,int,char ,float, double属于基本类型,如果未赋值,java默认给boolean的自动赋值为false,float、double自动赋值为0.0,char为空,其他各供引用类型变量自动赋值为null
在第二个class中,Boolean和Byte都属于引用类型(类),所以未赋值的时候,会为null
具体请参考Java编程思想或基础类的书
boolean,int,char ,float, double属于基本类型,如果未赋值,java默认给boolean的自动赋值为false,float、double自动赋值为0.0,char为空,其他各供引用类型变量自动赋值为null
在第二个class中,Boolean和Byte都属于引用类型(类),所以未赋值的时候,会为null
具体请参考Java编程思想或基础类的书
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询