java求职宝典习题10Word下载.docx
《java求职宝典习题10Word下载.docx》由会员分享,可在线阅读,更多相关《java求职宝典习题10Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
考察“==”及方法“equals()”的用法。
注
意以下几点区别。
?
8?
0引用类型比较引用;
基本类型比较值。
0equals()方法只能比较引用类型,“==”可比较引用及基本类型。
0用equals()方法进行比较时,对类File、String、Date及封装类(WrapperClass)来说,是比较
类型及内容。
0用“==”进行比较时,符号两边的数据类型必须一致(可相互转换的基本类型除外),否则编
译出错。
在此题中,因为a,b,c是三个对象面,但是c=b这条语句,将c的内存地址指向了b,所以c和b
指向了同一个地址,相当于c和b是同一个对象,由于==操作符只有当两个变量指向同一对象时返回
真,故C是正确的。
【参考答案】C
面试题2:
int和Integer有什么区别
Java
提供两种不同的类型:
引用类型和原始类型(或内置类型)。
Int是Java
的原始数据类型,Integer
是Java
为int提供的封装类。
为每个原始类型提供了封装类。
原始类型封装类,例如:
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
面试题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″。
面试题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?
8
E.float->
0.0
F.boolean->
true
【试题分析】请看下面的各数据类型的元素初始化值,如表1所示。
表1数组元素初始化值
元素类型初始化值
byte0
short0
int0
long0
char?
7\U0000?
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<
a.length;
i++)//依次与后面的元素进行比较
if(a>
max)
max=a;
//如果有比max大的,记录下来
returnmax;
//为数组元素赋随机值
publicstaticvoidsetValue(inta[]){
for(inti=0;
i++)
a=(int)(Math.random()*100);
//显示数组中所有元素
publicstaticvoidshowValue(inta[]){
System.out.println(“数组元素值为:
”);
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字段,来表示该数组的长度。
中的数组总是
知道它们的大小,这表现在length字段。
在本题中A和B选项是格式错误,数组有length字段,而不是length()方法。
习惯了使用类似与
String类型的length()方法来获得字符串长度的面试者一定要注意这点。
所以A和B是错误的。
D选项也是错误的,因为array是个二维数组,array[0]是一维数组而array[0][0]指的就是int类型的
数据了,基本数据类型没有length这个属性,所以,在语义上就是错误的。
E和F这两个选项是将数组和集合混淆了,只有集合如List要求返回列表中的元素个数是