核心类库总结
常用的类
常用的包
- java.lang(不用导包)
- 是什么:该包是Java语言的核心包,该包中的内容由Java虚拟机自动导入
- 都有啥:String类、System类等
- 能干啥:为以后的学习的包做铺垫的
- Java.util
- 是什么:该包是Java语言的工具包,该包中提供大量工具类和集合类
- 都有啥:SCanner类、Random类
- 能干啥:里面有大量的集合类,学完集合类各种管理系统就可以写了
- java.io
- 是什么:该包是Java语言的输入输出包,该包中提供读取文件的类
- 都有啥:FileInputStream类、FileOutputStream类
- 能干啥:学完可以对硬盘上的文件进行读取
- java.net
- 是什么:该包是Java语言的网络包,该包中提供大量网络编程类
- 都有啥:ServerSocket类、Socket类等
- 能干啥:可以写个QQ
- java.sql
- 是什么:是操作数据库的所有类和接口
Object类(java.lang)
- 干啥的:是类层次结构的根类
- 都有啥:
- Object():无参构造
- boolean equals(Object obj):指示其他某个对象是否与此对象“相等”
- int hashCode():获取调用对象的哈希码值
- String toString():获取调用对象的字符串形式
包装类(java.lang)
- 干啥的:在某些特殊场合(集合)中要求所有的数据内容都必须是对象,而基本数据类型声明的变量并不满足该要求,此时就需要对变量进行对象化处理打包成对象,该机制需要使用包装类
- 分类:
- int => Integer
- char => Character
- 其它类型对应的包装类都是将首字母变大写
- Integer:
- 是什么:提供了一个int类型的成员变量用于包装int类型,该类由final关键字修饰表示不能被继承
- Integer(int value):根据参数指定的整数来构造对象
- Integer(String s):根据参数指定的字符串(必须是数字类型字符串)来构造对象
- int intValue():用于获取调用对象中的int数值并返回(拆箱)
- static Integer valueOf(int i):根据参数指定的整数值得到Integer类型的对象(装箱)
- static int parseInt(String s):将String类型转换为int类型并返回
BigDecimal类(java.math)
- 干啥的:由于float类型和double类型运算会有误差,若需要实现
精确运算
则借助java.math.BigDecimal加以描述 - 都有啥:
- BigDecimal(String val):根据参数指定的字符串来构造对象
- BigDecimal add(BigDecimal augend):加法
- BigDecimal subtract(BigDecimal subtrahend):减法
- BigDecimal multiply(BigDecimal multiplicand):乘法
- BigDecimal divide(BigDecimal divisor):除法
BigInteger类(java.math)
- 干啥的:若希望表示比long类型范围还大的整数数据,则需要借助java.math.BigInteger类型描述
- 都有啥:
- BigInteger(String val):根据参数指定的字符串来构造对象
- BigInteger add(BigInteger val):加法
- BigInteger subtract(BigInteger val):减法
- BigInteger multiply(BigInteger val):乘法
- BigInteger divide(BigInteger val):除法
- BigInteger remainder(BigInteger val):余数
- BigInteger[] divideAndRemainder(BigInteger val):商和余数
String类(java.lang)
- 干啥的:用于描述字符串内容,Java程序中所有的字符串字面值都可以作为此类的实例加以描述,如:”abc”等
- 都有啥:
- String():使用无参方式构造对象得到空字符序列
- String(byte[] bytes,int offset,int length):使用bytes数组中下标从offset位置开始的length个字节来构造对象
- String(byte[] bytes):使用bytes数组中的所有内容构造对象
- charAt(int i):获取下标为i的字符,返回char字符
- length():获取字符串的长度
- boolean contains(CharSequences):用于判断当前字符串是否包含参数指定的内容
- String toLowerCase():返回字符串的小写形式
- String toUpperCase():返回字符串的大写形式
- String trim():返回去掉前导和后继空白的字符串
- boolean startsWith(String prefix):判断字符串是否以参数字符串开头
- boolean endsWith(String suffix):判断字符串是否以参数字符串结尾
- str.indexOf():从指定字符串查找第一次遇到的字符串返回下标
- str.substring(5,10):表示从下标5(包括)取到10(不包括)并返回
StringBuilder类和StringBuffer类(java.lang)
- 干啥的:由于String类型描述的字符串内容是个常量不可更改,当程序中出现大量类似的字符串时都需要单独存储,从而造成内存空间的浪费。为了解决上述问题,可以使用StringBuilder类取代String类来描述字符串内容,该类型描述的字符串内容是可以改变的
- 区别:
- StringBuffer类是从jdk1.0开始存在,支持线程安全,因此访问效率比较低
- StringBuilder类是从jdk1.5开始存在,不支持线程安全,因此访问效率比较高(常用)
- 都有啥:
- public StringBuffer append(String s):将指定的字符串追加到此字符序列
- public StringBuffer reverse():将此字符序列用其反转形式取代
- public delete(int start, int end):移除此序列的子字符串中的字符
- public insert(int offset, int i):将 int 参数的字符串表示形式插入此序列中
- replace(int start, int end, String str):使用给定 String 中的字符替换此序列的子字符串中的字符
- 咋转换:
- StringBuilder类型向String类型的转换:
String str1 = sb1.toString();
- String类型向StringBuilder类型的转换:
StringBuilder sb2 = new StringBuilder(str1);
- StringBuilder类型向String类型的转换:
Date类(java.util包)
- 干啥的:描述特定的瞬间,可以精确到毫秒
- 都有啥:
- Date() - 根据当前系统时间来构造对象。
- Date(long date) - 根据参数指定的毫秒数构造对象,为距离标准时间的毫秒数。
- long getTime() - 获取调用对象表示的时间距离标准时间的毫秒数。
- void setTime(long time) - 用于设置调用对象表示的时间为距离标准时间,参数指定毫秒数的时间点
SimpleDateFormat类(java.text包)
- 干啥的:实现日期和文本之间的转换
- 都有啥:
- SimpleDateFormat(String pattern) - 根据参数指定的字符串模式构造对象。
- String format(Date date) - 用于实现日期类型向文本类型的转换。
- Date parse(String source) - 用于实现文本到日期的转换。
Calendar类(java.util包)
- 干啥的:取代Date类描述特定的瞬间
- 都有啥:
- 调用静态方法得到Calendar类型的引用:Calendar c1 = Calendar.getInstance();
- 调用set方法设置年月日时分秒:c1.set(2008,8-1,8,20,8,8);
- 调用getTime方法将Calendar类型转换为Date类型:Date d2 = c1.getTime();
- 调整格式并打印format(d2)
集合(java.util包)
为什么
- 单个数据内容:变量
- 多个类型相同的数据内容:一维数组
- 多个类型不同的数据内容:对象
- 多个类型相同的对象:对象数组
- 多个类型不同的对象:集合
Collection接口
- 干啥的:存取元素的基本单位是单个元素,很少直接使用,更多地使用Collection集合的子集合:List集合、Queue集合以及Set集合
- 都有啥:
- boolean add(E e):向集合里添加对象
- bollean contains(Object obj):查找集合中有没有参数传入的对象
- bollean remove(Object obj):删除成功返回true,失败返回false
- void clear():全删,清空
- int size():返回集合中元素的个数
List接口
- 干啥的:元素
有先后放入次序
并且可以重复
- 都有啥:
- void add(int index,E element):向集合中指定位置添加元素
- boolean addAll(int index,Collection<?extends E>c):向集合中添加所有元素
- E get(int index):从集合中获取指定位置元素
- E set(int index,E element):修改指定位置的元素,返回被修改的元素
- E remove(int index):删除指定位置的元素,返回被删除的元素
- subList(1,list):获取List子集合,子集和原List共用一个地址
Queue接口
- 干啥的:描述具有
先进先出
特征的数据结构,叫做队列 - 都有啥:
- boolean offer(E e):将一个对象添加至队尾
- E poll():从队首删除并返回一个元素
- E peek():返回队首的元素(但并不删除)
Set接口
- 干啥的:该集合与List集合相比元素没有先后放入次序,并且不允许有重复的元素
- 都有啥:
- Iterator
iterator() - 用于获取当前集合中的迭代器对象,可以取出每个元素 - 参考Collection集合中的方法即可
- Iterator
Map接口
- 干啥的:存取元素的基本单位是:单对元素
- 都有啥:
- V put(K key,V value);将key-value对存入Map,若集合中已经包含该key,则替换该Key所对应的Value,返回值为该Key原来所对应的Value,若没有则返回null(增加和修改)
- V get(Object key);返回与参数Key所对应的Value对象,如果不存在则返回null(修改)
- boolean containsKey(K Key);查找键是否存在,存在即返回true,不存在即返回false
- boolean containsValue(V Value);查找数据是否存在,存在即返回true,不存在即返回false
- V remove(K Key);删除元素,不存在该元素则返回null,存在该元素则返回该元素本身
异常
Exception类(java.lang包)
Throwable类(java.lang包)
文件操作(java.io包)
File类
- 干啥的:描述硬盘上文件和目录的路径信息,可以获取文件的大小等特征信息
- 都有啥:
- File(String Pathname):根据参数指定的路径来构造对象
- boolean exists():测试此抽象路径名表示的文件或目录是否存在
- String getName():返回由此抽象路径名表示的文件或目录的名称
- long length():返回由此抽象路径名表示的文件的长度
- long lastModified():返回此抽象路径名表示文件最后一次修改时间
- String getAbsolutePath():返回此抽象路径名表示文件的绝对路径信息
- boolean delete():用于删除文件,当删除目录时要求是空目录
- boolean createNewFile():用于创建新的空文件
- boolean mkdir():用于创建目录
- boolean mkdirs():用于创建多级目录
- boolean isFile():用于判断该对象是否为标准文件
- boolean isDirectory():用于判断该对象是否为目录文件
- File[] listFiles():用于获取一个目录中的所有内容
字节读写(重中之重)
-
FileInputStream
-
FileOutputStream
字符读写
-
BufferedReader
-
BufferedWriter
字节替代BufferedWriter
- PrintStream
对象读写
-
ObjectInputStream
-
ObjectOutputStream
转换
-
InputStreamReader
-
OutputStreamWriter