1、二级 java 复习资料Applet 与 GUI1. BorderLayout 是 Window、Frame 、Japplet 和 Dialog 的默认布局管理器;FlowLayout 是 Applet 和 panel 的默认布局管理器。Japplet 是 applet 的子类 。2. JTable(Object rowData, Object columnNames) :构造一个 JTable 来显示二维数组 rowData 中的值,其列名称为 columnNames。3. *Listener 为接口 *Adapter 为抽象适配器。4. URLgetDocumentBase()返回包含 A
2、pplet 的 HTML 文件的 URL。5. URLgetCodeBase()返回 Applet 主类的 URL。6. AbstractTableModel 用于生成表格。7. 视口 ViewPort 类的对象是一种特殊的对象,主要用于查看构件,滚动条就是跟踪移动视口,并同时在容器中显示其查看的内容的。JScrollPane 是从 JVeiwport 对象实现。8. AppletContext 类是一个接口类,Applet 通过 AppletContext 接口与环境进行通信。可以利用这个类从 Applet 环境获取信息,而这个环境一般是指浏览器。Applet 使用 AppletContex
3、t 类的showDocument()方法可以通知浏览器在指定窗口中显示另一个URL 的内容。9. 构件事件:1) MouseEvent 事件是鼠标事件:包括鼠标单击、移动。2) WindowEvent 事件是窗口事件:包括关闭窗口,窗口闭合,图标化。3) ActionEvent 事件是动作事件:包括按钮按下,TextField 按键。4) KeyEvent 事件是键盘事件,包括键按下、释放。10. 每个 Java 小应用程序都必须是 Applet 类或 JApplet 类的子类。11. Java 中的事件类是继承自 javautil Event 类,javaawtAWTEvent 是 java
4、util Event 的子类。12. 当一个 Applet 下载到本地系统时,将发生以下操作:1) 产生一个 Applet 主类的实例;2) 对 Applet 自身进行初始化;3) 启动 Applet 运行,将 Applet 完全显示出来。 13. 许多浏览器为了保护本地主机,对 Applet 作了如下安全限制:1) Applet 不能运行任何本地可运行程序;2) 禁止加载本地库或方法;3) 禁止读、写本地计算机的文件系统;4) 禁止向提供 Applet 之外的任何主机建立网络连接;5) 不能读取某些系统信息,除了 Java 版本号、操作系统名或版本号、文件分隔符、路径分隔符以及行分隔符之外,
5、Applet不能获得与本地计算机有关的任何信息,如:用户名、电子邮件地址等;6) 由一个 Applet 弹出的窗口外观上与一个 Application 弹出的窗口不同,Applet 弹出的窗口中将会有警告提示信息,以帮助用户区分 Applet 窗口与可信的 Application 窗口。14. Applet 可以与同一个页面中的 Applet 进行通信。15. WindowListener 是一个接口,WindowAdapter 是实现了这个接口的抽象类,可以对窗口事件进行监听。16. 事件监听器:1) FocusEvent 焦点事件焦点的获得和丢失,这类事件所对应的事件监听器是 FocusL
6、istener;2) ActionEvent 动作事件按钮按下、TextField 中按键,这类事件所对应的事件监听器是 ActionListener 接口;3) MouseEvent 鼠标事件鼠标单击、释放、拖动、移动,这类事件所对应的事件监听器是 MousetMotionListener。4) ActionListener 可以对 TextField 事件注行注册和监听。17. java.awt.event 包中定义的事件适配器包括以下几个: 1) ComponentAdapter:构件适配器 2) ContainerAdapter:容器适配器 3) FocusAdapter:焦点适配器
7、4) KeyAdapter:键盘适配器 5) MouseAdapter:鼠标适配器 6) MouseMotionAdapter:鼠标运动适配器 7) WindowAdapter:窗口适配器8) 注:以上适配器都为抽象类。MouseAdapter 类包含了MouseMotionAdapter 的方法,比 MouseMotionAdapter 功能更强大。18. 按钮是一个常用构件。1) Swing 的按钮(JButton)和标签可显示图标和文本2) AWT 的按钮(Button)和标签只能显示文本在构件方面,3) Swing 构件不能直接添加到顶层容器中,它必须添加到一个与Swing 顶层容器相
8、关联的内容面板上,然而 awt 构件能直接添加到顶层容器中。19. Applet 事件处理机制与 Java Application 相同,采用监听器方式,JApplet 也是采用相同的技术。20. start()方法使得程序从初始态进入运行态,当浏览器从图标状态恢复为窗口时,或者当用户离开包含 Applet 的主页后又再返回时,系统都会自动再执行一遍 start()方法。21. stop()方法是和 start()方法相对应的,当浏览器变成图标或者是用户离开 Applet 所在页面时,浏览器都会调用 stop()方法,该方法也是可以被多次调用的。22. Applet 是能够嵌入到 HTML 页
9、面中,并能够在浏览器中运行的Java 类,本身并不一定需要首先创建窗体,但可以使用 JApple 类来使用 Swing 构件。23. Swing 继续沿用 AWT 中的布局管理器,包括FlowLayout、BorderLayout、CardLayout、GridLayout、GridBagLayout,另外 Swing 新增加了一个 BoxLayout 布局管理器。24. Applet 显示相关的 3 个方法: 1) Applet 的 paint()方法具体执行 Applet 的绘制,该方法定义如下:public void paint(Graphics g)。 paint()方法有一个参数 g
10、是 Graphics 类的实例,该实例对象由浏览器生成,它包含了Applet 的图形上下文信息,通过它向 Applet 中显示信息,该对象相当于 Applet 的画笔。在调用 paint()方法时,由浏览器将该对象传递给 paint()方法。 2) update()方法: public void update(Graphics g) 用于更新 Applet 的显示。该方法将首先清除背景,再调用paint()方法完成 Applet 的具体绘制。 3) repaint()方法: public void repaint()repaint()方法主要用于 Applet 的重新显示,它调用 update
11、()方法实现对 Applet 的更新。25. 在 Applet 装载时,由浏览器或 appletviewer 调用 init()方法,通知该 Applet 已被加载到浏览器中,使 Applet 执行一些基本初始化。26. Swing 构件分类(从功能上): 1) 顶层容器,JFrame、JApplet、JDialog 和 JWindow 共 4 个。 2) 中间容器,JPanel、JScrollPane、JSplitPane 、JToolBar。 3) 特殊容器,在 GUI 上起特殊作用的中间层,如JInternalFrame、JLayeredPane、JRootPane。 4) 基本控件,实
12、现人机交互的构件,如Jbutton、JComboBox、JList、JMenu、JSlider、JtextField。 5) 不可编辑信息的显示,向用户显示不可编辑信息的构件,例如 JLabel、JProgressBar、ToolTip。 6) 可编辑信息的显示,向用户显示能被编辑的格式化信息的构件,如JColorChooser、JFileChooser、JFileChooser、JTable、JTextArea。27. java.awt.Color:基本颜色定义 28. java.awt.Font:基本字体定义 29. java.awt.Cursor:光标操作定义 30. Panel 组件是
13、容器,可以添加到 Frame 窗口31. CheckBox 组件是复选框组件,可以添加到 Frame 窗口32. Dialog 继承自 Window,Windows 类型(或子类)的对象不能包含在其他容器中33. Choice 组件是选择框组件,可以添加到 Frame 窗口。34. Swing 各个组件:1) 选项板(JTabbedPane)提供组可供用户选择的带有标签或图标的选项,每个选项下面 都可以显示一个构件。2) Swing 提供两种分层面板:JLayeredPane 和DesktopPane。JDesktopPane 是 JLayeredPane 的子类,专门为容纳内部框架(JInt
14、ernalFrame) 而设计;3) 滚动窗口(JScrollPane) 是带滚动条的面板,主要是通过移动JViewport(视口) 来实现的;4) 分隔板(JSplitPane)用于分隔两个构件,这两个构件可以按照水平方向分隔,也可以按照垂直方向分隔。JAVA1. Java 语言使用的是 Unicode 字符集。而 ASCIl 是国际上使用最广泛的字符编码;BCD 是一种数字压缩存储编码方法。2. 内部类与外部类的类名不能相同。3. 自定义异常都是 Throwable 及其之类。4. 一个 java application 运行后,在系统中是作为一个进程。5. 进程由代码、数据、内核状态和一
15、组寄存器组成。线程由程序计数器、栈指针以及堆栈组成。进程是一个内核级的实体,线程是一个用户级的实体。6. Java 中的线程模型由三部分组成,1、一个虚拟的 CPU 2、CPU执行的代码 1、代码操作的程序。7. Char c=str.charAt(i)-获取字符串 str 中的第 i 个字符。8. 在 Java 中,常量 null、false、true 都是小写的。9. 有抽象方法的类只能被定义为抽象类,抽象类里面可以不包含抽象方法,子类一定要覆写接口和父类的所有抽象方法。10. 字符型可以转为 int 型,但字符串不可以。11. Java、C是面向对象设计的语言,而 C 是面向过程设计的语
16、言。12. Math 函数:1) Math.sqrt 函数计算一个数的平方根。2) Math.radom()输出0,1) 之间的随机数。13. Java 本身的编译器用 Java 语言编写,运行系统的虚拟机用 C 语言实现。Java 语言的执行模式是半编译和半解释型,程序首先由编译器转换为标准字节代码,然后由 Java 虚拟机去解释执行,字节代码实际上可以看作是虚拟机的机器代码。14. 私有变量的作用域是建立它的模块及其下属的各层模块。15. Java 语言提供充分的安全保障,在运行程序时,有严格的访问权限检查。对字节代码执行前要检查,不允许使用指针,可防止对内存的非法入侵,它是目前安全性最佳
17、的语言。16. Java 并不是对程序执行前检查,而是对字节代码进行检查,Java编写好的程序首先由编译器转换为标准字节代码,然后由 Java虚拟机去解释执行。17. Java 2 平台包括:J2ME 平台、J2SE 平台和 J2EE 平台。其中:1) J2ME 是为嵌入式和移动设备提供的 Java 平台;2) J2SE 是面向企业级应用与服务的综合性标准开发平台;3) J2EE 是面向大型企业级用容器管理专用构件的应用平台。18. rmiregistry 命令是在当前主机的指定端口上启动远程对象注册服务程序;serialver 命令是返回 serialVersionUID 的值;rmic 命
18、令为远程对象生成 stub 和 skeleton;rmid 命令可以激活系统守候进程,以便能够在 Java 虚拟机上注册和激活对象。19. Java 对 I/O 访问所提供的同步处理机制是过滤流。20. throws 出现在方法函数头;而 throw 出现在函数体。21. throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出了异常,执行 throw 则一定抛出了某种异常。22. Java 虚拟机加载代码是在运行前的操作。运行代码时会校验、编译和执行代码。 23. Java 相比 C+优点:跨平台。24. 文件操作:1) seek(long pos)是随机文件记录
19、的查找。2) lengh()方法是求随机文件字节长度的方法。3) skipBytes(int n)方法是使随机文件访问跳过指定字节。25. Float 类的 valueOf( )函数的原型是:static Float valueOf(String s),它是种静态 方法,将字符串的内容提取出来转换为 Float 对象。而 floatValue( )函数的原型是:float floatValue( ) 。它返回 Float 对象的浮点值。26. Java 命名的基本原则包括如下几条:1) $不作为变量名、方法名的开头;2) 变量名、方法名首单词小写,其余单词只有首字母大写;3) 接口名、类名首单
20、词第一个字母大写;4) 常量完全大写。27. 线程的优先级在创建线程时可以设置,也可以通过getPriority( )方法来获得线程的优先级,通过 setPriority( )方法来设定线程的优先级。28. 守护线程是一类特殊的线程,它并不是应用程序的主要部分,当一个应用程序所有的非守护程序停止运行时,即使有守护线程在运行,应用程序也将终止,反之,只要有一个非守护程序在运行,应用程序就不会终止。29. ThreadGroup 是管理一组线程的类,不能创建线程。30. 线程生命周期中出现的状态包括:新建状态、可运行状态、运行状态、阻塞状态和终止状态。31. 进程同步是指进程之间的一种直接的协同工
21、作的关系,即共同完成一件任务。32. 共享数据的所有访问一定要作为临界区,用 synchronized 标识。33. 一个进程的执行过程会产生许多线程,即执行流。34. 假设地址总线是 n 根,则内存的寻址范围为 2 的 n 次方 210=1024B=1KB 1MB=1024KB 1MB=1024KB 1GB=1024MB 35. Thread 提供的方法:1) resume()是 Thread 类提供的用于线程控制的方法;2) start()是 Thread 类中的方法,新建的线程不会自动运行,必须调用线程的 start()方法才能运行该线程;3) run()是 Thread 类中的方法,在
22、该方法中定义了线程的具体行为,线程开始执行时,就是从它的 run()方法开始执行的,就像 Java 应用程序从 main()开始、Applet 从 ink()开始一样。36. File 类提供的方法:1) getAbsolutePath():得到一个文件的绝对路径名;2) getParentFile():得到文件对象父路径名;3) getAbsoluteFile():等价于 new File(this.getAbsolutePath();4) getName():得到一个不包含路径的文件名。37. File 类就是一个重要的非流类,它是以一种系统无关的方式表示一个文件对象的属性。38. Fil
23、eReader 与 BufferedReader 都是字符类输入流,但 FileReader的参数是读入的文件,而 BufferedReader 的参数 FileReader 流的一个对象。39. File 类关心的是文件在磁盘上的储存,而要对文件进行读写,就是流类所要关心的事了。File 类不对文件进行读写。40. zipInputStream 属于 java.util.zip 包。41. Java 中处理字节流的抽象类有 InputStream 和 OutputStream。其中字节输入流都是抽象类 InputStream 的子类。 (输入流:内存从外部读取数据,输出流:内存向外部写入数据
24、。 )1) FileOutputStream 用于对磁盘文件涉及的数据流进行输出处理,即向一个文件对象中写入数据。 2) FileInputStream 可对一个磁盘文件涉及的数据进行处理。 3) ByteArrayOutputStream 字节数组输出流。这个类将一个字节数组作为输出流,而任何内存块都可以以字节数组的形式使用,故利用该类可以对内存进行写入操作,能直接向内存写入数据。 4) ByteArrayInputStream 以字节数组为输入流,它只能用于从内存中读取字节流。5) PipedInputStream,实现线程之间通信的一个类;6) FilterInputStream,过滤器
25、输入流 ;7) SequenceInputStream,将多个输入流首尾相接;8) ZiplnputStream(压缩文件输入流)是 InflaterInputStream 的子类,而 InflaterInputStream 是 FilterInputStream 的子类42. J2SDK 的操作命令。1) Javah,生成 C 头文件和 Stub 文件;2) Javap,Java 类文件解析器,用于解析类文件;3) Jar,Java 类文件归档命令,可将多个文件合并为单个 JAR 归档文件; 4) Java,Java 语言的解释器,解释运行 Java 字节码。43. JDK 工具。 1) j
26、avac.exe:Java 编译器,能将源代码编译成字节码,以.class扩展名存入 java 工作目录中。 2) javadoc.exe:Java 文档生成器,对 Java 源文件和包以 MML 格式产生 API 文档。 3) javaprof.exe:Java 剖析工具,提供解释器剖析信息。 4) javap.exe:Java 反汇编器,对.class 文件提供字节代码反汇编,并打印。44. JDK 目录结构:1) bin 目录下有编译器、解释器和许多工具(如服务器工具、IDL、package 工具和 jdb 等) ; 2) demo 目录下有各种演示例子;include 目录下是 Win
27、32 子目录,都是本地方法文件; 3) lib 目录下都是库文件; 4) jre 目录是 Java 程序运行环境的根目录,它下面有 bin 子目录,包括平台所用工具和库的可执行文件和 DLL 文件。45. System 类是一个 final 类,它不能被继承,同时它又是一个抽象类,所以也是一个不能被实例化的类,它主要提供标准输入输出、错误输出流、对外部定义的属性及环境变量的访问、加载文件和库的方法、还有快速复制数组的一部分的实用方法。46. 在实现 Serializable 接口的类中,用 transient 关键字可使某些数据不被串行化。47. Thread 类提供的基本线程控制方法包括:1
28、) sleep( )使比其低的优先级线程运行,可以让一个线程暂停运行段固定的时间;2) yield( )使具有与当前线程相同优先级的线程有运行的机会,调用了 yield 函数的线程有可能被马上执行,也有可能不会马上执行;3) join( )使当前线程暂停执行,等待调用该方法的线程结束后,再恢复执行;4) interrupt( )中断线程的阻塞状态,并且线程接收到InterruptException 异常。48. Java 中提供了 interrupt 方法用来中断一个线程,当调用一个线程的 interrupt 方法时,即向该线程发送一个中断请求。在调用线程的 interrupt 方法时,如果该
29、线程由于调用了 sleep 方法或 wait方法而正在处于阻塞状态,那么线程会抛出一个InterruptException 异常。49. notify 函数从线程等待池中移走任意一个线程,并把它放到锁标志等待池中,其状态仍旧是等待。50. 虚拟机执行过程的特点有:多线程、动态连接、异常处理。51. 代码安全检查是 Java 语言的一个突出特点,但不属于虚拟机执行过程特点。52. 一个文件的 public 类最多可以有一个,但是可以包含多个import,包含的接口定义也可以有多个,包含的 class 类可以有多个,当该文件命名时,可以以 public 类名来命名,反之编译之后将有多个.class
30、 文件生成。53. Iavac.exe 各个命令格式含义:1) -g 输出文件中加行号以及局部变量信息,为调试程序时用。2) -o 对类文件进行优化编译。3) -nowarn 关闭警告信息,只显示错误信息。4) -verbose 显示源代码文件和字节码文件的相关信息。5) -d指定存放生成的类(.class) 文件的位置根据上述介绍可知,在编译 Java 程序时,可以通过选项-d 来指定生成的.class文件的位置。54. 在 Synchronized 块中等待共享数据的状态改变时调用 wait( )方法,这样该线程进入等待状态暂时释放共享数据对象的锁。55. 在主函数调用子函数时,主函数会保
31、持当前状态,然后转去执行子函数,把子函数的运行结果返回到主函数,主函数继续向下执行,这种过程符合栈的特点。所以般采用栈式存储方式。56. 若一个进程请求新资源之前首先释放已占有的资源,这破坏了部分分配条件。软件工程1. 物理设计阶段主要解决选择文件存储结构和确定文件存取的方法的问题,包括:选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。2. 设计软件结构是在软件概要设计进行的事,而概要设计属于软件开发期。 3. 软件的调试方法主要有:强行排错法、回溯法和原因排除法。1) 强行排错法:是传统的调试方法,其过程可概括为:设置断点、程序暂停、观察程序状态、继续运行程序。这是目前使用较多
32、、效率较低的调试方法。 2) 回溯法:该方法适合于小规模程序的排错。即一旦发现了错误,先分析错误征兆,确定最先发现“症状“的位置。然后,从发现“症状“的地方开始,沿程序的控制流程,逆向跟踪源程序代码,直到找到错误根源或确定错误产生的原因。 3) 原因排除法:是通过演绎和归纳,以及二分法来实现的。4. 软件测试有 3 个重要特征:测试的挑剔性、完全测试的不可能性及测试的经济性。5. 需求分析常用工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。6. 详细设计的常用工具有问题分析图(PAD)、程序流程图(PFD) 、金式图(N-S)。 7. 数据字典是各类数据描述的集合,它通常包括 5
33、个部分,即数据项、数据结构、数据流、数据储存和处理过程。8. 在软件开发中,需求分析阶段常使用的工具有数据流图(DFD)、数据字典(DD) 、判断树和判断表。9. 软件危机:对软件开发的进度和费用估计不准确;用户对已完成的软件系统不满意的现象时常发生;软件产品的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档;软件成本在计算机系统总成本中所占的比例逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。10. 对象有如下特征:标识唯一性,多态性,封装性,模块独立性,分类性。11. 面向对象设计方法:分类性、封装性、模块独立性、继承和多态性等。 数据库1. 将 E
34、R 图转换为关系模式时,实体和联系都可以表示为关系。数据结构1. 数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。2. 数据模型包括三部分:数据结构、数据操作、数据约束。3. 算法具有确定性、可行性、有限性和足够的情报四个特点。4. 。一个算法的优劣可以用空 间复杂度与时间复杂度来衡量,也就是算法分析。5. 栈可应用于表达式求值、二叉树对称周游算法的实现和快速排序算法的实现等。6. 分块查找是将表分成若干块,分块的原则是数据元素的关键字在块与块之间是有序的,而块内元素的关键字是无序的。分块法可以适应动态变化的要求。顺序法、二分法、散列法是在顺序存储的一组记录内进行查
35、找的。7. 树的层次次序周游算法的实现用到的是队列而不是栈。8. 算法的时间复杂度和空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系。9. 数据元素是数据的基本单位,即数据集合中的个体。有些情况下也把数据元素称为结点、记录、表目等。一个数据元素可由一个或多个数据项组成,数据项是有独立含义的数据最小单位,其值能唯一确定一个数据元素的数据项。10.数据结构:数据的逻辑结构。11.数据独立性包括数据的物理独立性和逻辑独立性。1) 物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。2) 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结
36、构改变时,用户程序也可以不变。12.队列个数=rear-front+ 容量。13.数据库设计包括逻辑设计和概念设计。程序设计语言1. 程序设计语言的基本成分有:1) 数据成分,用于描述程序所涉及的数据;2) 运算成分,用于描述程序中所包含的运算;3) 控制成分,用于描述程序中所包含的控制;4) 传输成分,用于表达程序中数据的传输。2. 在面向对象方法中,对象之间通过消息进行通信。3. 计算机常用的高级语言有:BASIC 语言、FORTRAN 语言、COBOL语言、PASCAL 语言、 C 语言、PROLOG 语言、而当前流行的,面向对象的程序设计语言有 C+和用于网络环境的程序设计语言Java 等。4. 结构化程序设计的核心和基础是结构化设计理论,其中包括:结构化分析方法、结构化设计方法和结构化编程方法。