1、java求职宝典习题10【考题题干】根据下面的程序代码,哪些选项的值返回true ?public class Square long width;public Square(long l) width = l;public static void main(String arg) Square a, b, c;a = new Square(42L);b = new Square(42L);c = b;long s = 42L;A a = b;B s = a;C b = c;D a.equals(s)【试题分析】equals()是Object 类的一个方法,指示某个其他对象是否与此对象“相等”
2、。由于类 Object 是类层次结构的根类。所以它是每个类的超类。所示每个类都可以重写 equals()方法,如 String 类。如果没有重写(override )新类的equals() ,则该方法和 = 操作符一样在两个变量指向同一对象时返回真,但是Java推荐的是使用equals()方法来判断两个对象的内容是否一样。考察“= ”及方法“equals() ”的用法。注意以下几点区别。?8?0 引用类型比较引用;基本类型比较值。?8?0 equals()方法只能比较引用类型,“= ”可比较引用及基本类型。?8?0 用equals()方法进行比较时,对类File 、String、Date 及封
3、装类(Wrapper Class )来说,是比较类型及内容。?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为每
4、个原始类型提供了封装类。原始类型封装类,例如:Boolean 是boolean 的封装类;Characte 是char 的封装类;Byte 是byte 的封装类;Short 是short 的封装类;Integer是int 的封装类;Long 是long 的封装类;Float 是float 的封装类;Double 是double 的封装类。引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的默认值。对象引用实例变量的默认值为null ,而原始
5、类型实例变量的默认值与它们的类型有关。面试题3 :int 的取值范围是哪个【考题题干】下面的选项中属于int 的取值范围是哪个?7 7A -2 2 132B 02 115 15C -2 2 131 31D -2 2 -1【参考答案】D面试题4 :char 的取值范围是多少【考题题干】char 型数据的取值范围是多少?A 128 127B 0 32767C 由平台决定D 0 65535【参考答案】D面试题5 :在char 中能存储汉字吗【考题题干】char 型变量中能不能存贮一个中文汉字?为什么?【参考答案】是能够定义成为一个中文的,因为Java中以unicode 编码,一个char 占16 个
6、字节,所以放一个中文是没问题的面试题6 :基本数据类型与String 之间的转换【考题题干】表达式10.4+”4.2的结果是什么?A 返回double 类型 14.6B 返回String 类型”14.6C 返回long 类型 14D 返回String 类型”10.44.2【试题分析】该面试题中,当+运算符两侧的操作数的类型不一致时,需要统一类型,这时就会发生类型转换。当一个操作数为原始数据类型,另外一个为字符串时,则基本类型的操作数要转换为等价的字符串,这时“+ ”不再是加运算符而是连接符,所以表达式10.4+”4.2返回的结果是”10.44.2。【参考答案】D面试题7 :关于final 的参
7、数传递【考题题干】在下面程序标明的位置处插入哪条语句会导致编译错误?public class FinalUse public static void main(String args) int x = 0;final int y = 1;int z = 2 ;final int n = 3 ;Use(x, y, z, n);static void Use(final int x, int y, final int z, int n) / 插入内容请选择两个正确的答案:A x+B y+C y=xD z0+E n0+F z=n【试题分析】声明形参的时候可以在方法调用的参数调用之前加上关键字fina
8、l 。final 参数也可以叫做空白最终变量,也可以当作常量。即在对其赋值之前(例如方法调用之前),该变量为空(为初始化),赋值之后,在该变量的生存周期内只能调用再也不能改变变量的值。final 变量只可以被赋值一次。在方法调用时,final 形式参数被赋予实际参数的值。在方法内部,不能对 final 参数进行重新赋值或者是修改。在Use 方法中,x 是final 类型的,因此A 选项中x+表示是可以改变x 的值的,所以A 会导致编译错误。y ,n0是int 变量,所以y, n0值是可以变化的,因此插入B 和E 选项都会编译通过的。C 选项是把x 的值赋给y,改变是y 的内容,不会改变x 的值
9、,所以插入C 选项会编译通过的。在D 选项中,由于z 是个int 型数组,它是属于复合类型,在进行值传递的时候,传给形参的是地址值,而不是内容,因此final int z 就表示z 数组不能在指向其他的数组对象,但是z 数组中的内容是可以改变的,因此z0+表示的是内容上的改变,所以是没有错误的,可以编译通过的。F 选项正好与D 选项相反,同理,F 就是错误的。【参考答案】AF面试题8 :关于默认初始化的叙述哪些选项是正确【考题题干】关于数组元素默认初始化,下面哪4 个选项是正确的?A int - 1B String - “”C Person - nullD char - ?6?7u0000?6
10、?8E float - 0.0F boolean - true【试题分析】请看下面的各数据类型的元素初始化值,如表1 所示。表 1 数组元素初始化值元素类型 初始化值byte 0short 0int 0long 0char ?6?7U0000?6?8float 0.0fdouble 0.0dboolean falseObject Reference null注意:原始数据类型的初始化都是0,char 类型的数组元素初始化默认是Unicode zero ,即U0000 ,为空字符。表1 是各数据类型的初始值在缺省的情况下,系统为其设置的默认初始值。对比上面的表格就可以很明显的看出答案喽!在这里我
11、就不必在讲解为什么了。【参考答案】CD面试题9 :编程题(求最大数)【考题题干】求一个长度为10 的整型数组中最大元素,釆用随机的赋值方式并将各元素的值输出。【试题分析】要求数组中的最大元素,也需要遍历整个数组。它的基本思路是:先假定第一个元素最大,然后将这个元素存储在一个临时变量中,将这个变量依次与后面的元素比较,如果有比这个临时变量大的,则存储在这个变量中。当所有元素比较完成后,这个临时变量中存储的就是最大元素。这一方法,也可以用来求最小元素。【参考答案】public class MaxArray public static void main(String args) int arry
12、= new int10;setValue(arry);showValue(arry);System.out.println(“n 最大值为:” + getMaxValue(arry);/ 返回数组中的最大值public static int getMaxValue(int a) int max = a0; / 假定第一个元素最大;for (int i = 1; i max)max = a; / 如果有比max 大的,记录下来return max;/ 为数组元素赋随机值public static void setValue(int a) for (int i = 0; i a.length; i
13、+)a = (int) (Math.random() * 100);/ 显示数组中所有元素public static void showValue(int a) System.out.println(“数组元素值为:”);for (int i = 0; i a.length; i+) System.out.print(” ” + a);if (i + 1) % 5 = 0)System.out.println(); / 每5 个元素换一行运行结果如下:(仅供参考)数组序列为:22 23 17 38 6430 65 48 42 49最大值为:65面试题10:如何获得数组大小【考题题干】给出下面声
14、明,假设已经初始化了该数组,则下面哪个表达式会返回数组的大小。int array = new int5;请选出一个正确的答案。A array.length();B array.length();C array2.length;D array00.length;E array3.size();F array.size();【试题分析】每个数组都是对象,并有一个length 字段,来表示该数组的长度。Java中的数组总是知道它们的大小,这表现在length 字段。在本题中A 和B 选项是格式错误,数组有length 字段,而不是length ()方法。习惯了使用类似与String 类型的length()方法来获得字符串长度的面试者一定要注意这点。所以A 和B 是错误的。D 选项也是错误的,因为array 是个二维数组,array0是一维数组而array00指的就是int 类型的数据了,基本数据类型没有length 这个属性,所以,在语义上就是错误的。E 和 F 这两个选项是将数组和集合混淆了,只有集合如 List 要求返回列表中的元素个数是
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1