常用类

2020-03-26  本文已影响0人  AMD_Ryzen

字符串

String

特性

  1. 声明为final,不可继承
  2. 实现了Serializable接口,可序列化
  3. 实现了Comparable接口,可比较大小
  4. 不可变的字符序列
String s1 = "abc"; //字面量定义方式,定义在字符串常量池当中
String s2 = "abc";
String s3 = new String("abc");
System.out.printf(s1 == s2);//true
System.out.printf(s1 == s3);//false
s2+="def";
System.out.println(s1.equals(s2));//false

测试

String s1 = "abc";
String s2 = "def";
String s3 = "abcdef";
String s4 = "abc" + "def";
String s5 = s1 + "def";
String s6 = "abc" + s2;
String s7 = s1 + s2;
String s8 = s7.intern();
System.out.println(s3 == s4);//true
System.out.println(s3 == s5);//false
System.out.println(s3 == s6);//false
System.out.println(s3 == s7);//false
System.out.println(s5 == s6);//false
System.out.println(s6 == s7);//false
System.out.println(s3 == s8);//true
/*
总结:
1. 常量与常量拼接,结果在常量池
2. 只要其中有一个变量,结果就在堆中
3. 调用intern方法,其返回值存放在常量池
*/
public class StringTest {
    private String s1 = new String("123");
    public void change(String str){
        str="abc";
    }
    public static void main(String[] args) {
        StringTest stringTest = new StringTest(); 
        System.out.println(stringTest.s1);//123
        stringTest.change(stringTest.s1);
        System.out.println(stringTest.s1);//123
    }
}

StringBuffer与StringBuilder

StringBuffer:线程安全的可变序列
StringBuilder:线程不安全的可变序列

日期与时间

时间戳

System.currentTimeMillis():1970年1月1日0分0秒到现在的毫秒数

JDK8之前

java.util.Date类和子类java.sql.Date类

java.text.SimpleDataFormat类:对日期Data类的格式化和解析

java.util.Calendar类和子类GreagorianCalendar

JDK8新增

java.time
java.time.chrono
java.time.format
java.time.temporal
java.time.zone

Java比较器

Comparable接口

重写CompareTo方法

  1. this大于形参,返回正
  2. this小于形参,返回负
  3. this等于形参,返回0

Comparator接口

重写Compara方法

  1. 形参1大于形参2,返回正
  2. 形参1小于形参2,返回负
  3. 形参1等于形参2,返回0

其他类

System
Math
BigInteger和BigDecimal

上一篇 下一篇

猜你喜欢

热点阅读