Java常用类

常用类

 

Object类

Java为每一个内置的数据类型提供了对应的包装类

Java可以自动装箱/拆箱:即自动实现基本数据类型和包装类的相互转换

 

 

 

Object类是所有类的父亲,所有类都可以使用Object的所有方法

  • hashCode( )

    作用:获取对象的hash值

    两个对象相等,哈希值也相等

 1  //object.hashCode()
 2  //Object、String、ArrayList 可以使用
 3  import java.util.ArrayList;
 4  public class MyClass {
 5      public static void main(String[] args) {
 6          Object obj1 = new Object();         
 7          System.out.println(obj1.hashCode());//输出2083562754
 8          String str = new String();          
 9          System.out.println(str.hashCode()); //输出0
10          ArrayList<Object> list = new ArrayList<>();
11          System.out.println(list.hashCode());//输出1
12      }
13  }

 

  • toString( )

    作用:返回对象的字符串表示形式

    通常可以通过重写输出我们希望输出的值

 1  //object.toString()
 2  //默认返回格式:对象的 class 名称 + @ + hashCode 的十六进制字符串
 3  //
 4  import java.util.ArrayList;
 5  public class MyClass {
 6      public static void main(String[] args) {
 7          Object obj1 = new Object();         
 8          System.out.println(obj1.toString());    //输出java.lang.Object@7c30a502
 9          ArrayList<Object> list = new ArrayList<>();
10          System.out.println(list.toString());    //输出[list中的所有元素,逗号分隔]
11          String str = "12345";
12          System.out.println(str.toString());     //输出12345
13      }
14  }

 

  • clone( )

    作用:创建并返回对象的副本

     

  • getClass( )

    作用:获取对象的类

 1  public class MyOtherClass extends MyClass{
 2  }
 3  public class MyClass {
 4      public static void main(String[] args) {
 5          Object obj1 = new Object();
 6          System.out.println(obj1.getClass());        
 7          //输出class java.lang.Object
 8          MyClass myOtherClass = new MyOtherClass();  //父类的引用指向子类
 9          System.out.println(myOtherClass.getClass());
10          //输出class com.myClass.demo01.MyOtherClass
11      }
12  }

 

 

  • notify( )

    作用:唤醒一个在此对象监视器上等待的线程

 

  • wait( )

    作用:让当前线程进入等待状态。直到其他线程调用此对象的notify() 方法或notifyAll() 方法

    wait(long timeout)

    wait(long timeout,int nanos)

 

  • equals( )

    作用:比较两个对象是否相等

    注意如果子类重写了equals方法,就需要重写hashCode方法

 
 1 public class MyClass {
 2      public static void main(String[] args) {
 3  4          Object obj1 = new Object();
 5          Object obj2 = new Object();
 6          // 不同对象,内存地址不同,不相等,返回 false
 7          System.out.println(obj1.equals(obj2)); // false
 8  9          // String 重写了 equals() 方法
10          // 对象引用,内存地址相同,相等,返回 true
11          Object obj3 = obj1;
12          System.out.println(obj1.equals(obj3)); // true
13 14          // String 类使用 equals() 方法
15          String obj4 = new String();
16          String obj5 = new String();
17          // 初始化的两个对象都为 null,所以是相等,返回 true
18          System.out.println(obj4.equals(obj5)); // true
19          obj4 = "Runoob";
20          obj5 = "Google";
21          // 两个值不同,内存地址也不同,所以不相等,返回 false
22          System.out.println(obj4.equals(obj5)); // false
23      }
24  }

 

 

Math类

常见的数学运算

 

Random类

生成随机数

 1  import java.util.Random;
 2  3  public class MyClass {
 4      public static void main(String[] args) {
 5          //Random rand = new Random();       //以默认的种子生成伪随机数
 6          Random rand = new Random(System.currentTimeMillis());       
 7          //以当前时间作种子生成(真)随机数
 8          System.out.println(rand.nextBoolean());    //true ~ false
 9          System.out.println(rand.nextDouble());     //0 ~ 1的double
10          System.out.println(rand.nextFloat());      //0 ~ 1的float
11          System.out.println(rand.nextInt());        //int
12          System.out.println(rand.nextInt(20));      //0 ~ 20     数字不能为负
13          System.out.println(rand.nextLong());       //long
14 15          //生成随机数组
16          int[] ints = new int[10];
17          for (int i = 0; i <10 ; i++) {
18              ints[i] = rand.nextInt(100);
19              System.out.println(ints[i]);
20          }
21      }
22  }
23  //引用数据类型+.MIN_VALUE =最小值
24  //引用数据类型+.MAX_VALUE =最大值

 

 

 

File类

File对象代表磁盘中实际存在的文件和目录

 

创建文件、查看文件、修改文件、删除文件

 

包装类

 

 

Date类

new Date();

 1  //创建日期对象并打印日期
 2  Date date = new Date();
 3  System.out.println(date);//格式:Wed Mar 03 21:49:33 CST 2021
 4  5  //getTime得到一个long型整数,表示从1970到现在的毫秒数
 6  System.out.println(date.getTime);//1614857518917
 7  System.out.println(System.currentTimeMillis());//结果同上
 8  9  //格式化日期并转成字符串
10  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
11  Date date1 = new Date();
12  String s = simpleDateFormat.format(date1);  //不转成字符串会按原本日期格式输出
13  System.out.println(s);
14 15  //字符串转日期
16  //日期模式必须和字符串一致,否则会抛出异常

 

 

String类

String 没有提供修改字符串的方法,字符串具有不可变性

String 不能被继承(修饰符为final),表现为一个常量

 1  //数字转字符串
 2  //方法一:valueOf
 3  int i = 5;
 4  String str = String.valueOf(i);
 5  //方法二:数字封箱为对象,再调用对象的toString
 6  Integer it = i;
 7  String str1 = it.toString();
 8  9  //字符串转数字:parseInt
10  String str = "99";
11  int i = Integer.parseInt(str);
12 13  //获取字符串长度length
14  str.length();
15 16  //获取字符charAt(指定位置)
17  str.charAt(1);
18 19  //获取对应字符数组toCharArray
20 21  //获取子串subString
22 23  //从字符x处分割split("x")
24 25  //判断字符串是否相等
26  a.equals(b);
27  a.equalsIgnoreCase(b);//忽略大小写
28 29  //格式化字符串
30  String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";    
31  String sentence2 = String.format(sentenceFormat,name,kill,title);         
32  System.out.println(sentence2);//输出:name 在进行了连续 kill 次击杀后,获得了 title 的称号
 

StringBuffer

单线程适用

1  //用法和StringBuilder基本相同

 

StringBuilder

多线程适用

1  //追加append
2  //删除delete
3  //插入insert
4  //反转reverse
5  StringBuilder stringBuilder = new StringBuilder();
6  stringBuilder.append("This is a string!");
7  stringBuilder.delete(2,3);//Ths is a string!
8  stringBuilder.insert(2,"e");//Thes is a string!
9  stringBuilder.reverse();//!gnirts a si sehT

 

 

posted @ 2021-03-09 22:31  Colin13  阅读(36)  评论(0编辑  收藏  举报