曹阳的博客 仅用于学习和分享

Java核心类库总结

2019-11-12

核心类库总结

常用的类

常用的包

  1. java.lang(不用导包)
    • 是什么:该包是Java语言的核心包,该包中的内容由Java虚拟机自动导入
    • 都有啥:String类、System类等
    • 能干啥:为以后的学习的包做铺垫的
  2. Java.util
    • 是什么:该包是Java语言的工具包,该包中提供大量工具类和集合类
    • 都有啥:SCanner类、Random类
    • 能干啥:里面有大量的集合类,学完集合类各种管理系统就可以写了
  3. java.io
    • 是什么:该包是Java语言的输入输出包,该包中提供读取文件的类
    • 都有啥:FileInputStream类、FileOutputStream类
    • 能干啥:学完可以对硬盘上的文件进行读取
  4. java.net
    • 是什么:该包是Java语言的网络包,该包中提供大量网络编程类
    • 都有啥:ServerSocket类、Socket类等
    • 能干啥:可以写个QQ
  5. java.sql
    • 是什么:是操作数据库的所有类和接口

Object类(java.lang)

  1. 干啥的:是类层次结构的根类
  2. 都有啥:
    • Object():无参构造
    • boolean equals(Object obj):指示其他某个对象是否与此对象“相等”
    • int hashCode():获取调用对象的哈希码值
    • String toString():获取调用对象的字符串形式

包装类(java.lang)

  1. 干啥的:在某些特殊场合(集合)中要求所有的数据内容都必须是对象,而基本数据类型声明的变量并不满足该要求,此时就需要对变量进行对象化处理打包成对象,该机制需要使用包装类
  2. 分类:
    • int => Integer
    • char => Character
    • 其它类型对应的包装类都是将首字母变大写
  3. 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)

  1. 干啥的:由于float类型和double类型运算会有误差,若需要实现精确运算则借助java.math.BigDecimal加以描述
  2. 都有啥:
    • BigDecimal(String val):根据参数指定的字符串来构造对象
    • BigDecimal add(BigDecimal augend):加法
    • BigDecimal subtract(BigDecimal subtrahend):减法
    • BigDecimal multiply(BigDecimal multiplicand):乘法
    • BigDecimal divide(BigDecimal divisor):除法

BigInteger类(java.math)

  1. 干啥的:若希望表示比long类型范围还大的整数数据,则需要借助java.math.BigInteger类型描述
  2. 都有啥:
    • 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)

  1. 干啥的:用于描述字符串内容,Java程序中所有的字符串字面值都可以作为此类的实例加以描述,如:”abc”等
  2. 都有啥:
    • 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)

  1. 干啥的:由于String类型描述的字符串内容是个常量不可更改,当程序中出现大量类似的字符串时都需要单独存储,从而造成内存空间的浪费。为了解决上述问题,可以使用StringBuilder类取代String类来描述字符串内容,该类型描述的字符串内容是可以改变的
  2. 区别:
    • StringBuffer类是从jdk1.0开始存在,支持线程安全,因此访问效率比较低
    • StringBuilder类是从jdk1.5开始存在,不支持线程安全,因此访问效率比较高(常用)
  3. 都有啥:
    • 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 中的字符替换此序列的子字符串中的字符
  4. 咋转换:
    • StringBuilder类型向String类型的转换:String str1 = sb1.toString();
    • String类型向StringBuilder类型的转换:StringBuilder sb2 = new StringBuilder(str1);

Date类(java.util包)

  1. 干啥的:描述特定的瞬间,可以精确到毫秒
  2. 都有啥:
    • Date() - 根据当前系统时间来构造对象。
    • Date(long date) - 根据参数指定的毫秒数构造对象,为距离标准时间的毫秒数。
    • long getTime() - 获取调用对象表示的时间距离标准时间的毫秒数。
    • void setTime(long time) - 用于设置调用对象表示的时间为距离标准时间,参数指定毫秒数的时间点

SimpleDateFormat类(java.text包)

  1. 干啥的:实现日期和文本之间的转换
  2. 都有啥:
    • SimpleDateFormat(String pattern) - 根据参数指定的字符串模式构造对象。
    • String format(Date date) - 用于实现日期类型向文本类型的转换。
    • Date parse(String source) - 用于实现文本到日期的转换。

Calendar类(java.util包)

  1. 干啥的:取代Date类描述特定的瞬间
  2. 都有啥:
    • 调用静态方法得到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包)

为什么

  1. 单个数据内容:变量
  2. 多个类型相同的数据内容:一维数组
  3. 多个类型不同的数据内容:对象
  4. 多个类型相同的对象:对象数组
  5. 多个类型不同的对象:集合

Collection.png

Collection接口

  1. 干啥的:存取元素的基本单位是单个元素,很少直接使用,更多地使用Collection集合的子集合:List集合、Queue集合以及Set集合
  2. 都有啥:
    • boolean add(E e):向集合里添加对象
    • bollean contains(Object obj):查找集合中有没有参数传入的对象
    • bollean remove(Object obj):删除成功返回true,失败返回false
    • void clear():全删,清空
    • int size():返回集合中元素的个数

List接口

  1. 干啥的:元素有先后放入次序并且可以重复
  2. 都有啥:
    • 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接口

  1. 干啥的:描述具有先进先出特征的数据结构,叫做队列
  2. 都有啥:
    • boolean offer(E e):将一个对象添加至队尾
    • E poll():从队首删除并返回一个元素
    • E peek():返回队首的元素(但并不删除)

Set接口

  1. 干啥的:该集合与List集合相比元素没有先后放入次序,并且不允许有重复的元素
  2. 都有啥:
    • Iterator iterator() - 用于获取当前集合中的迭代器对象,可以取出每个元素
    • 参考Collection集合中的方法即可

Map接口

  1. 干啥的:存取元素的基本单位是:单对元素
  2. 都有啥:
    • 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,存在该元素则返回该元素本身

异常

异常机制的总结.png

Exception类(java.lang包)

Throwable类(java.lang包)

文件操作(java.io包)

File类

  1. 干啥的:描述硬盘上文件和目录的路径信息,可以获取文件的大小等特征信息
  2. 都有啥:
    • 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():用于获取一个目录中的所有内容

IO流结构.png

字节读写(重中之重)

  1. FileInputStream

  2. FileOutputStream

字符读写

  1. BufferedReader

  2. BufferedWriter

字节替代BufferedWriter

  1. PrintStream

对象读写

  1. ObjectInputStream

  2. ObjectOutputStream

转换

  1. InputStreamReader

  2. OutputStreamWriter

线程(java.lang包)

Thread类

tcp协议(java.net类)

ServerSocket类

Socket类


下一篇 Scrapy入门

Content