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