java课后答案.docx
- 文档编号:24946532
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:14
- 大小:23.31KB
java课后答案.docx
《java课后答案.docx》由会员分享,可在线阅读,更多相关《java课后答案.docx(14页珍藏版)》请在冰豆网上搜索。
java课后答案
java课后答案
第一章
.发明java的原因是什么,发明java的主要贡献者是谁,
答:
开发java语言的动力源于对独立平台的需要,即用这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况。
当时,c语言已无法满足人们的这一愿望,因为c语言总是针对特定的芯片将源程序编译成机器码,该机器码的运行就与特定的芯片指令有关,在其他类型的芯片上可能无法运行或者运行出错。
主要贡献者是JamesGosling。
2.“java编译器将源文件编译生成的字节码是机器码”,这句话正确吗,
答:
不正确,字节码是很接近机器码谢谢了的二进制文件,不能被机器直接识别。
3.java应用程序的主类必须含有怎么样的方法,
4."java应用程序必须有一个类是public类".这句话正确吗,
答:
一个java应用程序必须有一个类含有publicstaticvoidmain(Stringargs[])方法,称为该应用程序的主类。
5."javaapplet程序的主类必须是public类",这句话正确吗,不正确
"javaapplet源文件的主类必须是public类",这句话正确吗,正确
6.叙述java源文件的命名法则。
答:
(1)如果源文件中有多个类,那么只能有一个类是public类。
(2)如果有一个类是public类,那么源文件的名字必须和这个类的名字完全相同,扩展名为.java(3)如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名为.java就可以了。
(4)java语言区分大小写。
7.源文件生成的的字节码运行时加载到内存中吗,
8.怎样编写加载运行javaapplet的简单网页,
9.JDK1.6编译器使用"-source"参数的作用是什么,其默认的参数取值是什么,
答:
在编译源文件时使用"-source"参数来约定字节码适合的java平台。
1.6
第二章
1.什么叫标识符,标识符的规则是什么,
答:
用类标识类名、变量名、方法名、数组名、类型名、文件名的有效字符序列称为标识符。
规则:
标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字,标识符中的字母是区分大小写的。
2.什么叫关键字,说出五个关键字,
答:
关键字就是java语言中已经被赋予特定意义的一些单词,他们在程序中有着不用的用途,不可以作为程序中的名字来用,class、void、abstract、break、catch、do、byte、find、for、else、int、boolean、case、new
3.java的基本数据类型是什么,
答:
java语言有8中基本数据类型,分别是:
boolean、byte、short、int、doublelong、float和char。
习惯上可分为四类:
逻辑类型--boolean。
字符型--char。
整数类型--int、short、byte、long。
浮点型--float、double。
第四章
1.在声明类时,类名应遵守哪些习惯,
答:
类的名字不能是关键字,要符合标识符的规定,即名字可以有字母,下划线,数字或美元符号组成,并且第一个字符不能是数字。
如果类名使用拉丁字母,那么名字的首字母使用大写字母。
类名最好容易识别,见名之意。
当类名有几个单词复合而成时,每个单词的首字母使用大写。
2.类体内容有哪两种重要的成员,
答:
成员变量和方法
成员变量:
通过变量声明定义的变量,称为成员变量或域,用来刻画类创建的对象的属性。
方法:
3。
实例方法可以操作类变量吗,类方法可以操作实例变量吗,
答:
实例方法可以操作成员变量,无论是实例变量还是类变量;而类方法只能操作类变量不能操作实例变量。
P54
4。
当类的字节码加载到内存时,类变量就一定分配了内存空间了吗,P55
5。
类的实例变量在什么时候会被分配内存空间,
6。
一个类的类变量被该类创建的所有对象共享吗,
7。
不同对象的实例变量分配的内存空间地址一定不同吗,
8。
什么叫方法重载,构造方法可以重载吗,
答:
方法重载是多态性的一种,是指一个类中可以有多个方法具有相同的名字,但是这些方法的参数必须不同或者参数的个数不同,或者参数的类型不同
9。
为什么类方法不可以调用实例方法,
10.为什么类方法中不能操作实例成员变量,
11.实例方法可以用类名直接调用吗,
12.关键字this可以出现在构造方法中吗,可不出现在实例方法中吗,可以出现在类方法中吗,
答:
可以出现在构造方法中,代表使用该构造方法所创建的对象。
可以出现在实例方法中,代表使用该方法的当前对象。
不可以出现在类方法中,这是因为,类方法可以通过类名直接调用,这是可能还没有任何对象诞生。
13.源文件中声明编写的类一定在同一包中吗,
14."importjava.awt.*;"和"importjava.awt.Button"有什么不同,
15.程序如果使用了"importjava.until.*;",程序运行时,要加载java.until包中的类全部加载到内存中吗,
16.有哪几种访问权限修饰符,说出其中一种的作用,
17.怎么样反编译以一个类,
第五章
1(子类在什么情况下可以继承父类的友好成员,
P82—5.3
2(子类通过怎样的办法可以隐藏继承的成员变量,
答:
当在子类中定义和父类中同名的成员变量时,子类就隐藏了继承的成员变量,子类重新声明定义了这个成员变量。
3(子类重写继承的方法的规则是什么,
答:
方法重写时一定要保证方法的名字、类型、参数个数和类型同父类的某个方法完全相同,只有这样,子类继承的这个方法才被隐藏。
4(子类的构造方法的第一条语句是什么,
答:
5(子类对象一旦重写了继承的方法,就会隐藏继承的方法,是这样吗?
答:
是。
一旦子类重写了父类的方法,就隐藏了继承的方法。
6(子类重写继承的方法时,可以降低方法的访问权限吗,
答:
不可以。
7(简述关键字super的用法。
答:
Super关键字有两种用法:
一种用法是子类使用super调用父类的构造方法,另一种用法是子类使用super调用被子类隐藏的成员变量和方法。
8(假设父类有一个办法
publicdoublef(doublex,doubley){
returnx+y;
}
是否允许子类子再声明如下一个方法,
publicfloatf(doublex,doubley){
return23;
}
9(父类的final方法可以被子类重写吗,
答:
不可以。
10.什么类中可以有abstract方法,
答:
抽象类中可以有abstract方法。
11.什么叫对象的上转型对象,
答:
上转型对象不是父类创建的对象,而是子类对象的“简化”形态,他不关心子类新增的功能,只关心子类继承和重写的功能。
12.什么叫接口回调,
答:
接口回调是多态的另一种体现,接口回调是指:
可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称作对象功能的接口回调。
13.与类有关的匿名类一定是该类的一个子类吗,与接口有关的匿名类一定是实现该接口的一个类吗,是,是
14.怎么样声明一个泛型类,怎样评价SDK1.5新推出的泛型,
答:
可以使用“class名称<泛型列表>”声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如:
classA
其中A是泛型类的名称,E是其中的泛型
15.P110
第六章p127
3(String类和StingBuffer类有何不同,
答:
String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的某个字符,即String对象一旦创建,那么实体是不可以再发生变化的StringBuffer类,该类能创建可修改的字符串序列,也就是说,该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符串。
5(StringTokenizer类的主要用途是什么,该类有哪几个重要的方法,
答:
当我们分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包
中的StringTokenizer类
nextToken()方法逐个获取字符串分析器中的语言符号(单词),countTokens()方法可以得到计数变量的值,hasMoreTokens()方法控制循环
7(请说明Matcher对象的find()方法和lookingAt()方法有什么不同。
答:
publicbooleanfind():
寻找input和patter匹配的下一子序列,如果成功返回true,否则返回false。
publicbooleanlookingAt():
判断从input的开始位置是否有和patter匹配的子序列。
8(正则表达式中的元字符[123]代表什么意思,
答:
表示1、2、3中的任何一个
9(说出与模式"A[135]{2}"匹配的4个字符串
答:
A{2}A1{2}A3{2}A5{2}10.下列哪些字符串匹配模式"boy\\w{3}"?
C
A.boy111B.boy!
@#C.boyweoD.boyboyboyboy
第七章
1(怎样实现一个Calendar对象,P130
Calender类中的静态方法getInstance()可以实现初始化一个日历对象
2。
Clendar对象调用set(1949,9,1)设置的年月日分别是什么,
1949年9月1日
3(怎样得到一个1~100之间的随机数,
4(BigInteger类的常用构造方法是什么,P134
5(BigInteger对象怎样进行加法运算,
Pubicbigintegeradd(bigintegerval)6(LinkedList
LinkedList
7(对于经常需要查找的数据,应当选用LinkedList
第八章
1(线程和进程是什么关系,
进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。
线程是比进程更小的执行单位。
一个进程在其执行过程中,可以产生多个线程,每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。
每个进程都有一段专用的内存区域,与此不同的是,线程间可以共享相同的内存单元(包括代码与数据),并利用这些共享单元来实现数据交换、事实通信和必要的同步操作。
2(线程有几种状态,
新建的线程在它的一个完整的生命周期中通常要经历四种状态:
新建、运行、中断和死亡。
3(引起线程中断的常见原因是什么,
(a)JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态。
(b)线程使用CPU资源期间,执行了sleep(intmillsecond)方法,线程一旦执行了sleep(intmillsecond)方法,就立刻让出CPU的使用权,使当前线程处于中断状态。
(c)线程使用CPU资源期间,执行了wait()方法,使得当前线程进入等待状态。
(d)线程使用CPU资源期间,执行某个操作进入阻塞状态。
4(一个线程执行完run()方法后,进入了什么状态,该线程还能再调用start()方法吗,一个线程执行完run()方法后,进入了死亡状态,该线程不能再调用start()方法。
5(线程在什么状态时,调用isAlive()方法返回的值是false,
当线程进入死亡状态后(实体内存被释放),线程仍可以调用方法isAlive(),这时返回的值是false。
6(线程调用interrupt()的作用是什么,
intertupt方法经常用来“吵醒”休眠的线程。
7(将例8-9中Bank类中的save()OrTake()方法前的synchronized修饰去掉。
然后再重新编译、运行例8-9,注意观察运行结果
运行结果:
我是会计目前帐上有315万
我是出纳目前帐上有345万
我是会计目前帐上有330万
我是出纳目前帐上有360万
我是会计目前帐上有360万
8(wait()、notify()和notifyAll()的作用分别是什么,
使用wait()方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。
其它线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法的同时,应当用notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。
如果使用notify(),那么只是通知处于等待中的线程的某一个结束等待。
9(将例10种TicketSeller类中出现的wait();改写成if(fiveNumcer<1)是否合理,说明你的理由。
不合理
10(将例8-10中的TicketSeller类中出现的wait()改写成Thread.sleep(2000)然后重新编译、运行例8-10,注意观察运行结果
程序进入死循环
11(什么叫守护线程,
一个线程调用voidsetDaemon(booleanon)方法可以将自己设置成一个守护(Daemon)线程。
第九章
1(如果准备读取一个文件的内容,应当使用FileInputSream流还是FileOutputStream流,应当使用FileInputSream流
2(FileOutputStream流的read()方法和FileReader流的read()方法有何不同,FileOutputStream流的read方法从输入流中顺序读取单个字节的数据。
该方法返回字节值(0~255之间的一个整数),读取位置到达文件末尾,则返回-1。
FileReader流的read()方法输入流调用该方法从源中读取一个字符,该方法返回一个整数(0~65535之间的一个整数,Unicode字符值),如果未读出字符就返回-1。
3(BufferReader流能直接指向一个文件对象吗,
不能。
4(ByteArrayOutPutStream流怎么样获取缓冲区中的内容,
5(DataInputSream流和DataOutputSream类的主要用途是什么,
DataInputStream(InputStreamin)将创建的数据输入流指向一个由参数in指定的输入流,以便从后者读取数据(按着机器无关的风格读取)。
DataOutputStream(OutnputStreamout)将创建的数据输出流指向一个由参数out指定的输出流,然后通过这个数据输出流把Java数据类型的数据写到输出流out。
6(使用ObjectInputStream类和ObjectOutputSream类有哪些注意事项,当我们使用对象流写入或读入对象时,要保证对象是序列化的。
使用对象流写入到文件时不仅保证该对象是序列化的,而且该对象的成员对象也必须是序列化的。
7(怎么样使用输入/输出流技术克隆对象,
使用对象流很容易得获取一个序列化对象的克隆。
我们只需将该对象写入到对象输出流,然后用对象输入流读回的对象就是原对象的一个克隆。
8(使用RandomAccessFile类读写文件的好处是什么,
RandomAccessFile类创建的流的指向既可以作为源,也可以作为目的地。
也就是说,当我们相对一个文件进行读写操作时,可以创建一个指向该文件的RandomAccessFile流,这样既可以从这个流中读取文件的数据,也可以通过这个流写入数据到文件。
RandomAccessFile类对文件的读写比顺序读写更为灵活。
第十章
1(容器中添加组件惑移去组件后,容器调用validate()方法的好处是是什么,每当容器添加新的组件或移掉组件时,应该让容器调用validate()方法,以保证容器中的组件能正确显示出来。
2(JFrame窗体的基本结构是怎么样的,
JFrame窗体的基本结构是:
窗体的上边是一个很窄的矩形区域,称为菜单条区域,用来放置菜单条。
菜单条区域下面的区域用来放置组件,如果窗体没有添加菜单条,菜单条区域将其他组件挤占。
3(能把组件直接添加到JFrame窗体吗,应当添加到JFrame窗体的什么容器中,不可以把组件直接添加到JFame窗体中。
JFame窗体含有一个称为内容面板的容器,应当把组件添加到内容面板中(内容面板也是重容器)。
4(FlowLayout布局有什么特点,是哪些容器的默认布局,
FlowLayout类创建的对象称做FlowLayout型布局。
FlowLayout类的一个常用构造方法如下:
FlowLayout()
该构造方法可以创建一个居中对齐的布局对象。
5(BoderLayout布局有什么特点,是哪些容器的默认布局,
容器使用BorderLayout布局,那么容器空间简单地划分为东、西、南、北、中五个区域。
每加入一个组件都应该指明把这个组件添加在哪个区域中,区域由BorderLayout中的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示.添加到某个区域的组件将占据整个这个区域。
每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,那么先前的组件将被后者替换掉。
BorderLayout布局是Window型容器的默认布局,例如JFrame、JDialog都是Window类的间接子类,它们的默认布局都是BorderLayout布局。
6(JLayeredPane布局的特点是什么,
JLayeredPane容器将容器分成5个层,DEFAULT_LAYER是最底层,添加到DEFAULT_LAYER层的组件如果和其它层的组件发生重叠时,将被其它组件遮挡。
DRAG_LAYER层是最上面的层,如果JLayeredPane中添加了许多组件,当你用鼠标移动一组件时,可以把移动的组件放到DRAG_LAYER层,这样,组件在移动过程中,就不会被其它组件遮挡。
添加到同一层上的组件,如果发生重叠,后添加的会遮挡先添加的组件。
7(JTextField中显示的文本能靠右对齐吗,
能。
publicvoidsetHorizontalAlignment(intalignment)设文本在文本框中的对齐方式,其中alignment的有效值为JTextField.RIGHT是文本靠右对齐。
8(Java处理事件的模式是怎么样的,结合JTextField对象触发的ActionEven事件给予简单叙述。
需要有一个事件源,而且事件源必须是一个对象,而且这个对象必须是Java认为能够发生事件的对象。
我们需要一个对象对事件源进行监视,以便对发生的事件作出处理。
事件源通过调用相应的方法将某个对象作为自己的监视器。
例如,对于文本框,这个方法是:
addActionListener(ActioListenerlistener)
对于获取了监视器的文本框对象,在文本框获得输入焦点之后,如果用户按回车键,Java运行系统就自动用ActionEvent类创建了一个对象,即发生了ActionEvent事件。
也就是说,事件源获得监视器之后,相应的操作就会导致事件的发生,并通知监视器,见识起就会做出相应的处理。
9(JCheckBox对象可以触发哪种类型的事件,
10.什么条件可以使的组件触发FocusEvent事件,
当组件具有焦点监视器后,如果组件从无输入焦点变成有输入焦点或从有输入焦点变成无输入焦点都会触发FocusEvent事件。
11(使用MouseListener接口可以处理哪几种操作触发的MouseEvent事件,鼠标指针从组件之外进入
鼠标指针从组件内退出
鼠标指针停留在组件上面时,按下鼠标
鼠标指针停留在组件上面时,释放鼠标
鼠标指针停留在组件上面时,单击或连续单击鼠标
12(AWT线程的好处是什么,
Java虚拟机在各个线程之间快速切换,保证程序中的窗口始终能显示在桌面上,同时也保证程序中的GUI事件以及其他线程的任务得到处理和执行。
13(有模式对话框的特点是什么,
MVC结构可以使程序更具有对象化特性,也更容易维护。
14(Java实现多文档界面(MDL)常用的方式是什么,
Java实现多文档界面(MDI)常用的方式是在一个JFrame窗口中添加若干个内部窗体,内部窗体由JInternalFrame类负责创建。
15(使用.jar文件发布一个应用程序的步骤是怎么样的,
(1)首先用文本编辑器编写一个清单文件。
(2)生成JAR文件。
(3)最后将此文件复制到任何一个安装了Java运行环境的计算机上,只要用鼠标双击该文
件就可以运行该Java运行程序了。
第十一章
1(一个URL对象通常包含哪些信息,答:
协议、地址、资源。
2(怎么样读取URL中的资源,
答:
URL对象调用InputStreamopenStream()方法可以返回一个输入流,该输入流指向URL对象所包含的资源。
通过该输入流可以将服务器上的资源信息读入到客户端。
3(Java使用哪个组件来显示URL中的html文件,
4(客户端的Socket对象和服务端的Socket对象是怎样通信的,P2675(SeverSocket对象调用什么方法来建立服务器端的Socket对象,该方法有什么特点,6(基于UDP的通信和基于TCP的通信有什么不同,P274
答:
基于UDP的信息传递更快,但不提供可开性保证。
也就是说数据在传输时,用户无法知道数据是否正确到达目的地主机,也不能确定数据到达目的地的顺序是否和发送的顺序相同
7(D类地址是什么,与A、B和C类地址有什么不同,
答:
224.0.0.0与239.255.255.255之间的地址称为D类地址。
D类地址并不代表某个特定主机的位置,一个具有A、B或C类地址的主机要广播数据或接受广播,都必须加入待同一个D类地址中。
一个D类地址也成为一个组播地址,加入到同一个组播地址的主机可以在某个端口上广播信息,也可以在某个端口号上接收信息。
第十二章
1(ODBC设置数据源的主要步骤有哪些,P285
答:
(1)创建、修改或删除数据源
(2)为数据源选择驱动程序(3)设置数据源名称及位置2(模糊查询的SQL语句是怎么样的,有哪些通配符,
答:
SQL语句可以使用操作符”LIKE”进行模式般配,使用”%”表示零个或多个字符,用一个下划线”_”表示任意一个字符,使用”[若干字符]”表示”若干字符”中的任意一个。
3(使用CashRowSetImpl类有什么好处,
答:
4(使用预处理语句的好处是什么,
答:
使用于处理命令,应用程序能针对连接的数据库,事先SQL语句解释为数据库底层的内部命令,然后直接让数据库去执行这个命令,能减轻了数据库的负担,提高了访问数据库的速度
5(什么叫事务,JDBC事务处理分几个步骤,P299
答:
事务由一组SQL语句组成,是保证数据库中数据完整性和一致性的重要机制。
6(加载SQLServer2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课后 答案