java 语言程序设计
[参考课件](http://ppt.beegoedu.com/Upload/ppt/2020010351369.pdf)
[课本目录](https://mm.edrawsoft.cn/map.html?sharecode=6045f49923d749a70066731)
#### 试卷分析
1. 考试形式
闭卷
考试时间150分钟
满分100分,及格60分
2. 考试题型
1. 单项选择(10小题共10分)
2. 填空题(10小题共20分)
3. 简答题(5小题共20分)
4. 程序填空题(3小题共18分)
5. 程序分析题(3小题共18分)流操作
6. 程序设计题(2小题共14分)Swing
### 简答题
---
>1. 简要说明包的概念及其命名要求?
1. 包是类的容器,包的设计人员利用包来划分名字空间,以避免类名冲突。
2. 包的名字有层次关系,各层之间以点分隔。
3. 包层次必须与Java开发系统的文件系统结构相同。
4. 通常包名中全部用小写字母。
>2. 简述Java程序的结构可以包含哪些内容。
1. package语句:包语句,每个文件最多只有一个,且必须放在文件开始的地方。
2. import语句:引入语句,可以没有,也可以有多个,如果有 import语句,必须放在所有类定义的前面。
3. 具有 public权限的类定义:每个文件中最多有一个。
4. 类定义:每个文件中包含的非 public权限的类定义的个数没有限制。
5. 接口定义:每个文件中包含的接口定义个数没有限制。
>3. 请简述Java中标识符的命名规则?
标识符是由字母、数字、下划线或美元符组成的字符串(2分),其中数字不能作为标识符的开头(1分),并区分大小写
1. 标识符是由字母、数字、下划线、美元符($)**组成**的字符串,
2. 其中**数字**不能作为标识符的开头。
3. 标识符**区分大小写,长度没有限制**,
4. 且**保留关键字**不能当作普通的标识符使用。
>4. 请写出package语句和import语句的区别?
1. package语句为包语句,每个文件最多只有一个,且必须放在文件开始的地方(2分)。
2. import语句为引入语句,可以没有,也可以有多个,如果有,必须放在所有类定义的前面(2分)
>5. 什么是数据流,数据流分为哪些类,各类的特点是什么?
1. 数据流是指一组有顺序的、有起点和终点的字节集合。
2. 数据流分为输入数据流和输出数据流,输入数据流只能读不能写,输出数据流只能写不能读。
3. 从数据流中读取数据时,必须有一个数据源与该数据流相连。
>6. 为什么在关闭缓冲区输出流之间应执行fush方法?
1. 缓冲区的块空间被填满了才写出到输出流
2. 最后一次写操作,缓冲区的块如果没有填满,直接关闭输出流,则会丢失数据,所以执行flush强制将缓冲区数据写到输出流,完成写操作,然后关闭输出流。
>7. 重载方法的规则是什么?
方法名相同,方法签名不同。
重载方法有两条规则,一是调用语句的实参列表必须足够判断要调用的是哪个方法。实参的类型可能要进行正常的扩展提升,但在有些情况下会引起混淆。二是方法的返回值类型可以相同也可以不同。两个同名方法仅有返回类型不同,而参数列表完全相同是不够的,因为在方法执行前不知道能得到什么类型的返回值,因此也就不能确定要调用哪个方法。重载方法的参数列必须不同
>8.如何处理 JComboBox上的用户事件?
1. JComboBox(组合框)上的用户事件既可以通过 ActionListener处理,又可以通过 ItemListener处理。
2. 用户输入项目后按<Enter>键,对应的接口是 ActionListener。用户选定项目,对应的接口是 ItemListener。
3. 用户的一次选择操作会引发两个 ItemEvent事件,因此通常使用 ActionListener处理比较方便。
>9. 请写出在java.awt.event中,用来检测并对事件做出反应的模型所包括的三种对象?
源对象(1分)、监视器对象(1分)和事件对象(1分)
>10. 请简述过滤器数据流的概念及其种类
一个过滤器数据流在创建时与一个已经存在的数据流相连,这样在从这样的数据流中读取数据时,它提供的是对一个原始输入数据流的内容进行了特定处理的数据。过滤器数据流有缓冲区数据流和数据数据流两种。
>11. 请说明Java基本字符流中读者、写者出现的原因及作用。
有些程序设计语言使用ASCI字符集,而Java使用 Unicode字符集表示字符和字符串。ASCII字符集以一个字节表示一个字符,可以认为一个字符就是一个字节。Java使用两个字节表示一个字符,这时字节与字符就不再相同。Java为实现与其他程序语言及不同平台的交互,提供了一种新的数据流处理方案,称为读者和写者。读者和写者的作用是在字节流和字符流之间作中介,在构造方法中应指定一定的平台规范,以便把以字节方式表示的流转换为特定平台上的字符表示
>12. 请写出Graphics2D类中stroke、paint两种属性的作用。
stroke属性控制线条的宽度,笔形样式,线段连接方式或短划线图案。(2分)paint属性控制填充效果。(1分)
### 错题集
---
1. 在下列供选的字符串中,不能作为Java整型常量的是 Ox3BEH (错误的十六进制写法)
2. Java实行语言定义阶段、**字节码检查阶段**及程序执行阶段三级代码安全检查机制
3. Java程序分为Java应用程序和java 小程序
4. Java运行的是**与机器无关**的二进制格式的类文件
5. 面向对象的方法学,包括三个方面:**面向对象的分析、面向对象的设计与面向对象的程序设计**
6. OOP是指**面向对象的程序设计**
7. 编写Java时加入适当的空白并使用缩进格式可以增加程序的**易读性**
8. 一个线程要从**运行状态自动进入就绪状态**,需要使用的方法是 yield
9. Java中通常用CLASSPATH指定搜寻包的路径
10. BufferedInputStream在数据流上增加了一个**缓冲区**,属于过滤器数据流
11. 写Java基本数据类型需要用 DataOutputStream,写引用类型数据 ObjectOutputStream
12. **JScrollPane**是带有滚动条的面板,它是_Container类的子类,只能添加一个组件
13. 当用户在JList上进行选择时,将引发**ListSelectionEvent**事件。
14. KeyListener接口的作用是**处理键盘事件**
15. 在Java中进行绘图操作时,当组件被显示出来时,需调用**paint( Graphics g)**方法
16. AWT的Font对象的作用是用类Font对象设置字型。
17. 组合框( JComboBox)是一个下拉式菜单。
18. 要显示标准确认对话框,可使用JOptionPane类中的**showConfirmDialog()**方法
19. Java中对线程的调度采用**优先级**策略。
20. Java中可以调用**interrupt()**方法中断线程的执行
21. 在Java中通过**对象互斥锁**来实现不同线程对共享数据操作的同步
22. _notify()或者_notifyAll()的作用是唤醒一个或所有正在**等待队列**中等待的线程,并将它们移入等待同一个“对象互斥锁”的队伍
23. 在解决线程同步问题时,_wait方法的作用是让当前线程释放其所持有的**对象互斥锁**