2023年《Java基础入门》课后习题及超详细解析超详细解析答案.pdf
《2023年《Java基础入门》课后习题及超详细解析超详细解析答案.pdf》由会员分享,可在线阅读,更多相关《2023年《Java基础入门》课后习题及超详细解析超详细解析答案.pdf(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 基础入门课后习题及答案 Java 基础入门课后习题 第1章 Java 开发入门 一、填空题 1、Java 的三大体系分别就是_JavaSE_、_JavaEE_、_JavaME_。2、Java 程序的运行环境简称之为 JRE_。3、编译 Java 程序需要使用_javac_命令。4、javac、exe 与 java、exe 两个可执行程序存放在 JDK 安装目录的 bin_目录下。5、path_环境变量用来存储 Java 的编译与运行工具所在的路径,而_classpath_环境变量则用来保存保存 Java 虚拟机要运行的“、class”文件路径。二、选择题 1、以下选项中,哪些属于 J
2、DK 工具?(多选)ABCD A、Java 编译器 B、Java 运行工具 C、Java 文档生成工具 D、Java 打包工具 2、Java 属于以下哪种语言?C A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在 Java 虚拟机中运行?D A、java B、jre C、exe D、class 4、安装好JDK 后,在其bin目录下有许多exe 可执行文件,其中java、exe 命令的作用就是以下哪一种?B A、Java 文档制作工具 B、Java 解释器 C、Java 编译器 D、Java 启动器 5、如果 jdk 的安装路径为:d:jdk,若想在命令窗
3、口中任何当前路径下,都可以直接使用 javac 与 java 命令,需要将环境变量 path 设置为以下哪个选项?B A.d:jdk;B.d:jdkbin;C.d:jrebin;D.d:jre;Java 基础入门课后习题及答案 三、问答题 1、简述 Java 的特点。面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。2、简述 JRE 与 JDK 的区别。JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运行时所需要的基本条件与许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 就是
4、提供给普通用户使用的,如果您只想运行别人开发好的 Java 程序,那么,您的计算机上必须且只需安装 JRE。JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,就是提供给 Java 开发人员使用的。初学者学习与使用 Java 语言时,首先必须下载与安装 JDK。JDK 中已经包含了 JRE 部分,初学者安装 JDK 后不必再去下载与安装 JRE 了。JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,就是提供给 Ja
5、va 开发人员使用的。初学者学习与使用 Java 语言时,首先必须下载与安装 JDK。JDK 中已经包含了 JRE 部分,初学者安装 JDK 后不必再去下载与安装 JRE 了。四、编程题 使用记事本编写一个 HelloWorld 程序,在 dos 命令行窗口编译运行。请按照题目的要求编写程序并给出运行结果。public class HelloWorld public static void main(String args)System、out、println(这就是第一个 Java程序!);第2章 Java 编程基础 一、填空题 1、Java 中的程序代码都必须在一个类中定义,类使用_cla
6、ss_关键字来定义。Java 基础入门课后习题及答案 2、布尔常量即布尔类型的两个值,分别就是_true_与_flase_。3、Java 中的注释可分为三种类型,分别就是_单行注释/_、_多行注释_/*/_、文档/注释*/_。4、Java 中的变量可分为两种数据类型,分别就是_基本数据类型_与_引用数据类型_。5、在 Java 中,byte 类型数据占_1_个字节,short 类型数据占_2_个字节,int 类型数据占_4_个字节,long 类型数据占_8_个字节。6、在逻辑运算符中,运算符_&_与_&_用于表示逻辑与,_|_与_|_表示逻辑或。7、若 x=2,则表达式(x+)3 的值就是_0
7、_。8、若 int a=2;a+=3;执行后,变量 a 的值为_5_。9、若 int a=12,45,34,46,23;,则 a2=_34_。10、若 int a32=123,345,34,56,34,56,则 a21=_56_。二、判断题 1、Java 语言不区分大小写。错 2、0 xC5 表示的就是一个十六进制整数。对 3、continue 语句只用于循环语句中,它的作用就是跳出循环。错 4、“/*/”中可以嵌套“/”注释,但不能嵌套“/*/”注释。对 5、-5%3的运算结果就是 2。错 三、选择题 1、以下选项中,哪些属于合法的标识符?(多选)AD A、Hello_World B、cla
8、ss C、123username D、username123 2、关于方法重载的描述,以下选项中哪些就是正确的?(多选)(AD)ABD A、方法名必须一致 B、返回值类型必须不同 Java 基础入门课后习题及答案 C、参数个数必须一致 D、参数的个数或类型不一致 3、以下关于变量的说法错误的就是?C A、变量名必须就是一个有效的标识符 B、变量在定义时可以没有初始值 C、变量一旦被定义,在程序中的任何位置都可以被访问 D、在程序中,可以将一个 byte 类型的值赋给一个 int 类型的变量,不需要特殊声明 4、以下选项中,switch 语句判断条件可以接收的数据类型有哪些?(多选)ABCD A
9、、int B、byte C、char D、short 5、假设 int x=2,三元表达式 x0?x+1:5 的运行结果就是以下哪一个?C A、0 B、2 C、3 D、5 6、下面的运算符中,用于执行除法运算就是哪个?A A、/B、C、%D、*7、下列语句哪些属于循环语句?(多选)AC A、for 语句 B、if 语句 C、while 语句 D、switch 语句 8、下面哪种写法可以实现访问数组 arr 的第 1 个元素?A A、arr0 B、arr(0)C、arr1 D、arr(1)9、以下哪个选项可以正确创建一个长度为 3 的二维数组?(B)C A、new int 23;B、new in
10、t3;C、new int3;D、以上答案皆不对 10、请先阅读下面的代码。int x=1;int y=2;if(x%2=0)y+;Java 基础入门课后习题及答案 else y-;System、out、println(y=+y);上面一段程序运行结束时,变量 y 的值为下列哪一项?A A、1 B、2 C、3 D、switch 语句 四、程序分析题 阅读下面的程序,分析代码就是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。代码一:b=7(编译不通过。int 值 4 与 b 相加时,由于变量 b 的类型为 byte,取值范围没有 int 类型大,存不下 int 类型的
11、值,因此编译不通过)public class Test01 public static void main(String args)byte b=3;b=b+4;System、out、println(b=+b);代码二:不能,y 只在有效(编译不通过。这就是因为 y 就是在最里层的代码块中定义的一个变量,只有在那个代码)public class Test02 public static void main(String args)int x=12;int y=96;System、out、println(x is +x);System、out、println(y is +y);y=x;Syste
12、m、out、println(x is +x);代码三:3 因为没有 break,所以 4 以后都执行 public class Test03 Java 基础入门课后习题及答案 public static void main(String args)int x=4,j=0;switch(x)case 1:j+;case 2:j+;case 3:j+;case 4:j+;case 5:j+;default:j+;System、out、println(j);代码四:9 8 7 public class Test04 public static void main(String args)int n=
13、9;while(n 6)System、out、println(n);n-;五、简答题 1、请列举 Java 语言中的八种基本数据类型,并说明每种数据类型所占用的空间大小。Java 语言的八种基本数据类型有:byte 字节型,占一个字节。short 短整型,占两个字节。int 整型,占 4 个字节。long 长整型,占 8 个字节。float 单精度浮点型,占 4 个字节。double 双精度浮点型,占 8 个字节。char字符型,占两个字节。boolean 型,表示逻辑值,有 true 与 false 两个值,分别占一个字节。2、简述&与&的区别并举例说明。Java 基础入门课后习题及答案 如
14、果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&”进行连接,当“&”左边的表达式为 false,则不会执行其右边的表达式。例如定义 int x=2,y=0;boolean b=x 0 表达就是会发生被 0 除异常,因为 x/y 的表达式执行了。而 boolean b=x 0 就是不会出现这种异常的,因为 x 0)y=0 (x=0)x2 1 (x 10 时,paly()方法用 throw 关键字抛出 NoThisSongException 异常,创建异常对象时,调用有参的构造方法,传入“您播放的歌曲不存在”。3)在测试类中创建 Player 对象,
15、并调用 play()方法测试自定义的 NoThisSongException 异常,使用trycatch 语句捕获异常,调用 NoThisSongException 的 getMessage()方法打印出异常信息。第5章 多线程 一、填空题 1、一个应用程序中有多条并发执行的线索,每条线索都被称作一个线程_,它们会交替执行,彼此 间可以进行_通信_。2、在实现多线程的程序时有两种方式,一就是通过继_Thread_承类,二就是通过实现Runnable_接口。3、yield()方法只能让相同优先级或者更高优先级、处于_就绪_状态的线程获得运行的机会。Java 基础入门课后习题及答案 4、在 Jav
16、a 语言中,同步方法需要用到关键字_synchronized _,对于同步方法而言无需指定同步锁,它的同步 锁就是方法所在的_对象_,也就就是_this_(关键字)。5、在多任务系统中,每个独立执行的程序称之为_线程_,也就就是“正在运行的程序”。6、线程的整个生命周期分为五个阶段,分别就是_新建_、就绪_、_运行_、_阻塞_、与死亡_。7、线程的优先级用 110 之间的整数来表示,其中_10_代表优先级最高,_1_代表优先级最低。8、在 Thread 类中,提供了一个 start()方法,该方法用于启动线程_,当新线程启动后,系统会自动调用_run()_方法。9、要想解决线程间的通信问题,可
17、以使用_wait()_、notify()_、_notifyALL()_ 方法。10、要将某个线程设置为后台线程,需要调用该线程的_setDaemon(true)_ _方法,该方法必须在_start()_方法之前调用。二、判断题 1、当我们创建一个线程对象时,该对象表示的线程就立即开始运行。错 2、如果前台线程全部死亡,后台线程也会自动死亡。对 3、同步代码块中的锁对象可以就是任意类型的对象。对 4、静态方法不能使用 synchronized 关键字来修饰。错 5、线程结束等待或者阻塞状态后,会进入运行状态。错 三、选择题 1、Thread 类位于下列哪个包中?B A、java、io B、jav
18、a、lang C、java、util D、java、awt 2、关于线程的创建过程,下面四种说法正确的有哪些?(多选)AC Java 基础入门课后习题及答案 A、定义 Thread 类的子类,重写 Thread 类的 run()方法,创建该子类的实例对象,调用对象的 start()方法 B、定义 Thread 类的子类,重写 Thread 类的 run()方法,创建该子类的实例对象,调用对象的 run()方法 C、定义一个实现 Runnable 接口的类并实现 run()方法,创建该类实例对象,将其作为参数传递给Thread 类的构造方法来创建 Thread 对象,调用 Thread 对象的
19、start()方法 D、定义一个实现 Runnable 接口的类并实现 run()方法,创建该类对象,然后调用 run()方法 3、对于通过实现 Runnable 接口创建线程,下面说法正确的有哪些?(多选)ABC A、适合多个相同程序代码的线程去处理同一个资源的情况 B、把线程同程序代码、数据有效的分离,很好的体现了面向对象的设计思想 C、可以避免由于 Java 的单继承带来的局限性 D、编写简单,可以不通过 Thread 类直接创建线程 4、对于线程的生命周期,下面四种说法正确的有哪些?(多选)ABC(BC)A、调用了线程的 start()方法,该线程就进入运行状态 (就绪,还要获得 CP
20、U 使用权)B、线程的 run()方法运行结束或被未 catch 的 InterruptedException 等异常终结,那么该线程进入死亡状态 C、线程进入死亡状态,但就是该线程对象仍然就是一个 Thread 对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它 D、线程进入死亡状态后,调用它的 start()方法仍然可以重新启动 5、对于死锁的描述,下面四种说法正确有哪些?(多选)AB(ABD)A、当两个线程互相等待对方释放同步锁时会发生死锁 B、Java 虚拟机没有检测与处理死锁的措施 C、一旦出现死锁,程序会发生异常 Java 基础入门课后习题及答案 D、处于死锁状态的线程
21、处于阻塞状态,无法继续运行 6、下面四个选项中,哪些就是线程进入阻塞状态的原因?(多选)ABC A、线程试图获取某个对象的同步锁,而该锁被其它线程持有 B、线程调用了另一个线程的 join()方法 C、当线程调用了一个阻塞式的 IO 方法 D、线程调用了 setDaemon(boolean b)方法 7、线程调用 sleep()方法后,该线程将进入以下哪种状态?C A、就绪状态 B、运行状态 C、阻塞状态 D、死亡状态 8、在以下哪种情况下,线程进入就绪状态?D A、线程调用了 sleep()方法时 B、线程调用了 join()方法(终止)C、线程调用了 yield()方法时 D、线程调用了
22、notify()方法?9、下面四个选项中,对线程同步的目的描述正确的有哪些?(多选)AD(AB)A、锁定资源,使同一时刻只有一个线程去访问它,防止多个线程操作同一个资源引发错误 B、提高线程的执行效率 C、让线程独占一个资源 D、让多个线程同时使用一个资源 10、对于 wait()方法,下面说法正确的就是?(多选)ABCD A、wait()方法的调用者就是同步锁对象 B、wait()方法使线程进入等待状态 C、调用同一锁对象的 notify()或 notifyAll()方法可以唤醒调用 wait()方法等待的线程 D、调用 wait()方法的线程会释放同步锁对象 Java 基础入门课后习题及答
23、案 四、程序分析题 阅读下面的程序,分析代码就是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。1、代码一:不能,RunHandler 没有继承 Thread,不能用 Thread 创建对象(程序不能编译通过,因为RunHandler 类没有实现 Runnable 接口,因此 RunHandler 的实例对象不能作为参数传递给 Thread 的构造方法。)class RunHandler public void run()System、out、println(run);public class Test public static void main(String
24、 args)Thread t=new Thread(new RunHandler();t、start();2、代码二:this is run(程序不能编译通过,因为 Thread 的子类 A 重写的 run()方法的访问级别不能低于父类 run()方法的。访问级别)public class A extends Thread protected void run()System、out、println(this is run();public static void main(String args)A a=new A();a、start();3、代码三:Exception(程序不能编译通过,因
25、为同步方法中调用 wait()方法的对象必须为同步锁对象)public class Test private Object obj=new Object();public synchronized void a()try obj、wait();改 this、wait()System、out、println(waiting);Java 基础入门课后习题及答案 catch(InterruptedException e)System、out、println(Exception);public static void main(String args)new Test()、a();4、为了使下面的程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java基础入门 2023 Java 基础 入门 课后 习题 详细 解析 答案
限制150内