2023年Java程序员认证考试试题库.pdf
第一部分基础知识练习目的本 章相应于 学生指南各章的内容分别提供了练习题集,涉 及:第一章J a v a入门 第二章数据类型和运算符 第三章流程控制与数组 第四章封装 第五章继承第 六章抽象类与接口第 七章多态第 八章异常第 九章多线程机制 第十章输入输出流 第十一章使用泛型和集合框架 第十二章基于S w i n g的图形用户界面(G U I)设计 第十三章J a v a事件驱动编程第一章练习题(Java入门)(C)l 下列哪项不是JDK所包含的内容?(选一项)A -Java编程语言B 工具及工具的A P IC -Java E E 扩展 A P ID Java平台虚拟机2 下列关于JDK、JRE和JVM的描述。哪项对的?A JDK中包含了 JRE JVM中包含了 JREB JRE中包含了 JDK,JDK中包含了 JV MC JRE中包含了 JDK,JVM中包含了 JRED JDK中包含了 JRE JRE中包含了 JV M3 下列哪个工具可以编译java源文献?A -javacB -jdbC -javadocD -junit4 JDK工 具javadoc的作用是哪项?A 生 成Java文档B ,编 译Java源文献C 执 行Java类文献D 测 试Java代码5 以下哪些包是Java标准库中常用的包?(选三项)A -java-langB -javax-servlet.httpC -j ava.ioD -java-sql6 使 用J D K工具生成的J a v a文档的文献格式是?A -XM L格式B自定义格式c 二进制格式D -H T M L格式(A C)7 以下关于J V M的叙述,哪项对的?(选两项)A J V M运营于操作系统之上,它依赖于操作系统B J V M运营于操作系统之上,它与操作系统无关C J V M支持J a v a程序运营,它可以直接运营J a v a字节码文献D J V M支持J a v a程序运营,它可以直接运营J a v a源代码文献8 以下关于支持J a v a运营平台的叙述,哪项错误?A J a v a可在S o l a r i s平台上运营B -J a v a可在W i n do w s平台上运营C J a v a语言与平台无关。J a v a程序的运营结果依赖于操作系统D -J a v a语言与平台无关。J a v a程序的运营结果与操作系统无关(B)9 以下关于A p p l et和J a v a程序之间关系的叙述,哪项错误?A -一个A p p l et就是一段J a v a程序B -A p p l et是一种特殊的J a v a程 序,它需要运营在W eb服务器上C A p p l et是一种特殊的J a v a程 序,它需要运营在W eb浏览器上D Applet是一种Java SE平台的应用程序(AD)10 以下关于Java HotSpot的 描 述,哪两项错误?(选两项)A Java HotSpot是一种热编译技术,在编译Java源程序时会被使用B-Java HotSpot是一种热编译技术 在运营Java代码时会被使用C-Java HotSpot是一种热编译技术,它只对程序的部分字节码进行优化D -Java HotSpot是一种热编译技术,它会对程序的所有字节码进行优化(A )1 1 环境变量P A T H中具有多个途径时,途径和途径之间可以用哪项来隔开?A.:B.,C.*D:|(B)1 2 -CL A S S PA T H中 的“的含义是哪项?A 省略号B当前目录C 所有目录D-上级目录1 3 J V M在执行一个J av a类 时,大体采用以下过程?A 执行类中的代码一 装载类一 校验类B 校验类一装载类一执行类中的代码C 装载类一 执行类中的代码一 校验类D 装载类一 校验类一 执行类中的代码(0 1 4 当运营一个J av a程 序 时,传递参数的格式是哪项?A -j av a类名参数1,参 数2B j av ac类名参数1参 数2C-java类名参数1参 数2D -java类名参数1+参 数215 以 下 关 于Java文 献 名 的 叙 述,对 的 的 有?(选 两 项)A -Java源 文 献 的 扩展名应为.javaB-Java源文献的文献名应与文献中的类名一致C-Java字 节 码 文 献 的 扩 展 名 应 为 javaD 一 个Java源 文 献 中 只 能 包 含 一 个Java类IC2D3A4ASACD6D7AC8C9B10 A D11 A12 B13 D14 C15 A B第二章练习题(数据类型和运算符)1 下列哪项不属于J av a语言的基本数据类型?A -i n tB -S t r i n gC-d o u b l eD-b o o l e an2 下列哪项不是i n t类型的字面量?A u O 3 A 6B -0 7 7C-O x A B B CD-2 03 下列哪项不是有效的标记符?A -u s e r Nam eB -2 t e s tC$c h an g eD _ p as s w o r d(选项有误!)4 下列哪项是J av a语言中所规定的注释样式?(选三项)A/单行注释B一单行注释C /*单行或多行注释*/D /kk*文档注释*/(B)5 下列哪项不是Java语言的关键字?A gotoB sizeofC instanceofD volatile6现有如下五个声明:L i n e l:i n t a_ r e a1 1 y _ r e a1 1 y _ r e a1 1 y _ 1 o n g _ v ar i ab 1 e _ n am e=5 ;L i n e 2:i n t _ h i=6 ;L i n e 3:i n t b i g=I n t e g e r.g e t I n t e g e r(T );L i n e 4 :i n t$d o l l ar s=8;l i n e 5:i n t%o p e r c e n t=9;哪行无法通过编译?A -L i n e lB -L i n e 3C.L i n e 4D.L i n e 5(题目有问题)7 现 有:1.c l as s T o p 2 -s t at i c i n t x=l ;3.p u b l i c T o p (i n t y)x*=3;4.5.c l as s M i d d l e e x t e n d s T o p 6.p u b l i c M i d d l e O x+=l;)7.p u b l i c s t at i c v o i d m ai n (S t r i n g ar g s)8.M i d d l e m =n e w M i d d l e O;9.S y s t e m,o u t .p r i n t i n (x);10.II.)结 果 为:A.1B.2C 3D编译失败(A)8 现 有:1 -class Passer f2 static final int X=5;3.public static void main(String args)4 new PasserO go(x);5.System,out.print(x);6,)7 void go(int x)8-System,out.print(x+);9-10.结果是什么?A 55B-56C-65D 669 现 有:1 ,class Wrench f2.public static void main(String args)3.Wrench w=new WrenchO;Wrench w2=new WrenchO;4-w2=go(w,w2);5.System,out.print(w2=w);6 7.static Wrench go(Wrench wrl,Wrench wr2)8.Wrench wr3=wrl;wrl=wr2;wr2=wr3;9,return wr3;10 H 结果是什么?A.falseB-trueC.编译失败D运营的时候有异常抛出10 现 有:5-class Wrench2 6-int size;7.public static void main(String args)8.Wrench2 w=new Wrench2();9,w.size=II;10.Wrench2 w2=go(w,w.sizell);II.System,out.print(w2.size);12 )13.static Wrench2 go(Wrench2 wr.int s)14.S=12;17.结果为:A.1 1B.1 2c,编译失败。D 运营时异常被抛出1 1 现 有:c l as s T e s t 2 fp u b l i c s t at i c v o i d m ai n (S t r i n g 口 ar g s)s h o r t a,b,C;a=l;b=2;C=a+b ;a+=2 :以上代码中,哪一句是错误的?A ,a=l :B C=a+b ;C-a+=2;D.s h o r t a,b,C;1 2 表达式:1-2/5+2 k 5的结果是哪项?A.1 0.6B.9.8C.91 3 现有代码片段:S t r i n g s=1 2 3 ;S t r i n g s l=S+4 5 6;请 问s i的结果是哪项?A.1 2 3 4 5 6B.5 7 9C-编译错误D 运营时抛出异常14 基本数据类型flo a t的包裹类是哪项?A -IntegerB-DoubleC-FloatD -Character(D)15.现 有:1 class Test4 2.public static void main(String args)3-boolean X=true;4 boolean y=false;5 short Z=42;6,7.if(z+=42)&(y=true)z+;8.if(x=false)11(+z=45)z+;9 10.System,out.println(z=+z);II.12.结果为:A.Z=42B.z=44C-Z=45D-z=46第二章练习题参考答案1 B2 A3 B4 A CD5 B6 D7 D8 A9 B1 0 A1 1 B1 2 D1 3 A1 4 C1 5 D第三章练习题第三章练习题(流程控制与数组)1 现 有:class TestApppublic static void main(Stringf args)for(int i=0;i l)S y s t e m,o u t.p r i n t l n Cx l );e l s e i f (x 5)S y s t e m,o u t .p r i n t l n(x 5 );e l s e i f (x 1 0)S y s t e m,o u t.p r i n t l n Cx 1 0 );e l s e i f (x 2 9)S y s t e m,o u t .p r i n t l n C x 5B -x lC-x 1 0D x 2)&(state=true)6-i+;7-if(+i4)1 1 (state=false)8 i+;9,System,out.printin(i);10 11 结 果 为:A-6B 5C 4D 编译失败9 现 有:3,public class Tester 4.public static void main(Stringf args)5-intx-5;6.Integer xl=x;Integer x2=x;7.int x3=new Integer(5);8.system.u t.print(xl.equals(x);9.system.u t.print(xl=x);l u.system.u t.print(x2.equals(xl);1 1.system.ut.print(x2=xl);12-system.ut.print(x2=x3);13-system.u t.print(x2.equals(x3);“14 )15 结 果 为:A 编译失败B.fa1sefa1setruetruetruetrueC-truetruetruetruetruetrueD.falsefalsetruetruetruefalseE.truefa1setruefa1sefa1setrueF.运营时异常被抛出10 现 有:1 ,class Rectangle 2 public static V.id main(string args)3-intx=(l,2,3);4-xl=(xll)?x2:0;5-System,out-println(xl);6 7 结 果 为:A 3B 2C-1D 011 现 有:1 ,class Output(2,public static void main(String口 args)3-int i=5:4-System,out.print(4+i+);5-System,out.print(i+5+7);6-System,out.printin(i+8);7 8 -结 果 为:A 9 9722B 9 55758C 45 10758D -45 972212 以 下 哪 种 初 始 化 数 组 的 方 式 是 错 误 的?A -Stringnames=zhang,wang,li);B -String names=new String 3;names 0=zhang;names 1=wang;names 2=li;C-String3 names=zhang,wang,1 i);D 以上皆对的13 现 有:1 ,class WhileTests 2,public static void main(String args)3 int X=5;4-while(Hx4)5 一x;6 7-System,out.println(x=+x);8 -9 结果是什么?A.X=6B,X=5C.X=2D 编译失败1 4 现 有:1 ,class Test2 f2 ,public static void main(String args)3 -boolean X=true;4 -boolean y=false;5 -short Z=2 0;6 7 if(x=true)&(y=true)z+;8 if(y=true)|(+z=2 2)z+;9 1 0 System,out.println(z=+z);H 1 2 结果是什么?A.Z=2 1B.z=2 2C.z=2 3D-Z=2 41 5.现有:1 -class Foo 2 -public static void main(String args)3 -int x=0 ;4 ,int y=4 ;5 ,for(int z=0;z l&+y 类是对象的具体化,实例是对象的另一个名称C 类是对象的抽象,对象是类的具体化,实例是类的另一个名称D类是对象的抽象,对象是类的具体化,实例是对象的另一个名称2 下列类Account的构造方法中 声明对的的是?A Account(String name)B-Account(String name)C-Account(name)()D -NewAccount(String name)3,类Account中字段声明对的的是哪项?A -class Account fname;amount;)B class AccountString name=l.0;double amount=Mike;)C-class A ccountfString name;double amount;)D-class A ccountString name=Mike,double amount=1 0 0 0.0;)4 类A ccount中方法声明对的的是哪一项?A -class A ccount fdepositO;)B -class A ccountfvoid depositO;C-class A ccountfvoid deposit()D.class A ccountfvoid deposit)5下列有关类声明的代码片段,哪一项是对的的?A.package school;import java.sql.*;class Student B -import java-sql.*;package school;class Student f)C-package school;class Studentimport java.sql.*jD.package school;import java,sql.*;private String name;class Student 6 有 关new关键字的描述对的的是哪项?A.创建对象实例的时候可以不使用new关键字B new所创建的对象不占用内存空间C new会调用类的构造器来创建对象D -new所创建的对象一定存在引用变量7 下列哪些是方法public int add(int a)的重载方法?(选三项)A.public int add(long a);B.public void add(int a)jC.public void add(long a);D.public int add(float a);8 我们定义一个Account类来描述银行账户,银行账户有账户名、金额等属性特 性,同时有存款、取款等行为特性,下述代码适合描述的是哪项?A -class AccountfString n a m e;/账户String amount;/金额Account(String name)()void deposit(double mount)/存款)void withdraw(double mount)/取款)B -class AccountfString n a m e;/账户doujole amount;/金额Account(double amount)void deposit(double mount)/存款)void withdraw(double mount)/取款)C-class AccountfString n a m e;/账户double amount;/金额Account(String name)void deposit(double mount)/存款)void withdraw(double mount)/取款)D -class AccountfString n a m e;/账户double a m o u n t;/金额Account(String name)void d e p o s it()/存款)void w ithdraw()/取款)9 现 有:1 -class B anana2 f2 -static int X=2 ;3 .public static void main(String args)4 -int X=2;5 .B anana2 b=new B anana2();6 -b-go(x);7 8 ,static x+=x;)9 -void go(int x)1 0 +x;1 1 -System,out.printin(x);1 2 1 3 结 果 为:A 7B.5C.3D.21 0 现 有:1 -class TestFoo f2 ,int x;3 -String y;4.i nt getX()return x;5 .String getYO return y;6 -void setX(int x)7-int Z=7 :8 this.x=x;9-1 0 .可以添加多少个修饰符来封装此类?A.5B.4C.3D.211 定义枚举如下:public enum Direction(EAST,SOUTH,WEST,NORTH)F列对的使用该枚举类型的语句是哪项?A.Direction Direction=EAST;B.Direction direction=Direction.WEST;C.int a-Direction.NORTH;n Direction direction=2;12 定义类:package utils;public class Reppublic static String twice(String s)return s+s;)再定义另一个类Demo:1./insert code here2.public class Demo3.public static void main(String口 args)4.System,out.println(twice(Hello);5-6 在第一行插入哪项代码,可以使程序正常编译和执行?A-import utils.*;B.import utils.Rep.*;C.import static utils.Rep.twice;D.static import utils.Rep.twice;13 现 有:public class TestDemoprivate int X-2;static int y=3;public void method()final int i=100;int j=10;class Cinner public void mymethod()/Here在Here处可以访问的变量是哪些?(选三项)A -XB.yC.jD-i1 4 现有如F包结构:comIXI|A lpha,class1 II I yI|B eta,classI1 1 Gamma,class和 类:class Test A lpha a;B eta b;Gamma c;哪三个必须加入到类T e s t中,以使其通过编译?(选三项)A.p a c k a g e y ;B.p a c k a g e c o m;C.i m p o r t c o m.x.y.*;D.i m p o r t c o m.x.*;15 现 有2个文献:1-p a c k a g e x;2.p u b l i c c l a s s X3.p u b l i c s t a t i c v o i d d o X O S y s t e m,o u t.p r i n t(d o X);4.和:1,c l a s s F i n d 2.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)3 /i n s e r t c o d e h e r e4-5.哪两行分别插入到类F i n d的第3行将编译并产生输出“d o X”?(选两项)A-d o X O ;B X-d o X O ;C x X d o X O ;D.x.X m y X=n e w x.X();m y X.d o X O;ID2A3C4C5A6C7 ACD8C9C10 D1 1 B12 C13 A B D14 BCD15 C D第五章练习题(继承)1 下列关于继承优点的叙述对的的是哪几项?(选三项)A可以创建更为特殊的类型B 消除反复代码C执行效率高D便于维护2 在子类中调用父类中被覆盖的方法时需要使用哪项关键字?A -thisB -superC-newD以上都不是3 现有public class Parenttpublic void change(int x)public class Child extends Parent/覆盖父类change方法下列哪个声明是对的的覆盖了父类的change方法?A.protected void change(int x)B.public void change(int x,int y)C.public void change(int x)D.public void change(String s)4 假如想要一个类不能被任何类继承的话,需要使用哪个关键字来修饰该类?A.abstractB.newC.staticD.final5 为了使得S y s t e m,o u t.p r i n t l n()输出对象引用的时候得到故意义的信我们应当覆盖O b j e c t t -的哪个方法?A-e q u a l sB-t o S t r i n gC -h a s h C o d eD -n o t i f y6 现 有:p u b l i c c l a s s P e t()p u b l i c c l a s s C a t e x t e n d s P e t )执行代码C a t c-n e w C a t();P e t p=(P e t)c ;后下列哪项是对的的?A.P e t p=(P e t)c 运营错误B.P e t p=(P e t)c 编译错误C.P e t p=(P e t)c 止常执行D 以上都不对7 程 序:p u b l i c c l a s s P e t public void speak()System,out.print(pet);public class Cat extends Petpulolic void speak()System,out.print(Cat);public class Dog extends Pet(public void speak()System,out.print(Dog);执行代码Pet口 p=new Cat(),new Dog(),nex Pet();for(int i=0;i 描述对的的是哪项?项)A.可以有多个ca tchB 只能有一个ca tchC 可以没有ca tchD fi n a l l y必须有(选两4下列属于非受检异常的是哪项?的的是A-SQLExceptionB.lOExceptionC.Nu11Poi nterExcept i onD-OutOfMemoryError5 假 设 有 自 定 义 异 常 类ServiceException,那么抛出该异常的语句对哪 项?A.raise ServiceExceptionB.throw new Serv i ceExcept i on()C.throw ServiceExceptionD.throws ServiceException6 在 方 法 的 声 明 中,规 定 该 方 法 必 须 抛 出 异 常 时 使 用 哪 个 关 键 字?A.throwB.catchC.finallyD.throws7 现 有:1 ,class Number2.public static void main(String aras)3-try 4.System,out.print(Integer,parse1nt(forty);5.catch(RuntimeException r)6.System,out.print(runtime);7.catch(NumberFormatException e)8.system.ut.print(number);9-10 H 结 果 是 什 么?A -numberB -runtimeC-forty numberD编译失败8 现 有:9-void topGo()10 try 11 middleGoO;12.)catch(Exception e)13.System,out.print(catch);1 4 15 1 6.void middleGoO throws Exception17-g o();1 8.system,out.print(late middle);1 9 )2.void go()throws Exception 21.throw new Exception();22 假 如 调 用topGo(),则 结 果 为:A.late middleB.catchC.late middle catchD.catch late middle9.现有1.class Calc 2.public static void main(String args)3.try 4.int x=Integer,parse1 nt(42a);5./insert code here6.System,out.print(oops);7.8.9.下 面 哪 两 行 分 别 插 入 到 第 五 行,会 导 致 输oops?(选两项)A.catch(11legalArgumentException e)B.catch(11legalStateException c)C.catch(Numbe1 FormatException n)D.catch(C1 assCastException c)10.现 有:1.class Flow 2.public static void main(String args)t3.try 4.System,out.print(before);5.doRiskyThing();6.System,out.print(after);7.catch(Exception fe)8.System,out.print(catch);9.10.System,out.printin(done);H.12.public static void doRiskyThingO throws Exception(13./this code returns unless it throws an Exception)也 许 会 产 生 哪 两 项 结 果?(选 两 项)A.before catchB.before after doneC.before catch doneD.before after catch11.现 有:1.class Birds 2.public static void main(String 口 args)3.try 4.throw new Exception();5.catch(Exception e)6.try 7.throw new Exception();8.catch(Exception e2)System,out.printinner);9.System,out.print(middle);10.)11.System,out.print(outer);12.13.A.inner outerB.middle outerC.inner middle outerD.编译失败12.现 有:1.class Parser extends Utilis 2.public static void main(String args)3.try System,out.print(new Parser().get 1 nt(42);4.catch(NumberFormatException n)5.System,out.printin(NFExc);6.)7.int get 1 nt(String arg)throws NumberFormatException8.return Integer,parseInt(arg);9.1 0.1 1.class Utils 1 2.int getInt(String arg)return 42;1 3.绐 果 为:A.NFExcB.42C.42NFExcD.编译失败1 3 现 有:1.cl a ss Pa rser exten ds Uti l s(2.p ub l i c sta ti c vo i d m a i n (Stri n gf a rgs)3.try System,o ut.p ri n t(n ew Pa rserO.getl n t(4 2 );4.ca tch(Excep ti o n e)5.System,o ut.p ri n tl n C Exc);6-7.i n t get 1 n t(Stri n g a rg)thro ws Excep ti o n (8.return In teger,p a rseIn t(a rg);9-1 0.1 1.cl a ss Uti l s 1 2.i n t getIn t(Stri n g a rg)return 4 2;1 3 结 果 为:A.4 2B.ExcC.4 2 ExcD 编译失败1 4 现 有:1 -cl a ss Pro p el l er2 2.pulolic static void main(S tringargs)/add code here?3.new Propeller2().topGo();4 5.void topGo()/a d d code here?6-middleGoO;7 8.void middleGoO/a d d code here?9.go();System,out.print In(late middle);void go()/a d d code here?12.throw new ExceptionO;13.为使代码通过编译1需要在哪一行加入声明throws Exception?A 只在第11行B 在 第8行和第11行C 在 第5行、第8行 和 第11行D 在 第2行、第5行、第8行 和 第11行(42)15.现有1.class Parser extends Utils 2.public static void main(String args)3.try System,out.print(new Parser().get 1nt4.catch(Exception e)5.System,out.printin(Exc);6.7.int get1nt(String arg)throws Exception 8.return Integer,parseInt(a rg);9.10.11.class Utils 12.int getlnt()return 42;13.结 果 是 什 么?A.42ExcB.ExcC.42D.编译失败参考答案IB2 A3 AC4 D5 B6 D7 D8 B9 A C1 0 B C1 1 C1 2 B1 3 D1 4 D1 5 C第九章练习题(多线程机制)1 线 程 由 以 下 哪 些 部 分 组 成?(选 三 项)A 虚 拟 的CPUB-CPu执行的代码C 支持代码工作的数据D 进程2 创 建 线 程 的 时 候必须实现哪项接口?A -RunnableB -ThreadC-RunD Start3 启 动 一 个 线 程 的 方 法 是 哪 项?A -joinOB.run f)C startOD -sleepO4 当 一 个 处 在 阻 塞 状 态 的 线 程 解 除 阻 塞 后,它 将 回 到 哪 个 状 态?A.运营中状态B结束状态C新建状态D 可运营状态5可以通过继承哪个类来创建线程?A.Th re adB -R un n abl eC -tartD-run6 为 了 保 证 方 法 的 线 程 安 全,声 明 方 法 的 时 候 必 须 用 哪 个 修 饰 符?A -n e wB.tran si e n tC.vo i dD.syn ch ro n i z e d7线 程 的 默 认 优 先 级 是 哪 项?A.0B.1c.5D.1 08 现 有:1.cl ass Th re ad 2 i m pl e m e n ts R un n abl e (2 -vo i d run()3.S yste m,o ut.pri n t(g o );4-5 6.publ i c stati c vo i d m ai n(S tri n g arg s)7.Th re ad 2 t2=n e w Th re ad 2();8.Th re ad t=n e w Th re ad(t2);9 t.startO ;10.11.结果为:A.goB.运营时异常被抛出c代 码 运 营,无输出结果D编译失败9,程序员想要创建一个名为MyThread的 类 以 便 在m ain方法中用Thread实例化。对于下面三行:MyThread 必须继承 Thread。MyThr