Java语言程序设计 备考整理 因教材过于陈旧建议仅作复习使用
Java语言程序设计
考试用书: 《Java语言程序设计》(第三版)
出版社:清华大学出版社
作者:邵丽萍、绍光亚、张后扬
出版时间:2008
第7章 常用系统类
Applet类
Applet的特点
- Applet只能在Web浏览器上运行。
- 对Applet的限制。
(1) 不能加载函数或定义的本地方法。
(2) 不能读写本地计算机上的文件系统。
(3) 除了下载它的服务器外不能和其他主机建立网络通信。
(4) 不能运行本机计算机上的任何程序。
(5) 不能读取某些系统特性。
(6) Applet打开的窗口和Application打开的窗口外观上有所不同。
3.Applet的特殊功能
(1) 可以和它所在的Web服务器建立网络连接。
(2) 能使浏览器方便的显示HTML内容。
(3) 离开网页后Applet程序可以继续运行也可以停止运行。
(4) 可以在状态栏显示短消息。
(5) 可以调用同一个网页上其他Applet中的公共方法。
(6) 可以播放声音文件。
(7) 可以从HTML的< Applet >标签中获取参数。
Java和HTML的关系
HTML可以没有Applet,但很多重要的功能将无法实现,而Applet有赖于HTML才能运行,二者的结合成为Internet这个虚拟世界的重要组成部分。
Applet的声明周期与6种基本方法
- 初始化init。
- 开始运行start。
- 停止运行stop。
- 清除destroy。
- 画出(显示)paint。
- 刷新 repaint。
HTML和Applet的参数传递
//网页中的定义
<html>
<Applet
codebase=e:/java/程序
code=Axs.class
width=300
height=120>
<parm name=message value="参数传递示例">
<parm name=xPos value=30>
<parm name=yPos value=30>
</Applet>
</html>
//Java代码中获取参数
getParameter("message");
getParameter("xPos");
getParameter("yPos");
Applet标签属性
<Applet code=字节码文件名 width=宽度 height=高度
[codebase=字节码文件路径]
[alt=可替换的文本内容]
[name=对象名]
[align=对齐方式]
[vspace=垂直间隔]
[hspace=水平间隔]
[<param name=参数名 value=参数值>]
...
[alternateHTML]
</Applet>
字符串类
重点:在java.lang包中。两个类一个是String一个是StringBuffer。String用来处理字符串常量,StringBuffer用来处理字符串变量。
字符串类的构造方法
//StringBuffer
b1 = new StringBuffer(); //默认无参构造方法,构造一个空的StringBuffer对象。
b2 = new StringBuffer(10); //数字参数,构造一个指定参数长度的StringBuffer对象。
b3 = new StringBuffer("字符串参数"); //字符串参数,构造一个值为字符串参数的StringBuffer对象。
byte b[] = {'A',' ','b'};
char c[] = {'A',' ','b'};
//String
s1 = new String();
s1 = new String("字符串参数");
s1 = new String(b3);
s1 = new String(b);
s1 = new String(b,2,4); //从第2位开始取4个元素
s1 = new String(b,2,10,"GBK");//从第2位开始取10个元素
s1 = new String(b,"GBK");
s1 = new String(c);
s1 = new String(c,2,4);//从第2位开始取4个元素
String类的应用
- 求字符串长度:
s.length()
- 字符串连接:
s1 + s2
- 字符串截取:
s.substring(start);s.substring(start,end)
- 字符串比较:
equals、equalsIgnoreCase 不区分大小写、compareTo、compareToIgnoreCase 不区分大小写
equals 和 equalsIgnoreCase 会返回 boolean 值。
compareTo 和 compareToIgnoreCase 会返回字符串中第一个差异字符的差值。 - 复制到字符串:
s1.copyValueOf(s2)、s1.copyValueOf(s2,start,end)
- 字符串大小写转换:
s1.toUpperCase()、s1.toLowerCase()
- 字符串检索:
s1.indexOf(int ch)、s1.indexOf(String str)、s1.lastIndexOf(int ch)、s1.lastIndexOf(String str)
返回字符首次出现的位置,未检索到字符时返回-1。 - 字符串转换为数组:
s1.getBytes()、s1.getBytes(String enc) // enc 字符编码、s1.toCharArray()
- 转化为字符串:
String.valueOf(数据类型) //会返回一个转化有的字符串 、参数可支持除byte外的任意类型
StringBuffer类的应用
- append方法:
buffer.append(数据类型) //参数数据类型可支持除byte外的任意类型
- insert方法:
buffer.insert(位置,数据类型) //参数位置必须为大于等于0的整数,参数数据类型可支持除byte外的任意类型
- 其他方法:
buffer.delete(开始位置,结束位置) //删除指定起止位置的子串
buffer.deleteCharAt(位置) //删除指定位置的字符
buffer.replace(开始位置,结束位置,新字符串) //替换指定起止位置的子串为新字符串
buffer.reverse() //翻转字符串
输入输出(I/O)流类
流概念
-
流(Stream)与数据:流是传递信息数据的载体,是程序中的数据所经历的路径。数据是指一组有顺序的、有起点和终点的字节集合。数据的接收者和发送者可以是:文件、磁盘、内存、另一个程序或者是网络。数据可以是不同的格式:字符串、图像、声音或者对象等。
流的处理过程:打开流、读取或写入流、关闭流。
流的涉及:Java不直接操作I/O而是在程序与设备中间加入了一个中间介质“流”。 -
输入流与输出流:建立流实际上就是建立了一个数据传输通道,将数据的起点和终点连接起来。流分为输入流和输出流,输入流能读不能写,输出流能写不能读(针对程序来说)。
java.io 包中声明了用于读写的输入流与输出流类。所有的输入流都是InputStream(抽象类)的子类,所有的输出流都是OutputStream(抽象类)的子类。 -
缓冲流:对流的每次操作都是以字节为单位进行,即可以向输入流或输出流中读取或写入一个字节。为了提高传输效率,通常使用缓冲流。一个缓冲区就是专门用于存储数据的一块内存。
系统 → 缓冲区,缓冲区充满后 → 目标设备 → 下一次发送。
Java的标准输入输出
- System.in:
System.in.read() ,.read(byte[] b) ,.read(byte[] b,int off ,int len)
- System.out:
System.out.print(字符串) ,.println(字符串) ,.write(byte[],int off,int len)
java.io 包中的流类及文件类
其他常用类
数学函数Math
Math是一个最终类,含有基本的数学运算函数,如指数运算、对数运算、求平凡根和三角函数等,可以直接在程序中加Math前缀调用。Math.sin(Math.toRadians(30.0));
日期类
Date、Calendar和DateFormat 是Java中的三个日期类。
Date:主要用于创建日期对象并获取日期。
Calendar:可以获取和设置日期。
DateFormat :主要用来创建日期格式化器,由格式化器将日期转换为各种日期格式输出。
随机数类Random
Random 有两个构造方法Random() 和 Random(long seed) 前者使用系统时钟作为种子数,后者可以自定义种子。
Random可以生成其它类型的随机数如:long和float等。Random包含在java.util包中。
向量类Vector
大多数编程语言中的数组是固定长度的。解决数组不定长的问题,Java引入了Vector。
Vector vector = new Vector(2,1);
// Vector 的大小为2,增量为1 。即在向量空间用尽的时候自动增加1的空间。
// 向量中可以保存任意类型。
Class类和Runtime类
通过Class类与Runtime类的方法可以获得运行时信息,如当前类名、父类名、包名及内存空间、操作系统名称等。此外Java还提供了大量的类。