Java语言程序设计教程 书本知识点汇总.doc_第1页
Java语言程序设计教程 书本知识点汇总.doc_第2页
Java语言程序设计教程 书本知识点汇总.doc_第3页
Java语言程序设计教程 书本知识点汇总.doc_第4页
Java语言程序设计教程 书本知识点汇总.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计教程 书本知识点汇总参考第一章 Java语言概述1. 面向对象的基本概念1.1 对象、类、消息、封装、继承、多态2. Java语言发展历史和现状及前景3. Java语言的特点简单、面向对象、分布式、健壮性、结构中立、安全性、可移植、解释的、高性能、多线程、多态性4. Java虚拟机概念,Java程序的执行过程5. Java应用程序分类:Application和Applet6. Java程序的开发环境:JDK,IDE课后习题:2. 解释几个概念:对象、实例、类、消息、封装、继承、多态。4. 简述Java语言的主要特点。5. 简述Java语言与C/C+语言的主要差异。7. 简述Java程序的运行过程。第二章 Java语言基础1. 标识符与保留字1.2 标识符命名语法规则与Java推荐的标识符命名规则1.3 Java中的关键字2. 数据类型byte, short, int long, char, float, double, boolean注意点:Java中所有数据类型是确定的,与平台无关,没有sizeof操作,其中特别注意char类型是2字节Unicode编码,与C+不同;知道基本类型都有对应的默认值。整型数的十进制、八进制、十六进制值的表示。实型数的十进制、十六进制与科学计数法表示,注意实型常量默认类型为double型。3. 运算符与表达式算术运算符: + - * / % + - 关系运算符: = & | 要认识异或()与按位取反()运算符赋值运算符: += -= *= /= %= &= |= = = = 要注意赋值运算符中包含了强制转换: 若: int k = 1; k += 44.232D; 则相当于: k = (int) ( k + 44.232D); 条件运算符:exp ? stat1 :stat2 要注意stat1与stat2要求类型相兼容且不能为void类型。 运算符的优先级: 算术运算 关系运算 逻辑运算 数值型之间可以相互强制转换,但不能在数值型与复合型类型(数组、对象等)间强制转换。4. 常用的输入输出System类管理的标准输入输出流:System.in System.out System.err常用的方法:System.out.println()与System.out.print()的区别;System.in.read()方法。javax.swing.JOptionPane类提供的对话框界面:String showInputDialog(String toShowInfo)void showMessageDialog(Component parent, String toShowInfo)5. Java流程控制if-else与if-else-if格式switch分支结构for、while、do-while循环break、continue与return语句,注意带标号的break与continue用法6. 数组的创建和使用要区分数组的引用声明与数组的创建两个概念声明仅仅给出了一个引用,但没有可用的数组对象。如:int a; 此时a是引用,还不可以使用,如果此时就访问a.length是错误的要使用数组必须进行创建,使用new关键字。如:int b = new int8; 注意创建时必须指定数组的大小,且在程序运行期间是不可以改动大小的。数组的初始化:声明时就给数组一个初始值,如:int c = 3, 4, 5 ; 或 int d = new int 3, 4, 5;注意复合类型的数组中仅仅存放了符合类型的引用,没有具体的对象,如:Person x = new Person3;则数组中仅仅存放三个Person对象的引用,而不是创建了3个Person对象。访问的数组长度:数组名.length,在循环中尤为重要。二维及多维数组的创建与使用二维及多维数组可以创建锯齿形数组。课后习题:2. Java有哪些基本数据类型?与C/C+相比有何特点?复合数据类型是哪几种?3. Java的字符类型采用何种编码方案?有何特点?第三章 字符串1. String类与字符串常量创建字符串的方法,构造函数:String(String original)String(char value)String(char value, int offset, int count)常用的方法:int length()int indexOf(int toFindChar)int compareTo(String anotherString)boolean equals(Object stringObject)boolean equalsIgnoreCase(String anotherString)static String valueOf(double d)2. StringBuffer与字符串变量理解StringBuffer与String的差异课后习题:1. Java中字符串常量用什么类表示?字符串变量用什么类表示?主要区别在哪?2. 说明程序String s1 = “I like ”; s1 += “Java!”;与StringBuffer s1 = new StringBuffer(“I like ”); s1.append(“Java!”);的区别。根据结论,指出程序处理大量字符串连接时的操作策略。第四章 面向对象编程基础1. 类和对象 对象就是对现实世界的存在的实体的一个模拟,每一个对象都有自己的状态和行为。对象的状态描绘对象的静态属性特征,对象行为说明对象会发生变化的动态行为,对象的行为一般通过方法的调用来实现。 类是对一组具有相同属性、行为、关系及语义的对象的描述,是具有相同类型对象的抽象。类中使用变量来表示对象的抽象状态,用方法抽象出对象的行为特征。在Java编程时,可以将类理解为数据类型,将对象理解为数据类型中的变量实例。2. 类的声明与使用修饰符 class 类名 extends 父类 implements 接口, . 类的成员 其中修饰符可以有:public final abstract,理解各修饰符的意义,理解类的访问控制,当使用其他包中的公共类时需要使用import导入。对于内部类可以使用的修饰符有:public, protected, private, final, static, abstract。3. 类的成员 属性与方法的定义与使用 方法的声明public | protected | privatestaticfinal | abstract native synchronized 返回值类型 方法名称( 参数列表 ) throws 异常名表 方法体知道成员访问控制的差别。4. 类的静态成员静态方法与静态属性5. 类的创建理解声明、实例化、初始化的过程。6. 包的概念包的创建与命名,如何组织类导入7. 构造方法构造方法:用于对象初始化的特殊的方法,必须与类名相同,没有返回值。特点:构造方法的命名不符合方法的命名规则,它和类名相同,没有返回值。 成员方法的非访问控制符如final, static, abstract, native, synchronized等关键字不能修饰构造方法。 构造方法一般由用户定义,如果用户没有定义构造方法,则系统会自动提供一个默认的无参构造方法,来初始化对象。 用户可以定义多个带有不同参数的构造方法,称为重载构造方法。【P60.例4.9】 构造方法通过new操作符来实现方法的调用,不像一般方法那样显式的调用。8. this关键字用于访问对象的成员或实现在构造方法内调用其他的构造方法。【P62.例4.11】9. 嵌套类(内部类)分为静态内部类和非静态内部类。另外比较重要的是匿名类。【P69.例4.15】10. final修饰的意义final修饰变量: 变量为基本类型表示为常量,修饰引用表示引用不允许指向其他对象。final修饰方法:表示该方法不能被重写。final修饰类:表示类不能被继承。课后习题:3. 写出构造方法的定义和用途?4. 关键字static在修饰类、类的成员数据和成员方法中的作用各是什么?6. this关键字的含义是什么?主要用途有哪些?8. 编程队列9. 编程栈10. 编程复数运算第五章 继承和多态1. 继承继承是一个新的类继承原有的类的基本特性,并增加新的特性,体现类的层次关系,新的类与原有类之间体现一种IS-A的关系。继承通过extends关键字来实现,任何类都有父类,除了Object类外。class 子类名称 extends 父类名称 类的描述如果没有写extends标明父类,则表示该类的父类为Object。需要掌握子类在继承父类时,哪些被继承,哪些没有被继承。2. 抽象类 用abstract修饰的类抽象类是对一组固定实现的抽象描述,并不对应具体的概念,只作为一个抽象概念存在,是不能被修改的,通常只用来派生子类。abstract class 抽象类名称 类体3. 抽象方法 用abstract修饰的方法抽象方法只有方法的签名没有方法体,只提供方法的规格说明,没有具体的实现。final关键字不能修饰抽象方法。static也不能修饰抽象方法。注意:抽象类中不一定包含抽象方法;但是只要类中包含抽象方法则类一定是抽象类。抽象类必须在派生的子类中重写抽象方法,没有重写抽象方法的子类还是抽象类。非抽象类的子类可以重新声明为抽象类。4. 多态Java中不支持用户定义符号重载,支持用户定义方法的重载。方法的重载就是在一个类内(或父子类间)用一个标识符定义不同的方法或符号运算的方法名或符号名。注意重载要求方法名称相同,但参数不同,返回值不作为方法重载判断的依据。方法的覆盖和隐藏:方法覆盖是子类具有重新定义父类成员方法的能力,要求方法具有和父类方法相同的名称、参数、返回值,访问限制不能被父类的方法小,抛出的异常不能比父类方法多。需要注意的是:静态方法和属性的访问看引用类型;而实例方法的调用代码根据引用指向的具体的对象来决定。5. super关键字引用父类的构造函数;引用父类中被子类覆盖的成员方法和隐藏的数据成员。6. 接口接口实质上为外界提供运算,但不揭示这些运算的结构或具体的实现。编程角度看,接口实际上是一组抽象方法和常量的集合,为其他使用者提供外部的说明。 public interface 接口名称 extends 父接口, . 接口体接口中定义的方法隐含为公共public和抽象的abstract;定义的常量默认为public static final型。接口的实现: 通过implements来实现接口,class 类名称 implements 接口名, . 实现接口中定义的方法接口的定义类似于抽象类,但其实现依赖于类,而不是通过继承来实现的。理解下面程序出现的问题:class Point int x, y;private Point() reset(); Point(int x, int y) this.x = x; this.y = y; private void reset() this.x = 0; this.y = 0; class ColoredPoint extends Point int color;void clear() reset(); class Test public static void main(String args) ColoredPoint c = new ColoredPoint(0, 0);c.reset();知道下面的类构造过程中的执行顺序:class Bird System.out.println(“b1 “); public Bird() System.out.println(“b2 “); class Raptor extends Bird / Raptor rpt(r) n. 猛禽,肉食鸟 static System.out.println(“r1 “); public Raptor() System.out.println(“r2 “); System.out.println(“r3 “); static System.out.println(“r4 “); class Hawk extends Raptor public static void main(String . args) System.out.println(“pre ”); new Hawk(); System.out.println(“hawk “); / 结果是: r1 r4 pre b1 b2 r3 b2 hawk推广到更一般的情况:class Bird System.out.println(b1 ); public Bird() System.out.println(b2 ); static System.out.println(b3 ); class Raptor extends Bird static System.out.println(r1 ); public Raptor() System.out.println(r2 ); System.out.println(r3 ); static System.out.println(r4 ); class Hawk extends Raptor public static void main(String . args) System.out.println(pre ); new Hawk(); System.out.println(end ); System.out.println(h1 ); static System.out.println(h2 ); /b3 r1 r4 h2 pre b1 b2 r3 r2 h1 end 课后习题:2. 方法的覆盖和方法的重载有什么不同?4. 编程计算式子的值。6. 利用接口编写计算三角形、梯形面积和周长的程序。第六章 常用工具类和Applet小程序1. Collection接口及其子接口List、Set理解集合框架中存放的都是对象,基本类型不能直接放到集合框架中保存,必须进行包装成对象才可以放入集合中。Collection接口中的常用方法:2. List接口和ArrayList类与LinkedList类用数组和链表实现了抽象的列表结构,掌握其基本的操作方法add、remove、size等。List中可以包含相同的元素。3. Set接口和HashSet类与TreeSet类Set中不可以包含相同的元素,与数学中集合的定义相同。注意HashSet中元素是无序的,而TreeSet中元素是经过排序的。理解下面程序的问题:import java.util.*;public class SetDemo6 public static void main(String args) Set s = new TreeSet(); s.add(37); s.add(new Integer(37); Iterator i = s.iterator(); while (i.hasNext() System.out.println(i.next(); 4. Map接口和HashMap类Map不是集合,是映射,掌握Map的工作方式,通过键值对来保存和访问数据。5. Applet小程序Applet小程序课通过因特网下载并在接收计算机上运行,通常在支持Java的浏览器中运行。常见的方法:init(): 首次加载Applet,准备运行时调用。start(): init方法后,Applet开始执行时或Applet停止后重新启动也会调用。paint(): 每次必须重绘窗口时调用。stop(): 离开Applet页面将调用stop方法。destroy(): Applet生命周期结束、Applet结束之前调用。6. Applet标记在HTML中嵌入Applet标记,指示浏览器的执行,可提供的信息有:Applet的URL路径、Applet的类名、Applet的高度和宽度、名称、对齐方式、无法显示时显示的文字、传入的参数。课后习题:1. 如何创建一个List或Set对象?使用它们存放数据时哪种对象不能存放重复数据?3. 如何向HashMap对象中添加元素?4. 使用本章介绍的一种集合类编写程序,实现从控制台任意输入若干名字,如:Mike、Jone、Benny.,将它们以字典序按升序方式输出。第七章 Java图形处理和Java2D1. Java图形坐标系统和图形上下文Java中坐标原点在屏幕左上角,坐标度量以像素为单位,水平向右为x轴正向,竖直向下为y轴正向。屏幕绘图通过图形上下文环境进行,可通过Component类getGraphics方法返回获得。2. 常用的类 Color Font3. 常见的绘图方法直线,矩形,椭圆,弧形等。4. Java2D第八章 GUI编程初步1. AWT与Swing的关系AWT是抽象窗口工具集,大部分使用重量级组件,Swing是纯Java实现,属于轻量级组件。2. Swing常见组件 JFrame、JLabel、JTextField、JTextArea、JButton、JPanel的创建和使用3. 布局管理器Flowlayout、BorderLayout、GridLayout的使用及窗口调整时其布局的策略。知道JPanel的默认布局管理器是FlowLayout,JFrame中内容窗格的默认布局管理是BorderLayout,理解其布局行为。课后习题:3. 什么是MVC模式?第九章 Java事件处理1. 委托事件处理模式(基于代理的事件处理模型)2. 事件源、事件对象、事件监听器3. 事件处理的步骤1) 导入java.awt.event包或javax.swing.event包2) 创建事件源,即初始化GUI组件对象3) 给事件源注册事件监听器,形如: source.addXxxListener(XxxListener x)4) 根据监听到的事件类型,实现事件监听器接口的对应方法。4. 组织事件处理代码和处理方式利用独立的监听器类实现事件处理利用实例内部类实现事件处理利用匿名内部类实现事件处理5. 常见的事件处理接口ActionListener与事件类ActionEvent6. 事件适配器实现事件处理时,只关心事件处理的部分方法,考虑使用事件适配器。常见的事件适配器:MouseAdapter、WindowAdapter、KeyAdapter、FocusAdapter。课后习题:2. 常见的事件处理方式有哪几种?比较各种方式的特点。第十章 Java异常处理1. 编译错误与运行错误编译错误是由于程序中存在语法问题,未能通过源代码的编译过程,由编译系统负责检测和报告。运行错误是程序运行过程中产生的错误,可以是系统运行错误或逻辑运行错误。2. 异常与异常类程序中的错误分为两类:Exception和Error。3. 运行时异常与非运行时异常凡是RuntimeException的子类都是运行时异常,不需要对其进行捕获;但非运行时异常必须进行捕获并处理。4. 异常的抛出和捕获系统抛出异常与语句throw抛出异常。使用try-catch-finally语句块来捕获异常。注意执行的流程。理解例子中异常的使用方法:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DivideByZeroTest extends JFrame implements ActionListener private JTextField inputField1, inputField2, outputField;private int number1, number2, result;/ set up GUIpublic DivideByZeroTest() super(Demonstrating Exceptions);/ get content pane and set its layoutContainer container = getContentPane();container.setLayout(new GridLayout(3, 2);/ set up label and inputField1container.add(new JLabel(Enter numerator , SwingConstants.RIGHT);inputField1 = new JTextField();container.add(inputField1);/ set up label and inputField2; register listenercontainer.add(new JLabel(Enter denominator and press Enter ,SwingConstants.RIGHT);inputField2 = new JTextField();container.add(inputField2);inputField2.addActionListener(this);/ set up label and outputFieldcontainer.add(new JLabel(RESULT , SwingConstants.RIGHT);outputField = new JTextField();container.add(outputField);setSize(425, 100);setVisible(true); / end DivideByZeroTest constructor/ process GUI eventspublic void actionPerformed(ActionEvent event) outputField.setText(); / clear outputField/ read two numbers and calculate quotienttry number1 = Integer.parseInt(inputField1.getText();number2 = Integer.parseInt(inputField2.getText();result = quotient(number1, number2);outputField.setText(String.valueOf(result);/ process improperly formatted inputcatch (NumberFormatException numberFormatException) JOptionPane.showMessageDialog(this, You must enter two integers,Invalid Number Format, JOptionPane.ERROR_MESSAGE);/ process attempts to divide by zerocatch (ArithmeticException arithmeticException) JOptionPane.showMessageDialog(this, arithmeticException.toString(),Arithmetic Exception, JOptionPane.ERROR_MESSAGE); / end method actionPerformed/ demonstrates throwing an exception when a divide-by-zero occurspublic int quotient(int numerator, int denominator)throws ArithmeticException return numerator / denominator;public static void main(String args) DivideByZeroTest application = new DivideByZeroTest();application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / end class DivideByZeroTest看懂下面的例子:class Plane static String s = “-”; public static void main(String args) new Plane().s1();System.out.println(s); void s1() try s2(); catch(Exception e) s += “c”; void s2() throws Exception s3(); s += “2”; s3(); s += “2b”; void s3()throws Exception throw new Exception(); What is the result ? : -c课后习题:8. 比较throw与throws关键字之间的功能差异第十一章 Java多线程程序1. 线程的概念: 线程是比进程更小的执行单位,一个进程在执行过程中,可以产生多个线程,形成多条执行线索。线程间可以共享相同的内存单元(包括代码和数据)。2. 线程的状态和生命周期线程的5个状态: 新建、就绪、运行、阻塞、死亡。3. 线程的调度和优先级处于就绪状态的线程首先进入就绪队列等候处理器调度,同一时刻在就绪队列中的线程可能有几个,优先级高的线程排在前面,优先级低的线程只能等到高优先级的线程执行完毕后才能得到处理器。对于同优先级的线程,则遵循队列“先进先出”的原则。3个优先级常量:Thread.MAX_PRIORITYThread.MIN_PRIORITYThread.NORM_PRIORITY4. 线程的两种创建方法继承Thread类并重写run方法;在自己的类中实现Runnable方法。两者都必须实现的方法是public void run() . 5. 线程的方法start()方法:调用完start()方法仅仅将线程放入调度队列,具体什么时候执行是未知的。不能保证调用完start()后线程就立即执行。sleep()方法:sleep()使得线程放弃处理器资源,进入睡眠,但不释放拥有的锁。yield()方法:使得正在执行的线程放弃处理器进入调度队列,重新参与调度竞争,使得其他线程有机会执行,即将处理器交给其他线程。6. 线程的同步synchronized 加锁synchronized可以修饰方法或定义同步代码块。结合使用wait()、notify()、notifyAll()方法。7. 死锁两个或多个线程无休止的相互等待的对象释放所占据的资源的过程。错误的同步容易引发死锁。防止死锁的方法:课后习题:2. 线程的状态有哪些? 描述相互转换的过程。4. 创建线程的方式有哪几种?12. 什么是死锁?多线程设计中如何防止死锁?第十二章 文件和流1. 流的概念Java中的所有IO都是基于流的,分为字节流和字符流,从方向上看有输出流和输入流。对应四个抽象类: InputStream、OutputStream、Reader、Writer。2. 常见的字节流及操作方法FileInputStream, FileOutputStream,ObjectOutputStream, ObjectInputStream,BufferedInputStream, BufferedOutputStream,DataInputStream, DataOutputStreamInputStream的方法: long skip(long n) 跳过几个字节 int available() 可用字节数read()方法:int read(); int read(byte b); int read(byte b, int off, int len)OutputStream方法: void flush()write()方法:void write(int x)void write(byte b)void write(byte b, int off, int len)3. 常见的字符流及操作方法InputStreamReader, OutputStreamWriterBufferedReader, BufferedWriter掌握字节流与字符流的连接操作,如使用System.in,接收用户输入: BufferedReader br = new BufferedReader(new InputStreamReader(System.in); String whatGet = br.readLine();4. 文件流使用FileOutputStream和DataOutputStream进行二进制文件的写操作【P230.例12.4, P231.例12.5】5. 对象流和序列化流序列化接口 java.io.Serializable。如何进行对象的序列化。课后习题:2. Java的基本输入输出流有哪些? 主要的功能如何?3#. 利用基本输入输出流编写程序:从键盘输入一串字符,然后显示到屏幕上。第十四章 Java网络编程1. 套接字概念2. TCP方式传接数据3. UDP方式传接数据看懂下面的程序:import .*;import java.util.Date;import java.io.*;public class TestSocket public static void main(String args) throws Exception new Server().start(); Thread.sleep(2000); new Client().start(); Thread.sleep(2000); Server.stopMe = true; class Server extends Thread public static final int PORT = 44442; public static boo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论