河北工业大学Java各章知识点总结考试用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络编程技术课程内容
第一章Java语言概述
1、Java语言特点:简单、完全面向对象、平台无关、多线程、可靠、安全、自动垃圾回收机制;
2、Java程序开发流程:安装JDK、编写源代码、javac编译生成字节码文件、运行字节码文件;
3、Java两种程序:
application:应用程序,编译:javac 源文件名;运行:java 字节码文件(含主函数)
Applet:嵌入网页中运行的小应用程序,需有相应的html文件;
4、一个完整的Java源程序结构:
package语句:该部分至多只有一句,必须放在源程序的第一句;
import:该部分可以有若干import语句或者没有,必须放在所有的类定义之前;
public classDefinition公共类定义部分,至多只有一个公共类的定义,Java
语言规定该Java源程序的文件名必须与该公共类名完全一致;
classDefinition类定义部分,可以有0个或者多个类定义;
interfaceDefinition接口定义部分,可以有0个或者多个接口定义。
第二章Java语言基础
1、Java的关键字,常量、变量,简单数据类型,运算符、表达式
常量:final
基本数据类型:8中基本数据类型:boolean、char、byte、int、short、long、float、double
带小数点数如3.13默认为double类型,整数默认int型
class、interface、数组都算引用/参考数据类型
运算符:判等(= =)只能对基本数据类型,equals方法;
短路运算符:&&、||
表达式:强制类型转换、自动类型转换
2、主要的Java语句结构:分支、循环、转移
1)分支:if else、及if else嵌套实现多分支
switch语句:多分支
switch(表达式)
{
case 常量1:语句1;[break;]
case 常量2:语句2;[break;]
……
case 常量n:语句n;[break;]
[default:缺省处理语句;break;]
}
case与break联用,保证多路分支的正确实现。
case子句只起标号作用,用来查找匹配的入口并从此处开始执行,对后面的case不再匹配,直接执行,直到遇到break跳出。
2)循环语句:
while (布尔表达式)
{ 语句;}
for(表达式1;表达式2;表达式3)
{
语句;
}
do
{
语句;
} while(布尔表达式A)
3)跳转语句
break:对于无标号的,跳出当前整个语句块;有标号的,跳出标号指的语句块。
可用于循环结构也用于分支结构。
continue:无标号:结束本轮循环;有标号的:结束标号代表的这一轮循序,进入下一轮。
习题:
1)相应作业、实验
第三章面向对象程序设计
1、类的定义:class 类名,构造函数,成员变量、成员函数、this;
2、继承:子类名extends 父类名;Java只能单继承;函数覆盖、域的隐藏、super、this;有继承关系,构造函数的执行顺序:先执行父类的再执行子类的;
3、接口:关键词:interface,interface 接口名;接口中只有函数说明没有定义;以后用类来实现接口:class 类名implements 接口名,类要实现接口中所有的函数,不然类是抽象类,抽象类不能直接生成对象。
4、static:静态成员,整个类对象所共有,而不是像普通成员变量那样,被对象所特有。
5、Object:所有类的父类。
6、习题
1)定义类、继承、实现接口
第四章数组、字符串和实用类
数组都带有长度属性:length,例如,int a[]=new int[10], a.length
Java中二维数组,每一行上的元素个数可以不相等
字符串类:String
知道Java中有哪些包
第五章异常
1、什么是异常:程序执行过程中出现的非正常事件,例如:用户输入错、所需文件找不到、数组下标越界等。
而不是编译的语法错。
2、异常类:Exception
3、两种异常处理机制
1)抛出异常:如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛出(throws)异常。
2)捕获异常:当Java运行时系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。
4、捕获异常处理过程
try{
可能产生异常的代码
}
catch(异常类型1 变量)
{ 调用者对异常的处理}
catch(异常类型2 变量)
{ 调用者对异常的处理}
……
[ finally{ } ]
说明:try块中的语句没有产生异常。
在这种情况下,Java首先执行try块中的所有的语句,然后执行finally子句中的代码,最后执行try…catc h..finally块后面的语句;
try块中的语句产生了异常,而且此异常在方法内被捕获。
在这种情况下,Java首先执行try块中的语句,直到产生异常处,然后跳过此try块中剩下的语句,执行捕获此异常的catch子句的处理代码;然后执行finally子句中的代码;
try块中产生了异常,而此异常在方法内没有被捕获。
在这种情况下,Java 将执行try块中的代码直到产生异常,然后跳过try块中的代码而转去执行finally 子句中的代码,最后将异常抛出给方法的调用者。
5、用户自定义的异常
1)定义Exception子类,代表异常类型;
2)在适当的时候创建并抛出异常对象;
3)调用者处理异常
习题:
1)设计一个Java程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入ABC,则没有抛出异常。
(只有XYZ和ABC两种输入)。
(实验中题目)
第六章多线程
1、多线程:程序并发执行,而不是执行完一个任务再执行另一个任务;
2、基于线程的多任务处理环境中,线程是可执行代码的最小单元;
3、Java语言中多线程的两种实现方法——将并发执行的代码写到run()
1)继承Thread类:继承Thread类,重写它的run(),创建线程对象,start()启动;sleep() 休眠,优先级低的线程也可以获得执行
2)实现Runnable接口:Runnable中只有一个run()函数,
自定义类实现Runnable接口;
使用Thread类的另一构造函数:Thread(Runnable)用实现了Runnable接口的类的对象中所定义的run()方法,来覆盖新创建的线程对象的run()方法;
使用start()启动线程。
创建Thread类的子类:在这个途径中,用户程序需要创建自己的Thread
类的子类,并在子类中重新定义自己的run()方法,这个run()方法中包含了用户
线程的操作。
这样在用户程序需要建立自己的线程时,他只需要创建一个一定已定义好的Thread子类的实例就可以了。
实现Runnable接口:在这个途径中,已经有了一个父类的用户类可以已通过实现Runable()接口的方法来定义用户线程的操作。
我们知道,Runable接口只有一个方法run(),实现这个接口,就必须要定义run()方法的具体内容。
用户新建现成的操作也有这个方法来决定。
定义好run()方法后,当用户程序需要建立新线程时,只要以这个实现了Runnable()方法的类为参数创建系统类Thread的对象,就可以把用户实现的run()方法继承过来。
4、线程的四种状态:创建、可运行、封锁、终止
5、线程的同步:用关键字synchronized对需要的方法或代码进行标记;
wait…nofify调度过程是几个线程对同一个对象进行操作,其中某些线程在一定条件下自动挂起(wait) ,等待其他线程在一定条件下通知其继续运行。
典型问题:生产者消费者问题
6、练习题:
1)编写一个应用程序,创建三个线程分别显示各自的时间。
(实验)
第七章图形界面
1、基本组件、容器
基本组件:不可再分的组件,例:Button、Checkbox、Menu、TextArea等容器组件:用来包含其他组件的,分两类:
1)窗口类Window:Frame、Dialog,
2)面板类Panel,不能独立存在,不能添加菜单栏
组件不能独立地显示,必须放到容器中才能显示出来。
2、布局管理
常用的布局管理器:流布局(FlowLayout)、边界布局(BorderLayout)、网格布局(GridLayout)、卡片布局(CardLayout)。
Frame默认为边距布局、panel和Applet默认流布局。
可以通过setLayout
方法设置容器的布局形式。
3、事件处理机制
每个事件发生后,都会创建一个Event对象,包括:事件类型、发生的时间、坐标、发生事件的对象等。
按产生事件的物理操作有:MouseEvent、WindowEvent、ActionEvent等;
每一类事件都有相应的事件监听器:*Listener,例如MouseEvent事件的监听器接口为MouseListener;
编程流程:1)编写一个实现了XXXListener接口的事件监听器类;
2)在XXXListener类中的用于处理该事件情况的方法中,编写处理代码;
3)调用组件的addXXXListener方法,将类XXXListener创建的实例对象注册到GUI组件上。
Adapter类:接口中要实现的方法可能很多,类实现接口的时候所有函数都必须实现,为了简化程序Java提供了一些适配器类:XXXAdapter。
4、习题:
1)编写满足要求的图像界面处理,有相应的事件处理。
例:三位数拆分或简单的计算器。
第八章输入输出流
1、File类:代表磁盘文件本身信息的类,而不是文件中的内容;可以访问指定文件的所有属性:文件名、文件长度、修改日期等。
同时可以利用File类提供的方法来创建文件、删除文件、重命名文件等。
2、文件随机读写:RandomAccessFile类,一般的流中,文件指针只能顺序移动,RandomAccessFile可以任意移动文件指针,seek(long pos)。
3、流:
1)分类:输入流和输出流、字节流和字符流
字节流:InputStream、outputStream
字符流:Reader,Writer
2)流的使用过程:
3)FileInputStream/FileOutputStream
4)FileReader、FileWriter
5)InputStreamReader
6)BufferedReader
4、习题:
1)从键盘输入内容,写入到文件中,直到输入“bye”结束。
(实验题目)2)读入一个文件的内容拷贝到另一个文件中。
第九章网络程序设计
1、Java网络通信的三层次:
1)最高级:网络上下载Applet—由浏览器提供;
2)Applet声音播放和图像显示——由Java开发环境提供;
3)最低层:利用包中提供的类直接在程序中实现网络通信。
2、通信基础:
TCP/UDP协议,IP地址、端口号
3、Java提供的网络功能类
1)应用层:URL、URLConnection
2)网络层:InetAddress
3)传输层:
TCP:Socket、ServerSocket;
UDP:DatagramPacket、DatagramSocket、MulticastSocket
4、TCP Socket通信
1)服务器端:ServerSocket类,Socket类
2)客户端:Socket类
3)通信流程:
(a)在服务器端创建一个ServerSocket对象,指定端口号,ServerSocket 类的accept()方法使服务器处于阻塞状态,等待用户请求;
(b)在客户端创建一个socket对象,指定主机地址和端口号,连到服务器上;
(c)服务器端接收到客户端的连接请求,建立一条TCP连接,再创建一个Socket对象与客户端的Socekt对象进行通信;
(d)服务器端和客户端分别创建字节输入流和字节输出流,通过字节输入流获得对方发来的数据,通过字节输出流向对方发送数据;
(e)当一方决定结束通信时,向对方发送结束信息;另一方收到结束信息后,双方分别关闭各自的TCP连接;
(f)ServerSocket对象停止等待客户端的连接请求。
简化过程:
(a)建立Socket连接;
(b)获得输入/输出流;
(c)读/写数据;
(d)关闭输入/输出流;
(e)关闭Socket。
5、习题
1)实验:简单的客户端/服务器端通信,一问一答;
2)例子:简单的时钟服务器。