2-2 数组、文件IO、泛型、多线程、异常处理

时间:2021-06-15 10:06:16

1. 数组

1.1 数组的作用

数组是由相同类型的若干项数据组成的一个数据集合。数组是用来集合相同类型的对象并通过一个名称来引用这个集合。

1.2 数组的定义

一维数组:原始类型或类类型   数组名[ ]=new 原始类型或类类型[数组大小];

1.3 数组的初始化

当创建一个数组时,每个元素都被自动使用默认值进行初始化。所有变量的初始化(包括数组元素)是保证系统安全的基础,变量绝不能在未初始化状态使用。

1.4 数组与集合的区别

  • 数组的大小是固定的,不能在不破坏原有数据的前提下伸缩空间,除非在原有数组上重新实例化;集合的大小是可以动态扩展的,是可变的。
  • 数组定义的时候必须指定数组元素的数据类型;而集合元素的数据类型默认是Object。
  • 访问数组元素的时候,使用的是数组的下标;而集合可以使用下标访问,也可以使用其它指定的名字来访问。
  • 数组的功能简单,但是存取速度快;集合功能较强,但存取速度稍慢。

1.5 数组与集合的联系

集合的内部实现就是依靠数组实现的,集合是特殊的数组。

1.6 Arrays类

用来操作数组(比如排序和搜索)的各种方法。

主要方法:

equals() 用于比较指定的两个数组是否相等;

sort() 用于对指定数组进行升序排序;

2. 文件IO

2.1 File类的使用

可以通过File(String pathname)构造方法创建一个File类对象,pathname为给定路径,例如:File file1 = new File ("D://test.txt");。

File类的常用方法如下:

createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

delete()  删除此抽象路径名表示的文件或目录。

exists()  测试此抽象路径名表示的文件或目录是否存在。

length()  返回由此抽象路径名表示的文件的长度。

2.2 FileFilter接口的使用

FileFilter接口用于抽象路径名的过滤器,此接口的实例可传递给 File 类的listFiles(FileFilter)方法。

使用时实现接口的accept()方法即可。

2.3 输入流与输出流

输入流:主要进行读操作。

输出流:主要进行写操作。

2.4 字节流与字符流

字节流:简单说就是处理的数据单元是字节,java.io.InputStream和java.io.OutputStream分别表示字节输入流字节输出流

字符流:处理的数据单元是字符,java.io.Reader和java.io.Writer分别表示字符输入流字符输出流

2.5 节点流与过滤流

节点流:从一个特定的地方读写,例如磁盘或者一块内存。

过滤流:使用一个已经存在的输入流或者输出流来创建的,使用节点流作为输入或输出的基础,例如DataInputStream 和DataOutputStream。

3. 泛型

3.1 泛型的定义

泛型是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。

3.2 泛型的作用

提高大型程序的类型安全和可维护性,消除强制类型转换。

3.3 ArrayList泛型实例

                List<String> list=new ArrayList<String>();
list.add("abc");
list.add("123");
list.add(new String("kkk"));
System.out.println(list.size());


4. 多线程

4.1 创建线程的两种方式

  • 创建线程类并实现Runnable 接口,实现run()方法
  • 创建线程类并继承Thread类,重写run()方法

4.2 线程同步

关键字synchronized 来与对象的互斥锁联系。当某个对象用synchronized 修饰时,表明该对象已启动“互斥”机制,在任一时刻只能由一个线程访问。即使该线程出现阻塞,该对象的被锁定状态也不会解除,其他线程仍不能访问该对象。

synchronized关键字的使用方式有两种:

  • 用在对象前面限制一段代码的执行;
  • 用在方法声明中,表示整个方法为同步方法。

5. 异常处理

5.1 try/catch/finally

Java语言中的异常处理块的模型:
try{
       //放置可能出现异常的代码
}catch(Exception1 el){
       //如果try块抛出异常对象的类型为Exceptionl,那么就在这里进行处理
}catch(Exception2 e2){
       //如果try块抛出异常对象的类型为Exception2,那么就在这里进行处理
}catch(ExceptionN eN){
       //如果try块抛出异常对象的类型为ExceptionN,那么就在这里进行处理
}finally{
       //不管是否有异常发生,始终执行这个代码块
}

5.2 常见异常类

  • IndexOutOfBoundsException 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。
  • NoSuchMethodException  无法找到某一特定方法时,抛出该异常。
  • NullPointerException  当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
  • NumberFormatException  当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
  • ArrayIndexOutOfBoundsException  用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
  • ClassCastException  当试图将对象强制转换为不是实例的子类时,抛出该异常。

交流探讨到我的新浪微博:http://weibo.com/tianrui1990

欢迎关注技术分享微信公众号:JavaQ

     2-2 数组、文件IO、泛型、多线程、异常处理