JAVA_DAY07知识重点整理(JAVA基础类库)

1.System类代表当前java程序的运行平台,它不能被创建实例,但是它提供了一些类变量以及类方法常用的有:
    getenv()获取环境变量,以map形式保存,也可以传入参数,参数是环境变
量的名称
    currentTimeMillis()返回一个相对于1970.1.1.0.00的以毫秒作为单位
的相对时间
    in(),out(),err():分别代表输入,输出,错误输出流
    identityHashCode(object x):用于获取对象的精确哈希值,是根据对象
地址计算得到哈希值,即使重写了HashCode方法,调用这个方法获得的依然是地
址计算出的哈希值
    gc(),runFinalization():通知系统进行垃圾回收,清理系统资源
2.Runtime类是java程序的运行时环境,每个java程序都有一个对应的Runtime,这个类不能实例,但是可以通过getRuntime来获取实例
3.Object类是顶层类,它提供了以下方法
    equals(Object obj):比较两个是否是同一个对象,多用于重写
    finalize():用于系统调用此方法,来明确该对象是否需要被回收
    getClass():返回对象运行时的类
    hashCode():返回该对象的哈希值,默认情况下返回对象地址计算出的hash
code,多用于重写
    toString():返回对象内存地址(对象类名@16位哈希值),多用于重写
    clone():用于自我克隆,这个方法只能被子类调用或者重写,重写clone方
法需要实现Cloneable接口(接口里没有任何方法,只是被当作一个标识,系
统也只会创建一个简单副本,复制他的实例变量,对于应用变量,也只是复
制他的引用地址,也就是说,被克隆的对象和原对象的引用变量指向内存中
同一个对象,这也被称为浅克隆
    wait(),notify(),notifyAll():线程相关
4.java7新增的一个Objects工具类(java语言一般会在工具类后加一个s,例如Ar
rays),这个类是安全的,当你不确定一个引用变量的值是不是位null时,贸然
调用toString()会引发空指针异常,但调用Objects.toString(Object obj)
则会返回一个null
5.String类型的字符串被创建之后是不可变的,直至被销毁
6.StringBuffer,StringBuilder是可变的字符串,StringBuffer是线程安全的,运行效率比StringBuilder要低,但是StringBuilder是线程不安全的
7.String中的构造器:
    String():返回一个空字符串,但不是null
    String(byte[] bytes,Charset charset):将使用指定的字符集把byte数组解码
    String(byte[] bytes,int offset,int length):从offset开始解码length个byte[]数组
    String(byte[] bytes,int offset,int length,String charsetName):使用指定的字符集从offset开始解码length个byte[]数组
    String(byte[] bytes,String charsetName):将使用指定的字符集把byte数组解码
    String(char[] values,int offset,int count):从offset开始解码count个char[]数组
    String(String original):返回一个字符串副本
    String(StringBuffer buffer):使用StringBUffer创建字符串
    String(StringBuilder builder):使用StringBuilder创建字符串
8.String中的常用方法:
    char charAt(int index):返回索引位置的字符
    int compateTo(String anotherString):比较两个字符串大小,相等返回0,不等从第0个字符开始比较返回第一个不相等的字符差,
    如果长的字符串前面刚好等于短的字符串,则返回长度差
    boolean contentEquale(StringBuffer sb):用String与StringBuffer作比较
    boolean endsWith(String suffix):判断是否以suffix作为结尾
    boolean startWith(String prefix):。。。。。。。。。。。。作为起始
    boolean startWith(String prefix,int toffset):判断是否从toffset作为起始
    boilean equakeIgnoreCase(String str):忽略大小写比较
    byte[] getBytes():返回该对象的byte[]数组
    void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):将字符串从srcBegin开始到srcEnd的元素复制到dst中,从dstBegin开始
    int indexOf(String str):返回str在字符串中第一次出现的索引
    int indexOf(String str,int fromIndex):从fromIndex开始,返回str第一次出现的索引
    int indexOf(Char ch):与上面的相似
    int indexOf(Char ch,int fromIndex):与上面的相似
    int lastIndexOf(参数与上面四个相同):返回最后一次出现的索引
    String replace(char oldchar,char newchar):把第一个oldchar替换成newchar
    String substring(int beginIndex):从beginIndex开始到结尾截取字符串
    String substring(int beginIndex,int endIndex):从beginIndex开始到endIndex截取字符串
    char[] toCharArray():将字符串返回char数组
    String toLowerCase():变为小写
    String toUpperCase():变为大写
9.StringBuffer与StringBuilder的常用方法
    append(String str):在末尾追加str
    insert(int index,String str):在index位置插入
    replace(int begin,int end,String str):把begin到end之间的元素用str替换
    delete(int begin,int end):把begin到end之间的元素删除
    reverse():反转
10.Random中提供了两个构造器,一个是空参的(使用当前时间作为种子),另一个可以传入一个种子(相同的种子返回的数据结果是一样的,所以说这都是伪随机数)
11.java7之后提供了ThreadLocalRandom,他与Random使用方法相似,但是它在并发中提供更好的支持,减少线程间的资源竞争,保证线程安全
12.BigDecimal类能保证精度,调用构造器时优先使用String参数的构造器,可以保证精度(因为double本身是不能保证精度的),当必须使用double来创建对象时,要用
ValueOf(double d)方法,尽量别用构造器
13.如果要经常使用double数据计算,建议利用BigDecimal类写一个工具类
14.java8增建了java.time包,如果条件允许,尽量调用这里的类处理时间
 

猜你喜欢

转载自blog.csdn.net/weixin_42668719/article/details/82227509