Java常用类(完结)

可变字符串

○StringBuffer:可变长字符串,JDK1.0提供,运行效率慢,线程安全。

○StringBuilder:可变长字符串,JDK5.0提供,运行效率快,线程不安全。

BigDecimal

○思考:以下程序输出结果是多少?

public class TestBigDecimal{
     
    public static void main(String[] args){
     
        double d1=1.0;
        double d2=0.9;
        SyStem.out.println(d1-d2);
    }
}

输出结果:0.999999999999999998

很多实际应用中需要精确运算,而double是近似值存储,不在符合要求需要借助BigDecimal。

○位置:java.math包中

○作用:精确计算浮点数。

○创建方式:BigDecimal bd=new BigDecimal(“1.0”);

○方法:

○BigDecimal add(BigDecimal bd) 加

○BigDecimal subtract(BigDecimal bd)减

○BigDecimal multiply(BigDecimal bd)乘

○BigDecimal divide(BigDecimal bd)除

○利用BigDecimal可以使用数值计算:

public class TestBigDecimal{
     
    public static void main(String[] args){
     
        BigDecimal bd1=new BigDecimal("1.0");
        BigDecimal bd2=new BigDecimal("0.9");
        
        BigDecimal result1=bd1.add(bd2);
        System.out.println("bd1+bd2="+result1);
        
        BigDecimal result2=bd1.subtract(bd2);
        System.out.println("bd1-bd2="+result2);
        
        BigDecimal result3=bd1.subtract(bd2);
        System.out.println("bd1*bd2="+result3);
        //输出结果:
           bd1+bd2=1.9;
           bd1-bd2=0.1;
           bd1*bd2=0.90;
           //执行除法运算时,抛出错误
              
        
        //BigDecimal result4=bd1.divide(bd2);
        //System.out.println("bd1/bd2="+result4);
        
        
    }
}

注意:进行除法运算时,如果不能准确的计算出结果时需要指定保留的位数和取舍方式。

○除法:divide(BigDecimal bd,int scal,RoundingModel mode)

○参数scal:指定精确到小数点后几位。

○参数mode:

○指定小数部分的取舍模式,通常采用四舍五入的模式,

○取值为BigDecimal,ROUND_HALF_UP.

Date

○Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代。

○时间单位

​ ○1秒=1000毫秒

​ ○1毫秒=1000微妙

​ ○1微妙=1000纳秒

Calendar

○Calendar提供了获取或设置各种日历字段的方法。

○构造方法

○protected Calendar() :由于修饰符是protected,所以无法直接创建该对象。

○其他方法

//方法名                                                     说明
static Calendar getInstance()                       使用默认时区和区域获取日历
    void set(int year,int month,int date,int
hourofday,int minute,int second)                  设置日历的年、月、日、时、分、秒
int get(int field)                                返回给定日历字段的值。字段比如年、月、日等
void setTime(Date date)                           用给定的Date设置此日历的时间。Date-Calendar
Date getTime()                                    返回一个Date表示此日历的时间。Calendar-Date
void add(int field,int amount)                    按照日历的规则,给指定字段添加或减少时间量
long getTimelnMillies()                           毫秒为单位返回该日历的时间值    

SimpleDateFormat

○SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。

○进行格式化(日期 -> 文本)、解析(文本 -> 日期)

○常用的时间模式字母

//字母                   日期或时间                 实例
  y                       年                       2019 
  M                      年中月份                   08
  d                      月中天数                   10
  H                      1天中小时数(0-23)          22
  m                      分钟                      16
  s                      秒                        59
  S                      毫秒                      367    

System类

○System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的。

//方法名                              说明
static void arraycopy(...)           复制数组
static long currentTimeMillis();      获取当前系统时间,返回的是毫秒值
static void gc();                    建议JVM赶快启动垃圾回收器回收垃圾
static void exit(int status);        退出jvm,如果参数是0表示正常退出jvm,非0表示异常退出jvm。

总结

○内部类:

○在一个类的内部再定义一个完整的类。

○成员内部类、静态内部类、局部内部类、匿名内部类。

○Object类:

○所有类的直接或间接父亲,可存储任何对象。

○包装类:

○基本数据类型所对应的引用数据类型,可以使Object统一所有数据。

○String类:

○字符串是常量,创建之后不能改变,字面值保存在字符串池中,可以共享。

○BigDecimal

○可精确计算浮点数。

○Date

○特定时间

○Calendar

○日历

○SimpleDateFormat

○格式化时间

○System

○系统类

你可能感兴趣的:(常用类,java)