标题:Java基础知识复习第三天
学习内容:
1、 java数组
2、 java方法
3、 java Stream、File、IO
4、异常处理
具体内容:
**一、java数组
声明数组
dataType[] arrayRefVar; // 一般的方式
dataType arrayRefVar[]; // 可以,但不建议这样声明
创建数组
dataType[] arrayRefVar = new dataType[arraySize];//可以分为两步,先声明,再创建。
dataType[] arrayRefVar = {value0, value1, …, valuek};
二维数组
type[][] typeName = new type[typeLength1][typeLength2];
此外java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
二、 java方法
方法:
1.方法是解决一类问题的步骤的有序组合
2.方法包含于类或对象中
3.方法在程序中被创建,在其他地方被引用
作用:
- 使程序变得更简短而清晰。
- 有利于程序维护。
- 可以提高程序开发的效率。
- 提高了代码的重用性。
定义
修饰符 返回值类型 方法名(参数类型 参数名){
…
方法体
…
return 返回值;
}
至于重载,重写其它的细节后面都会提到。
三、 java Stream、File、IO
定义
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。它的特性是进行数据传输
分类
流按照流向数据流向可以分为输入流和输出流。
流按照处理数据类型的单位不同可以分为字节流和字符流。
这里主要描述一下字节流,InputStream输入流,OutputSream输出流
package ThirdDay;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class InputStream {
public static void main(String args[]) {
try {
byte bWrite[] = { 11, 21, 3, 40, 5 };
// FileOutputStream os = new FileOutputStream("C:/data/test.txt");
File f = new File("C:/data/test.txt");
FileOutputStream fop = new FileOutputStream(f);
// 构建FileOutputStream对象,文件不存在会自动新建
OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
// 构建OutputStreamWriter对象,参数可以指定编码,默认为操作系统默认编码,windows上是gbk
for (int x = 0; x < bWrite.length; x++) {
fop.write(bWrite[x]); // writes the bytes
}
fop.close();
writer.close();
// FileInputStream is = new FileInputStream("C:/data/test.txt");
FileInputStream fip = new FileInputStream(f);
// 构建FileInputStream对象
InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
// 构建InputStreamReader对象,编码与写入相同
int size = fip.available();
for (int i = 0; i < size; i++) {
System.out.print((char) fip.read() + " ");
}
fip.close();
reader.close();
} catch (IOException e) {
System.out.print("Exception");
}
}
}
四、异常处理**
三种异常类型
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
在 Java 中你可以自定义异常。
所有异常都必须是 Throwable 的子类。
如果希望写一个检查性异常类,则需要继承 Exception 类。
如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
捕获异常:
try{
// 程序代码
}catch(异常类型1 异常的变量名1){
// 程序代码
}catch(异常类型2 异常的变量名2){
// 程序代码
}finally{
// 程序代码
}无论是否发生异常,finally 代码块中的代码总会被执行。finally可有可无
public void withdraw(double amount) throws RemoteException,
InsufficientFundsException
多个异常声明用逗号隔开
通用异常
在Java中定义了两种类型的异常和错误。
JVM(Java虚拟机) 异常:由 JVM 抛出的异常或错误。例如:NullPointerException 类,ArrayIndexOutOfBoundsException 类,ClassCastException 类。
程序级异常:由程序或者API程序抛出的异常。例如 IllegalArgumentException 类,IllegalStateException 类。