zoukankan      html  css  js  c++  java
  • 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    
    
  • 相关阅读:
    P2774 方格取数问题 题解
    golang文档(目录)
    下载安装
    微信小程序canvas画布新接口type为2D时wx.canvasToTempFilePath的参数差异
    【工具】让Mac能读取NTFS格式的移动硬盘
    codeforces 1562 E. Rescue Niwen! (dp)
    UVa1342 That Nice Euler Circuit (计算几何)
    ccpc2021 网络选拔赛 H. GCD on Sequence (线段树)
    codeforces 1558 D. Top-Notch Insertions (线段树+组合)
    codeforces 1561 E. Bottom-Tier Reversals (构造)
  • 原文地址:https://www.cnblogs.com/jiaozhang/p/15597199.html
Copyright © 2011-2022 走看看