java求职宝典习题10.docx

上传人:b****5 文档编号:2938806 上传时间:2022-11-16 格式:DOCX 页数:32 大小:34.84KB
下载 相关 举报
java求职宝典习题10.docx_第1页
第1页 / 共32页
java求职宝典习题10.docx_第2页
第2页 / 共32页
java求职宝典习题10.docx_第3页
第3页 / 共32页
java求职宝典习题10.docx_第4页
第4页 / 共32页
java求职宝典习题10.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

java求职宝典习题10.docx

《java求职宝典习题10.docx》由会员分享,可在线阅读,更多相关《java求职宝典习题10.docx(32页珍藏版)》请在冰豆网上搜索。

java求职宝典习题10.docx

java求职宝典习题10

【考题题干】根据下面的程序代码,哪些选项的值返回true?

publicclassSquare{

longwidth;

publicSquare(longl){

width=l;

}

publicstaticvoidmain(Stringarg[]){

Squarea,b,c;

a=newSquare(42L);

b=newSquare(42L);

c=b;

longs=42L;

}

}

A.a==b;

B.s==a;

C.b==c;

D.a.equals(s)

【试题分析】

equals()是Object类的一个方法,指示某个其他对象是否与此对象“相等”。

由于类Object是类层次

结构的根类。

所以它是每个类的超类。

所示每个类都可以重写equals()方法,如String类。

如果没有重

写(override)新类的equals(),则该方法和==操作符一样在两个变量指向同一对象时返回真,但是Java

推荐的是使用equals()方法来判断两个对象的内容是否一样。

考察“==”及方法“equals()”的用法。

意以下几点区别。

?

8?

0引用类型比较引用;基本类型比较值。

?

8?

0equals()方法只能比较引用类型,“==”可比较引用及基本类型。

?

8?

0用equals()方法进行比较时,对类File、String、Date及封装类(WrapperClass)来说,是比较

类型及内容。

?

8?

0用“==”进行比较时,符号两边的数据类型必须一致(可相互转换的基本类型除外),否则编

译出错。

在此题中,因为a,b,c是三个对象面,但是c=b这条语句,将c的内存地址指向了b,所以c和b

指向了同一个地址,相当于c和b是同一个对象,由于==操作符只有当两个变量指向同一对象时返回

真,故C是正确的。

【参考答案】C

面试题2:

int和Integer有什么区别

Java 提供两种不同的类型:

引用类型和原始类型(或内置类型)。

Int是Java 的原始数据类型,Integer

是Java 为int提供的封装类。

Java 为每个原始类型提供了封装类。

原始类型封装类,例如:

Boolean是

boolean的封装类;Characte是char的封装类;Byte是byte的封装类;Short是short的封装类;Integer

是int的封装类;Long是long的封装类;Float是float的封装类;Double是double的封装类。

引用类型

和原始类型的行为完全不同,并且它们具有不同的语义。

引用类型和原始类型具有不同的特征和用法,

它们包括:

大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类

的实例数据时所指定的默认值。

对象引用实例变量的默认值为null,而原始类型实例变量的默认值与它

们的类型有关。

面试题3:

int的取值范围是哪个

【考题题干】下面的选项中属于int的取值范围是哪个?

77

A.-2~2–1

32

B.0~2–1

1515

C.-2~2–1

3131

D.-2~2-1

【参考答案】D

面试题4:

char的取值范围是多少

【考题题干】char型数据的取值范围是多少?

A.–128~127

B.0~32767

C.由平台决定

D.0~65535

【参考答案】D

面试题5:

在char中能存储汉字吗

【考题题干】char型变量中能不能存贮一个中文汉字?

为什么?

【参考答案】是能够定义成为一个中文的,因为Java 中以unicode编码,一个char占16个字节,

所以放一个中文是没问题的

面试题6:

基本数据类型与String之间的转换

【考题题干】表达式10.4+”4.2″的结果是什么?

A.返回double类型14.6

B.返回String类型”14.6″

C.返回long类型14

D.返回String类型”10.44.2″

【试题分析】该面试题中,当+运算符两侧的操作数的类型不一致时,需要统一类型,这时就会发

生类型转换。

当一个操作数为原始数据类型,另外一个为字符串时,则基本类型的操作数要转换为等价

的字符串,这时“+”不再是加运算符而是连接符,所以表达式10.4+”4.2″返回的结果是”10.44.2″。

【参考答案】D

面试题7:

关于final的参数传递

【考题题干】在下面程序标明的位置处插入哪条语句会导致编译错误?

publicclassFinalUse{

publicstaticvoidmain(String[]args){

intx=0;

finalinty=1;

int[]z={2};

finalint[]n={3};

Use(x,y,z,n);

}

staticvoidUse(finalintx,inty,finalint[]z,int[]n){

//插入内容

}

}

请选择两个正确的答案:

A.x++

B.y++

C.y=x

D.z[0]++

E.n[0]++

F.z=n

【试题分析】声明形参的时候可以在方法调用的参数调用之前加上关键字final。

final参数也可以叫

做空白最终变量,也可以当作常量。

即在对其赋值之前(例如方法调用之前),该变量为空(为初始化),

赋值之后,在该变量的生存周期内只能调用再也不能改变变量的值。

final变量只可以被赋值一次。

在方

法调用时,final形式参数被赋予实际参数的值。

在方法内部,不能对final参数进行重新赋值或者是修

改。

在Use方法中,x是final类型的,因此A选项中x++表示是可以改变x的值的,所以A会导致编

译错误。

y,n[0]是int变量,所以y,n[0]值是可以变化的,因此插入B和E选项都会编译通过的。

C选

项是把x的值赋给y,改变是y的内容,不会改变x的值,所以插入C选项会编译通过的。

在D选项中,

由于z是个int型数组,它是属于复合类型,在进行值传递的时候,传给形参的是地址值,而不是内容,

因此finalint[]z就表示z数组不能在指向其他的数组对象,但是z数组中的内容是可以改变的,因此z

[0]++表示的是内容上的改变,所以是没有错误的,可以编译通过的。

F选项正好与D选项相反,同理,

F就是错误的。

【参考答案】AF

面试题8:

关于默认初始化的叙述哪些选项是正确

【考题题干】关于数组元素默认初始化,下面哪4个选项是正确的?

A.int->–1

B.String->“”

C.Person->null

D.char->?

6?

7\u0000?

6?

8

E.float->0.0

F.boolean->true

【试题分析】请看下面的各数据类型的元素初始化值,如表1所示。

表1数组元素初始化值

元素类型初始化值

byte0

short0

int0

long0

char?

6?

7\U0000?

6?

8

float0.0f

double0.0d

booleanfalse

ObjectReferencenull

注意:

原始数据类型的初始化都是0,char类型的数组元素初始化默认是Unicodezero,即‘\U0000’,

为空字符。

表1是各数据类型的初始值在缺省的情况下,系统为其设置的默认初始值。

对比上面的表格就可以

很明显的看出答案喽!

在这里我就不必在讲解为什么了。

【参考答案】CD

面试题9:

编程题(求最大数)

【考题题干】求一个长度为10的整型数组中最大元素,釆用随机的赋值方式并将各元素的值输出。

【试题分析】要求数组中的最大元素,也需要遍历整个数组。

它的基本思路是:

先假定第一个元素

最大,然后将这个元素存储在一个临时变量中,将这个变量依次与后面的元素比较,如果有比这个临时

变量大的,则存储在这个变量中。

当所有元素比较完成后,这个临时变量中存储的就是最大元素。

这一

方法,也可以用来求最小元素。

【参考答案】

publicclassMaxArray{

publicstaticvoidmain(Stringargs[]){

intarry[]=newint[10];

setValue(arry);

showValue(arry);

System.out.println(“\n最大值为:

”+getMaxValue(arry));

}

//返回数组中的最大值

publicstaticintgetMaxValue(inta[]){

intmax=a[0];//假定第一个元素最大;

for(inti=1;i

if(a>max)

max=a;//如果有比max大的,记录下来

returnmax;

}

//为数组元素赋随机值

publicstaticvoidsetValue(inta[]){

for(inti=0;i

a=(int)(Math.random()*100);

}

//显示数组中所有元素

publicstaticvoidshowValue(inta[]){

System.out.println(“数组元素值为:

”);

for(inti=0;i

System.out.print(””+a);

if((i+1)%5==0)

System.out.println();//每5个元素换一行

}

}

}

运行结果如下:

(仅供参考)

数组序列为:

2223173864

3065484249

最大值为:

65

面试题10:

如何获得数组大小

【考题题干】给出下面声明,假设已经初始化了该数组,则下面哪个表达式会返回数组的大小。

int[][]array=newint[5][];

请选出一个正确的答案。

A.array[].length();

B.array.length();

C.array[2].length;

D.array[0][0].length;

E.array[3].size();

F.array.size();

【试题分析】每个数组都是对象,并有一个length字段,来表示该数组的长度。

Java 中的数组总是

知道它们的大小,这表现在length字段。

在本题中A和B选项是格式错误,数组有length字段,而不是length()方法。

习惯了使用类似与

String类型的length()方法来获得字符串长度的面试者一定要注意这点。

所以A和B是错误的。

D选项也是错误的,因为array是个二维数组,array[0]是一维数组而array[0][0]指的就是int类型的

数据了,基本数据类型没有length这个属性,所以,在语义上就是错误的。

E和F这两个选项是将数组和集合混淆了,只有集合如List要求返回列表中的元素个数是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1