软件构造错题整理---3.1 Data and Type check

1
Java中primitive Type【注:Java原始类型】(int,char,boolean)和Object Type(String,Boolean,Calendar)的差异是:
a前者在栈分配内存,后者在堆分配内存
b使用前者的时空代价第,使用后者的时空代价高
c前者和后者中的某些类型可以通过auto-boxing进行自动转换,例如int和integer.

2
static type checking和dynamic type checking的区别不争确的是:
前者能发现数组越界访问的问题(数组越界访问的问题是dynmaic type checking发现的,想想你的程序运行起来出现了多少次数组越界访问)

3
下面代码段中,会发生在运行阶段的错误是:
a.int arr[]=new int[]{1,2};
arr[2]=1;
会在运行阶段发生错误,因为是数组越界访问

c.String s=null;
System.out.println(s==null);
一点问题都没有

d.String s=null;
System.out.println(s.length());
这个会在运行阶段出问题,因为s都没有分配对象,所以会访问空指针

4
—————不具备static typing(static type checking)的能力
python,ruby,Perl,PHP。

猜你喜欢

转载自blog.csdn.net/cobracanary/article/details/88833691
今日推荐