《Java笔试面试题库.pdf》由会员分享,可在线阅读,更多相关《Java笔试面试题库.pdf(132页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、最全的Java笔试面试题库1 .下面中哪两个可以在A的子类中使用:()c l a ss A pro te c te d i n t m e th o d i (i n t a,i n t b)re turn 0;)A.pub l i c i n t m e th o d 1 (i n t a,i n t b)re turn 0;B.pri va te i n t m e th o d i (i n t a,i n t b)re turn 0;C.pri va te i n t m e th o d i (i n t a,l o n g b)re turn 0;D.pub l i c sh o
2、rt m e th o d i (i n t a,i n t b)re turn 0;解答:AC主要考查子类重写父类的方法的原则B,子类重写父类的方法,访问权限不能降低C,属于重载D,子类重写父类的方法 返回值类型要相同或是父类方法返回值类型的子类2 .A b stra c t m e th o d c a n n o t b e sta ti c.T rue o r F a l se?A T rueB F a l se解答:A抽象方法可以在子类中被重写,但是静态方法不能在子类中被重写,静态方法和静态属性与对象是无关的,只与类有关,这与a b stra c t是矛盾的,所以a b stra c
3、 t是不能被修饰为sta ti c,否则就失去了 a b stra c t的意义了3 .W h a t wi l l b e th e o utput wh e n yo u c o m pi l e a n d e xe c ute th e f o l l o wi n gpro g ra m.c l a ss B a se(vo i d te st()Syste m,o ut.pri n tl n(aB a se,te st()”);)pub l i c c l a ss C h i l d e xte n d s B a se vo i d te st()Syste m,o ut.pr
4、i n ti n(C h i l d,te st()”);sta ti c pub l i c vo i d m a i n(Stri n g a)C h i l d a n O b j =n e w C h i l d O ;B a se b a se O b j =(B a se)a n O b j;b a se O b j.te st();)Se l e c t m o st a ppro pri a te a n swe r.A C h i l d,te st()B a se,te st()B B a se,te st()C h i l d,te st()C B a se,te st(
5、)D C h i l d,te st()解答:D测试代码相当于:B a se b a se O b j =n e w C h i l d。;父类的引用指向子类的实例,子类又重写了父类的te st方法,因此调用子类的te st方法。4.W h a t wi l l b e th e o utput wh e n yo u c o m pi l e a n d e xe c ute th e f o l l o wi n gpro g ra m.c l a ss B a se(sta ti c vo i d te st()Syste m.o ut.pri n tl n(B a se,te st 0
6、 w;)pub l i c c l a ss C h i l d e xte n d s B a se vo i d te st()Syste m,o ut.pri n tl n(C h i l d,te st()”);B a se.te st();/C a l l th e pa re n t m e th o d)sta ti c pub l i c vo i d m a i n(Stri n g a)n e w C h i l d().te st();)Se l e c t m o st a ppro pri a te a n swe r.A C h i l d,te st()B a s
7、e,te st()B C h i l d,te st()C h i l d,te st()C C o m pi l a ti o n e rro r.C a n n o t o ve rri d e a sta ti c m e th o d b y a n i n sta n c e m e th o dD Run ti m e e rro r.C a n n o t o ve rri d e a sta ti c m e th o d b y a n i n sta n c e m e th o d解答:C静态方法不能在子类中被重写5.W h a t wi l l b e th e o u
8、tput wh e n yo u c o m pi l e a n d e xe c ute th e f o l l o wi n gpro g ra m.pub l i c c l a ss B a se pri va te vo i d te st()Syste m,o ut.pri n ti n(6 +6 +a(Re sul t)w;)sta ti c pub l i c vo i d m a i n(Stri n g a)n e w B a se ().te st();Select most appropriate answer.A 66(R esult)B 12(R esult)C
9、 R untime Error.Incompatible type for+Can,t convert an int to a string.D Compilation Error.Incompatible type for+Can t add a string to anint.解答:B字符串与基本数据类型链接的问题,如果第一个是字符串那么后续就都按字符串处理,比如上边例子要是System.out.printin(R esult)+6+6);那么结果就是(R esult)6 6,如果第一个和第二个。第n个都是基本数据第n+1是字符串类型,那么前n个都按加法计算出结果在与字符串连接6.What
10、 will be the output when you compile and execute the followingprogram.T he symbol?means space.1:public class Base2:3:private void test()4:5:String aStr=?0ne?”;6:String bStr=aStr;7:aStr.toUpperCase();8:aStr.trim();9:System,out.println(+aStr+bStr+;7:8:9:static public void main(String1 a)10:new Base().
11、test();11:)12:Select most appropriate answer.A ONE,?0ne?B?0ne?,OneC ONE,OneD ONE,ONEE?0ne?,?0ne?解答:E通过String bStr=aStr;这句代码使bStr和aStr指向同一个地址空间,所以最后aStr和b Str的结果应该是一样,String类是定长字符串,调用一个字符串的方法以后会形成一个新的字符串。7.下面关于变量及其范围的陈述哪些是不正确的():A.实例变量是类的成员变量B .实例变量用关键字static声明C.在方法中定义的局部变量在该方法被执行时创建D.局部变量在使用前必须被初始化解
12、 答:B C由sta ti c 修饰的变量称为类变量或是静态变量方法加载的时候创建局部变量8 .下列关于修饰符混用的说法,错误的是():A.a b stra c t不能与f i n a l 并列修饰同一个类B.a b stra c t类中可以有pri va te 的成员C.a b stra c t方法必须在a b stra c t类中D.sta ti c 方法中能处理非sta ti c 的属性解 答 D:静态方法中不能引用非静态的成员9 .执行完以下代码i n t x=n e w i n t 2 5;后,以下哪项说明是正确的():A、x 2 4 为 0B、x 2 4 未定义C、x 2 5 为
13、0D、x 0 为空解答:Ax 属于引用类型,该引用类型的每一个成员是i n t类型,默认值为:01 0 .编译运行以下程序后,关于输出结果的说明正确的是():pub l i c c l a ss C o n d i ti o n a l pub l i c sta ti c vo i d m a i n(Stri n g a rg s )i n t x=4;Syste m,o ut.pri n ti n(uva l ue i s”+(x 4)?9 9.9 :9);)A、输出结果为:va l ue i s 9 9.9 9B、输出结果为:va l ue i s 9C、输出结果为:va l ue i
14、 s 9.0D、编译错误解答:c三目运算符中:第二个表达式和第三个表达式中如果都为基本数据类型,整个表达式的运算结果由容量高的决定。99.9 是 d o u b l e 类型 而 9 是 i n t类型,d o u b l e 容量高。1 1 .关于以下a p p l i c a ti o n 的说明,正确的是():1.c l a s s Sta ti c Stu f f2.(3.s ta ti c i n t x=1 0;4.s ta ti c x+=5;5.p u b l i c s ta ti c vo i d m a i n (Str i n g a r g s )6.(7.Sy s
15、te m,o u t.p r i n tl n(x=+x);8.)9.s ta ti c x/=3;1 0.)A、4 行与9 行不能通过编译,因为缺少方法名和返回类型B、9 行不能通过编译,因为只能有一个静态初始化器C、编译通过,执行结果为:x=5D、编译通过,执行结果为:x=3解答:C自由块是类加载的时候就会被执行到的,自由块的执行顺序是按照在类中出现的先后顺序执行。1 2.关于以下程序代码的说明正确的是():1.c l a s s Ha s Sta ti c 2.p r i va te s ta ti c i n t x=1 0 0;3.p u b l i c s ta ti c vo i
16、 d m a i n(Str i n g a r g s L )4.Ha s Sta ti c h s l=n e w Ha s Sta ti c();5.h s l.x+;6.Ha s Sta ti c h s 2=n e w Ha s Sta ti c();7.h s 2.x+;8.h s l=n e w Ha s Sta ti c ();9.h s l.x+;1 0.Ha s Sta ti c.x -;1 1.Sy s te m.o u t.p r i n tl n(x=+x);1 2.)1 3.)A、5 行不能通过编译,因为引用了私有静态变量B、1 0 行不能通过编译,因为x是私有静态
17、变量C、程序通过编译,输出结果为:x=1 0 3D、程序通过编译,输出结果为:x=1 0 2解答:D静态变量是所有对象所共享的,所以上述代码中的几个对象操作是同一静态变量X,静态变量可以通过类名调用。1 3.下列说法正确的有()A.c l a s s 中的c o n s tr u c to r 不可省略B.c o n s tr u c to r 必须与c l a s s 同名,但方法不能与c l a s s 同名C.c o n s tr u c to r 在一个对象被n e w 时执行D.一个 c l a s s 只能定义一个 c o n s tr u c to r解答:c构造方法的作用是在实
18、例化对象的时候给数据成员进行初始化A.类中如果没有显示的给出构造方法,系统会提供一个无参构造方法B.构造方法与类同名,类中可以有和类名相同的方法D.构造方法可以重载1 4.下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法解答:DA.实例方法不可直接调用超类的私有实例方法B.实例方法不可直接调用超类的私有的类方法C.要看访问权限1 5.下列哪一种叙述是正确的()A.a b s tr a c t修饰符可修饰字段、方法和类B.抽象方法的b o d y 部分必须用一对大括号 包住C.声
19、明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号解答:Da b s tr a c t可以修饰方法和类,不能修饰属性。抽象方法没有方法体,即没有大括号 1 6.下面代码的执行结果是?i m p o r t ja va.u ti l.*;p u b l i c c l a s s Sh o r tSe tp u b l i c s ta ti c vo i d m a i n(Str i n g a r g s )(Se t s=n e w Ha s h Se t();f o r (Sh o r t i=0;i 0 )5 j=I *2;6)S ys t em,o u t.p r int i
20、n(T he valu e o f j is +j);7)k=k+1;8)I -;9)1 0)A.4B.6C.7D.8解答:ck没有初始化就使用了2 4.对记录序列 31 4,2 98,50 8,1 2 3,486,1 45按从小到大的顺序进行插入排序,经过两趟排序后的结果为:(选择1项)A 31 4,2 98,50 8,1 2 3,1 45,486B 2 98,31 4,50 8,1 2 3,486,1 45C 2 98,1 2 3,31 4,50 8,486,1 45)D 1 2 3、2 98,31 4,50 8,486,1 45解答.R插入排序算法:p u bl i c s t at i
21、 c v o i d i n ject i o n So r t(i n t n u m ber)/第一个元素作为一部分,对后面的部分进行循环fo r (i n t j=1;j n u m ber,l en gt h;j+)i n t t m p =n u m ber j;i n t i =j-1;w hi l e(t m p W h i c h t w o CAN N O T d i r e c t l y c a u s e a t h r e a d t o s t o p e x e c u t i n g?(Ch o o s eT w o)A.Ex i s t i n g f r o
22、 m a s y n c h r o n i z e d b l o c k.B.Ca l l i n g t h e w a i t m e t h o d o n a n o b j e c t.C.Ca l l i n g n o t i f y m e t h o d o n a n o b j e c t.D.Ca l l i n g r e a d m e t h o d o n a n In p u t s t r e a m o b j e c t.E.Ca l l i n g t h e S e t P r i o r i t y m e t h o d o n a T h
23、r e a d o b j e c t.解 答:ADs t o p方法,这个方法将终止所有未结束的方法,包括nm方法。当一个线程停止时候,他会立即释放所有他锁住对象上的锁。这会导致对象处于不一致的状态。当线程想终止另一个线程的时候,它无法知道何时调用s t o p是安全的,何时会导致对象被破坏。所以这个方法被弃用了。你应该中断一个线程而不是停止他。被中断的线程会在安全的时候停止。3 6 W h i c h t w o s t a t e m e n t s a r e t r u e r e g a r d i n g t h e c r e a t i o n o f a d e f a u
24、 l tc o n s t r u c t o r?(Ch o o s e T w o)A.T h e d e f a u l t c o n s t r u c t o r i n i t i a l i z e s m e t h o d v a r i a b l e s.B.T h e d e f a u l t c o n s t r u c t o r i n v o k e s t h e n o-p a r a m e t e r c o n s t r u c t o r o f t h es u p e r c l a s s.C.T h e d e f a u l t c
25、 o n s t r u c t o r i n i t i a l i z e s t h e i n s t a n c e v a r i a b l e s d e c l a r e di n t h e c l a s s.D.If a c l a s s l a c k s a n o-p a r a m e t e r c o n s t r u c t o r,b u t h a s o t h e rc o n s t r u c t o r s,t h e c o m p i l e r c r e a t e s a d e f a u l t c o n s t r
26、u c t o r.E.T h e c o m p i l e r c r e a t e s a d e f a u l t c o n s t r u c t o r o n l y w h e n t h e r e a r e n o o t h e rc o n s t r u c t o r s f o r t h e c l a s s.解答:CE构造方法的作用是实例化对象的时候给数据成员初始化,如果类中没有显示的提供构造方法,系统会提供默认的无参构造方法,如果有了其它构造方法,默认的构造方法不再提供。37 Given:public class OuterClass privat
27、e double dl=1.0;/insert code here)You need to insert an inner class declaration at line2.Which two innerclass declarations are valid?(Choose T wo)A.static class InnerOne public double methoda0 return dl;B.static class InnerOne static double methoda()return dl;C.private class InnerOne public double m
28、ethoda()return dl;D.protected class InnerOne static double methoda()return dl;E.public abstract class InnerOne public abstract double methoda0;解答:CEAB.内部类可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量;D.非 static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员38 Which two declarations prevent the overri
29、ding of a method?(ChooseT wo)A.final void methoda()B.void final methoda()C.static void methoda()D.static final void methoda0 E.final abstract void methoda()解 答:ADfinal修饰方法,在子类中不能被重写。39 Given:public class T est public static void main(String args)class Foo public int i=3;)Object o=(Object)new Foo();F
30、oo foo=(Foo)o;System.out.println(foo.i);)What is the result?A.Compilation will fail.B.Compilation will succeed and the program will print“3”C.Co m p i l a t i o n w i l l s u c c e e d b u t t h e p r o g r a m w i l l t h r o w aCl a s s Ca s t Ex c e p t i o n a t l i n e 6.D.Co m p i l a t i o n
31、w i l l s u c c e e d b u t t h e p r o g r a m w i l l t h r o w aCl a s s Ca s t Ex c e p t i o n a t l i n e 7.解答:B局部内部类的使用4 0、Gi v e n:p u b l i c c l a s s T e s t p u b l i c s t a t i c v o i d m a i n (S t r i n g a r g s)S t r i n g f o o =b l u e”;S t r i n g b a r =f o o;f o o =g r e e n”
32、;S y s t e m,o u t.p r i n t i n (b a r);)W h a t i s t h e r e s u l t?A.An e x c e p t i o n i s t h r o w n.B.T h e c o d e w i l l n o t c o m p i l e.C.T h e p r o g r a m p r i n t s “n u l l”D.T h e p r o g r a m p r i n t s “b l u e”E.T h e p r o g r a m p r i n t s “g r e e n”解答:D采用S t r i
33、n g f o o =b l u e”定义方式定义的字符串放在字符串池中,通过S t r i n gb a r =f o o;他们指向了同一地址空间,就是同一个池子,当执行f o o=g r e e n ;f o o指向新的地址空间。4 1 W h i c h c o d e d e t e r m i n e s t h e i n t v a l u e f o o c l o s e s t t o a d o u b l e v a l u e b a r?i n tf o o =(i n t)M a t h,m a x (b a r);i n tf o o =(i n t)M a t
34、 h,m i n(b a r);i n tf o o =(i n t)M a t h,a b s (b a r);i n tf o o =(i n t)M a t h,c e i l(b a r);i n tf o o =(i n t)M a t h,f l o o r(b a r)i n tf o o =(i n t)M a t h,r o u n d(b a r)解答:DEFA B两个选项方法是用错误,都是两个参数。a b s方法是取b a r的绝对值,c e i l方法返回最小的(最接近负无穷大)d o u b l e值,该值大于等于参数,并等于某个整数。f l o o r方法返回最大的
35、(最接近正无穷大)d o u b l e值,该值小于等于参数,并等于某个整数。r o u n d方法 返回最接近参数的l o n g。4 2 Ex h i b i t:1.p a c k a g e f o o;2.i m p o r t j a v a.u t i l.V e c t o r;3.p r i v a t e c l a s s M y V e c t o r e x t e n d s V e c t o r 4.i n t i =1;5.p u b l i c M y V e c t o r ()6.i =2;7.)8.)9.p u b l i c c l a s s M
36、y N e w V e c t o r e x t e n d s M y V e c t o r 10.p u b l i c M y N e w V e c t o r ()11.i =4;12.13.p u b l i c s t a t i c v o i d m a i n (St r i n g a r g s )14.M y V e c t o r v =n e w M y N e w V e c t o r();15.)16.)T h e f i l e M y N e w V e c t o r.j a v a i s s h o w n i n t h e e x h i
37、b i t.W h a t i s t h e r e s u l t?A.Co m p i l a t i o n w i l lB.Co m p i l a t i o n w i l lC.Co m p i l a t i o n w i l lD.Co m p i l a t i o n w i l lE.Co m p i l a t i o n w i l l解答:Bs u c c e e d.f a i l a t l i n e 3.f a i l a t l i n e 6.f a i l a t l i n e 9.f a i l a t l i n e 14.类M y V
38、e c t o r不能是私有的43 G i v e n:p u b l i c c l a s s T e s t p u b l i c s t a t i c v o i d m a i n (St r i n g a r g s)St r i n g f o o =a r g s 1;St r i n g b a r =a r g s 2;St r i n g b a z =a r g s 3;Sy s t e m.o u t.p r i n t l n(b a z =+b a z);An d t h e o u t p u t:Ba z =2W h i c h c o m m a n
39、d l i n e i n v o c a t i o n w i l l p r o d u c e t h e o u t p u t?A.j a v a T e s t 2222B.j a v a T e s t 1 2 3 4C.j a v a T e s t 4 2 4 2D.j a v a T e s t 4 3 2 1解答:c数组下标从0开始44、G i v e n:1.p u b l i c i n t e r f a c e Fo o 2.i n t k =4;3.)W h i c h t h r e e a r e e q u i v a l e n t t o l i n
40、 e 2?(Ch o o s e T h r e e)A.f i n a l i n t k =4;B.Pu b l i c i n t k =4;C.s t a t i c i n t k =4;D.Pr i v a t e i n t k =4;E.Ab s t r a c t i n t k =4;F.V o l a t i l e i n t k =4;G.T r a n s i e n t i n t k =4;H.p r o t e c t e d i n t k =4;解答:BDEs t a t i c:修饰的静态变量f i n a l修饰的是常量a b s t r a c t不
41、能修饰变量V o l a t i l e修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。T r a n s i e n t:对不需序列化的类的域使用t r a n s i e n t关键字,以减少序列化的数据量。i n t k=4 相当于 p u b l i c s t a t i c f i n a l i n t k=4;在接口中可以不写 s t a t i c f i n a l45 G i v e n:p u b l i c c l a s
42、s f o o s t a t i c St r i n g s;p u b l i c s t a t i c v o i d m a i n (St r i n g a r g s)Sy s t e m,o u t.p r i n t i n (s=+s);W h a t i s t h e r e s u l t?A.T h e c o d e c o m p i l e sB.T h e c o d e c o m p i l e sC.T h e c o d e d o e s n o tD.T h e c o d e d o e s n o ta n d “s二 i s p r i
43、 n t e d.a n d “s=n u l l“i s p r i n t e d.c o m p i l e b e c a u s e s t r i n g s i s n o t i n i t i a l i z e d.c o m p i l e b e c a u s e s t r i n g s c a n n o t b e r e f e r e n c e d.E.T h e c o d e c o m p i l e s,b u t a N u l l Po i n t e r Ex c e p t i o n i s t h r o w n w h e n t
44、o St r i n gi s c a l l e d.解答:BSt r i n g为禁用数据类型,引用类型数据成员的默认值为n u l l46、W h i c h t w o c r e a t e a n i n s t a n c e o f a n a r r a y?(Ch o o s e T w o)A.i n t i a =n e w i n t 15;B.f l o a t f a =n e w f l o a t 20;C.c h a r c a =So m e St r i n g;D.Ob j e c t o a =n e w f l o a t 20;E.I n t i
45、 a =(4,5,6)(1,2,3)解答:AD任何类的父类都是Object,数组也数据引用类型,Object oa=new float20;这种写法相当于父类的用指向之类的实例。47 Given:public class ExceptionT est class T estException extends Exception public void runT est()throws T estException public void test()/*Point X*/runT est();)At point X on line 4,which code can be added to ma
46、ke the code compile?A.throws ExceptionB.Catch(Exception e).C.T hrows R untimeException.D.Catch(T estException e).E.No code is necessary.解答:A方法上使用throws抛出异常,Exception是异常类的超类。48、Exhibit:public class SwitchT est public static void main(String args)System,out.printin(value 二 +switchlt(4);)public static
47、int switchlt(int x)int j=1;switch(x)case 1:j+;case 2:j+;case 3:j+;case 4:j+;case 5:j+;default:j+;)return j+x;)What is the output from line 3?A.Value=3B.Value=4C.Value=5D.Value=6E.Value=7F.Value=8解答:F由于c a s e块没有b r e a k语句,那 么从c a s e 4:向下的代码都会执行。49、W h i c h f o u r t y p e s o f o b j e c t s c a
48、n b e t h r o w n u s i n g t h e t h r o w s t a t e m e n t?(Ch o o s e Fo u r)A.Er r o rB.Ev e n tC.Ob j e c tD.Ex c e p t i o nE.T h r o w a b l eF.Ru n t i m e Ex c e p t i o n解答:ADEF能够抛出的对象类型要是T h r o w a b l e或 是T h r o w a b l e的子类50.在下面程序的第6行补充上下列哪个方法,会导致在编译过程中发生错误?1)c l a s s Su p e r 2)p
49、u b l i c f l o a t g e t N u m O 3)r e t u r n 3.Of;4)5)p u b h c c l a s s Su b e x t e n d s Su p e r 6)7)A,p u b l i c f l o a t g e t N u m O r e t u n 4.Of;B.p u b l i c v o i d g e t N u m O C.p u b l i c v o i d g e t N u m(d o u b l e d)D.p u b l i c d o u b l e g e t N u m(f l o a t d)r e
50、t u n 4.Of ;解答:B方法重写的问题。子类中有和父类的方法名相同,但是参数不同,不会出编译错误,认为是子类的特有的方法,但是如果子类中方法和父类的方法名,参数,访问权限,异常都相同,只有返回值类型不同会编译不通过。51.下面关于i m p o r t,c l a s s和p a c k a g e的声明顺序哪个正确?()A.p a c k a g e,i m p o r t,c l a s sB.c l a s s,i m p o r t,p a c k a g eC.i m p o r t,p a c k a g e,c l a s sD.p a c k a g e,c l a s