《Java基础入门》课后习题及答案.doc

上传人:w****2 文档编号:6571899 上传时间:2020-02-29 格式:DOC 页数:54 大小:188.50KB
返回 下载 相关 举报
《Java基础入门》课后习题及答案.doc_第1页
第1页 / 共54页
《Java基础入门》课后习题及答案.doc_第2页
第2页 / 共54页
《Java基础入门》课后习题及答案.doc_第3页
第3页 / 共54页
点击查看更多>>
资源描述
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、以下选项中,哪些属于JDK工具?(多选)ABCDA、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具2、Java属于以下哪种语言?CA、机器语言 B、 汇编语言 C、高级语言 D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、.java B、.jre C、.exe D、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?BA、Java文档制作工具 B、Java解释器 C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?BAd:jdk;Bd:jdkbin;Cd:jrebin;Dd:jre;三、问答题1、简述Java的特点。 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。2、简述JRE与JDK的区别。 JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用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中的程序代码都必须在一个类中定义,类使用_class_关键字来定义。2、布尔常量即布尔类型的两个值,分别是_true_和_flase_。3、Java中的注释可分为三种类型,分别是_单行注释/_、_多行注释_/* */_、文档/注释* */_。4、Java中的变量可分为两种数据类型,分别是_基本数据类型_和_引用数据类型_。5、在Java中,byte类型数据占_1_个字节,short类型数据占_2_个字节,int类型数据占_4_个字节,long类型数据占_8_个字节。6、在逻辑运算符中,运算符_&_和_&_用于表示逻辑与,_|_和_|_表示逻辑或。7、若x = 2,则表达式 ( x + + )3 的值是_0_。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、0xC5表示的是一个十六进制整数。对3、continue 语句只用于循环语句中,它的作用是跳出循环。错4、“/*/”中可以嵌套“/”注释,但不能嵌套“/*/”注释。对5、-5%3的运算结果是2。错三、选择题1、以下选项中,哪些属于合法的标识符?(多选)ADA、Hello_World B、class C、123username D、username1232、关于方法重载的描述,以下选项中哪些是正确的?(多选)(AD)ABD A、方法名必须一致 B、返回值类型必须不同 C、参数个数必须一致 D、参数的个数或类型不一致3、以下关于变量的说法错误的是? CA、变量名必须是一个有效的标识符B、变量在定义时可以没有初始值C、变量一旦被定义,在程序中的任何位置都可以被访问D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明4、以下选项中,switch语句判断条件可以接收的数据类型有哪些? (多选) ABCDA、int B、byte C、char D、short 5、假设int x = 2,三元表达式 x0?x+1:5 的运行结果是以下哪一个? CA、0 B、2 C、3 D、56、下面的运算符中,用于执行除法运算是哪个? AA、/ 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)CA、 new int 23; B、 new int3;C、 new int3; D、 以上答案皆不对10、请先阅读下面的代码。 int x = 1;int y = 2;if (x % 2 = 0) y+; else y-;System.out.println(y= + y);上面一段程序运行结束时,变量y的值为下列哪一项?AA、1 B、2 C、3 D、switch语句四、程序分析题阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。代码一:b=7(编译不通过。int值4和b相加时,由于变量b的类型为byte,取值范围没有int类型大,存不下int类型的值,因此编译不通过)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; System.out.println(x is + x); 代码三:3 因为没有break,,所以4以后都执行public class Test03 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);代码四:987public class Test04 public static void main(String args) int n = 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、 简述&与&的区别并举例说明。如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&”进行连接,当“&”左边的表达式为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对象,并调用play()方法测试自定义的NoThisSongException异常,使用trycatch语句捕获异常,调用NoThisSongException的getMessage()方法打印出异常信息。第5章 多线程一、填空题1、一个应用程序中有多条并发执行的线索,每条线索都被称作一个线程_,它们会交替执行,彼此间可以进行_通信_。2、在实现多线程的程序时有两种方式,一是通过继_Thread_承类,二是通过实现Runnable_接口。3、yield()方法只能让相同优先级或者更高优先级、处于_就绪_状态的线程获得运行的机会。4、在Java语言中,同步方法需要用到关键字_synchronized_,对于同步方法而言无需指定同步锁,它的同步锁是方法所在的_对象_,也就是_this_(关键字)。5、在多任务系统中,每个独立执行的程序称之为_线程_,也就是“正在运行的程序”。6、线程的整个生命周期分为五个阶段,分别是_新建_、就绪_、_运行_、_阻塞_、和死亡_。7、线程的优先级用110之间的整数来表示,其中_10_代表优先级最高,_1_代表优先级最低。8、在Thread类中,提供了一个start()方法,该方法用于启动线程_,当新线程启动后,系统会自动调用_run()_方法。9、要想解决线程间的通信问题,可以使用_wait()_、notify()_、_notifyALL()_方法。10、要将某个线程设置为后台线程,需要调用该线程的_setDaemon(true)_方法,该方法必须在_start()_方法之前调用。二、判断题1、当我们创建一个线程对象时,该对象表示的线程就立即开始运行。错2、如果前台线程全部死亡,后台线程也会自动死亡。对3、同步代码块中的锁对象可以是任意类型的对象。对4、静态方法不能使用synchronized关键字来修饰。错5、线程结束等待或者阻塞状态后,会进入运行状态。错三、选择题1、Thread类位于下列哪个包中?B A、java.io B、java.lang C、java.util D、java.awt2、关于线程的创建过程,下面四种说法正确的有哪些?(多选)ACA、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法B、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法C、定义一个实现Runnable 接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法 D、定义一个实现Runnable 接口的类并实现run()方法,创建该类对象,然后调用run()方法3、对于通过实现Runnable接口创建线程,下面说法正确的有哪些?(多选)ABC A、适合多个相同程序代码的线程去处理同一个资源的情况 B、把线程同程序代码、数据有效的分离,很好的体现了面向对象的设计思想C、可以避免由于Java的单继承带来的局限性 D、编写简单,可以不通过Thread类直接创建线程4、对于线程的生命周期,下面四种说法正确的有哪些?(多选) ABC(BC) A、调用了线程的start()方法,该线程就进入运行状态 (就绪,还要获得CPU使用权) B、线程的run()方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态C、线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它 D、线程进入死亡状态后,调用它的start()方法仍然可以重新启动5、对于死锁的描述,下面四种说法正确有哪些?(多选)AB(ABD) A、当两个线程互相等待对方释放同步锁时会发生死锁 B、Java虚拟机没有检测和处理死锁的措施 C、一旦出现死锁,程序会发生异常 D、处于死锁状态的线程处于阻塞状态,无法继续运行6、下面四个选项中,哪些是线程进入阻塞状态的原因?(多选)ABCA、线程试图获取某个对象的同步锁,而该锁被其它线程持有B、线程调用了另一个线程的join()方法C、当线程调用了一个阻塞式的IO方法D、线程调用了setDaemon(boolean b)方法7、线程调用sleep()方法后,该线程将进入以下哪种状态?CA、就绪状态 B、运行状态 C、阻塞状态 D、死亡状态 8、在以下哪种情况下,线程进入就绪状态?DA、线程调用了sleep()方法时 B、线程调用了join()方法(终止)C、线程调用了yield()方法时 D、线程调用了notify()方法?9、下面四个选项中,对线程同步的目的描述正确的有哪些?(多选)AD(AB)A、锁定资源,使同一时刻只有一个线程去访问它,防止多个线程操作同一个资源引发错误B、提高线程的执行效率C、让线程独占一个资源D、让多个线程同时使用一个资源10、对于wait()方法,下面说法正确的是?(多选)ABCD A、wait()方法的调用者是同步锁对象 B、wait()方法使线程进入等待状态 C、调用同一锁对象的notify()或notifyAll()方法可以唤醒调用wait()方法等待的线程 D、调用wait()方法的线程会释放同步锁对象四、程序分析题阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。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 args) Thread t = new Thread(new RunHandler(); t.start(); 2.代码二:thisisrun(程序不能编译通过,因为Thread的子类A重写的run()方法的访问级别不能低于父类run()方法的。访问级别)public class A extends Threadprotected void run() System.out.println(thisisrun(); public static void main(String args) A a = new A();a.start();3.代码三:Exception(程序不能编译通过,因为同步方法中调用wait()方法的对象必须为同步锁对象)public class Testprivate Object obj=new Object();public synchronized void a()try obj.wait();改this.wait()System.out.println(waiting); catch (InterruptedException e) System.out.println(Exception);public static void main(String args) new Test().a();4.为了使下面的程序能够输出“Thread is running”,请在在空格处填上相应的代码。public class B implements Runnable public static void main(String args) Thread t = new Thread(new B();_t.start()_ /此处填空public void run() System.out.println(Thread is running);public void go() start(1);public void start(int i) 五、简答题1、 java中有几种方法可以实现一个线程?请举例说明。一种是继承java.lang包下的Thread类,覆写Thread类的run()方法,在run()方法中实现运行在线程上的代码。new Thread() public void run().start();另一种就是实现java.lang.Runnable接口,同样是在run()方法中实现运行在线程上的代码。new Thread(new Runnable() public void run().start()2、 sleep() 和 wait() 有什么区别?调用sleep()方法,正在执行的线程主动让出CPU去执行其他线程,在sleep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用sleep()方法让出了CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了notify()方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。六、编程题请按照题目的要求编写程序并给出运行结果。1、通过继承Thread类的方式创建两个线程,在Thread构造方法中指定线程的名字,并将这两个线程的名字打印出来。2、通过实现Runnable接口的方式创建一个新线程,要求main线程打印100此次“main”,新线程打印50次“new”。3、模拟传智播客的三个老师同时分发80份学习笔记,每个老师相当于一个线程。4、编写10个线程,第一个线程从1加到10,第二个线程从11加到20.第十个线程从91加到100,最后再把十个线程结果相加。第6章 JavaAPI一、填空题1、在Java中定义了两个类来封装对字符串的操作,它们分别是String_和_StringBuffer_。2、Java中的操作日期的类有_Date_、_Calendar_、DateFormat_等。3、在程序中若想取得一个Runtime实例,则可以调用Runtime类的静态方法getRnutime()_。4、Math类中用于计算所传递参数平方根的方法是_sqrt()_。5、Java中专门用于将日期格式化为字符串的类是_DateFormat_。6、Math类中有两个静态常量PI和E,分别代表数学常量_和_e_。7、Java中的用于产生随机数的类是_Random_,它位于java.util_包中。8、String类中用于返回字符串字符个数的方法是_length()_。9、System类中所提供的属性和方法都是_静态_的,想要引用这些属性和方法,直接使用System类调用即可。10、已知 sb 为 StringBuffer 的一个实例,且 sb.toString() 的值为 abcde , 则执行sb. reverse()后,sb.toString()的值为_”edcba_”_。二、判断题1、String对象和StringBuffer对象都是字符串变量,创建后都可以修改。错2、用运算符“=”比较字符串对象时,如果两个字符串的值相同,结果为true。错3、System类中的currentTimeMillis()方法返回一个long类型的值。对4、Date、Calendar以及DateFormat类都位于java.util包中。错 分别java.util.Date java.util.Calendarjava.text.DateFormat5、String类的方法 replace (CharSequence srt1,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!