JavaSE08——常用类

本文章是本人根据视频和网上资料整理所写笔记,可能有不通顺或遗漏的地方,请尽量参考学习来源处的链接去进行学习。

学习来源

【狂神说Java】Java零基础学习视频通俗易懂:https://www.bilibili.com/video/BV12J41137hu

菜鸟教程: https://www.runoob.com/

Java常用类(一)之Object类详解 https://www.cnblogs.com/zhangyinhua/p/7715486.html#_lab2_0_3

Random类的使用 https://www.cnblogs.com/libinhong/p/10988902.html

Object类

  • hashcode()

    该方法用于哈希查找,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。
    
    一般必须满足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就满足equals。不过为了提高效率,应该尽量使上面两个条件接近等价。
    
    如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加入进去。
    
  • toString()

    Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。
    该方法用得比较多,一般子类都有覆盖。
    
  • clone()

    Clone()方法的使用比较简单,注意如下几点即可:
             什么时候使用shallow Clone,什么时候使用deep Clone,这个主要看具体对象的域是什么性质的,基本型别还是reference variable
            调用Clone()方法的对象所属的类(Class)必须implements Clonable接口,否则在调用Clone方法的时候会抛出CloneNotSupportedException
    
  • getClass()

    返回次Object的运行时类类型。
    不可重写,要调用的话,一般和getName()联合使用,如getClass().getName();
    
  • notify()

    该方法唤醒在该对象上等待的所有线程。
    
  • wait()

    wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,
    
    如果在规定时间内没有获得锁就返回。
    
  • equals()

    Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,
    所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的hi同一块内存对象,则返回true,如果this和obj指向的不是同一块内存,则返回false。
    注意:即便是内容完全相等的两块不同的内存对象,也返回false。
              如果是同一块内存,则object中的equals方法返回true,如果是不同的内存,则返回false
              如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equal方法
              String类已经重写了object中的equals方法(这样就是比较内容是否相等了)
    

Random类

  • 生成随机数

    • Random类的nextDouble()方法返回的是0.0至1.0之间的double类型值,nextFloat()方法返回的是0.0至1.0之间的float类型值,nextInt(int n)返回的是0(包括)至n(不包括)之间的int值

示例

import java.util.Random;
public class Main{
	public static void main(String[] args)throws Exception{
        Random r=new Random(); 
        System.out.println("产生Float类型随机数:"+r.nextFloat());
        System.out.println("产生1~100之间int类型随机数:"+r.nextInt(100));
        System.out.println("产生double类型随机数:"+r.nextDouble());
	}
}

File类

  • 创建文件

    File parentFile= new File(path);
    
  • 查看文件

  • 查找文件

  • 修改文件

  • 删除文件

包装类

  • 自动装箱和拆箱

Date类

  • Date
  • SimpleDateFormat
    • yyyy-MM-dd HH:mm:ss
  • Calendar(推荐使用)

Math

  • 常见的数学运算

String类

  • 非线程安全
  • final
  • 操作量少用String

StringBuffer

  • 可变长
    • append()
  • 多线程、大数据
  • 效率低,线程安全:StringBuffer中很多方法带有synchronize关键词

StringBuilder

  • 可变长
  • 单线程、大数据
  • 效率高,不安全

String值计算

String str = "a" + 1 + 2; => a12
String str = 'a' + 1 + 2; => a被认为是char字符转为了数字后进行了运算
String str = 1 + 2 + "a"; => 3a    
posted @ 2021-11-24 11:06  教长  阅读(73)  评论(0编辑  收藏  举报