常见类的介绍

胡泽宇 2020年02月09日 34次浏览

System与Runtime

要获取系统相关的信息,通过System
要获取JVM环境相关的信息,通过Runtime

1

System的类变量

  • in : 代表键盘
  • out : 代表屏幕

System的所有方法都是类方法,因此无需创建实例

    static long currentTimeMillis();
    获取当前时间。从1970年1月1日0时0分0秒到现在经过了多少毫秒
    该时间非常方便地用于计算。
    
    static void exit(int status);
    退出JVM。status代表退出值,0代表正常退出。
    
    static String getenv();
    获取所有环境变量。
    
    static String getenv(String name);
    获取指定的环境变量。
    
    static String getProperties();
    获得所有的属性值
    
    static String getProperty(String name);
    获取指定的属性值

System:

  • 实例:
    2
  • 结果:
    3

Runtime代表JVM运行时环境

一个java程序只能在一个JVM里面跑,所以Runtime只需要一个实例,应该采用单例模式。

    static Runtime getRuntime()
    用于获取Runtime的单例对象
    
    long maxMemory()
    获取jvm的最大堆内存
    
    long totalMemory()
    获取jvm总共使用的堆内存
    
    long freeMemory()
    获取jvm的空闲堆内存
    
    exec(String command)
    运行操作系统上的程序

Object

它是一切类的父类。

通常有3个往往需要被重写的方法:
String toString()  返回该对象的描述字符串
boolean equals(Object object)  根据业务规则,提供判断两个对象相等的标准。
int hashCode()

Objects

操作对象的工具类,该类的工具方法可以避免NullPointException
示例:
4

字符串

java的字符串有3个: String、StringBuffer、StringBuilder

String 代表了字符内如不能改变的字符串。
StringBuffer、StringBuilder 代表了字符内容可变的字符串:可以向字符串中添加字符、删除字符、修改字符。
StringBuffer是线程安全的、性能较差。
StringBuilder是线程不安全的、性能较好。

Math

用于做数学计算的,它的方法都是静态的。

Random和ThreadLocalRandom

Random 是普通的随机数生成器。
ThreadLocalRandom 是当前线程的随机数生成器。

BigDecimal 精确小数

对于float、double两个类型而言,它们保存的小数可能不精确
---所有语言都是这样
如果要比较两个浮点数是否相等,通常计算它们的差,
如果差值小于一个极小的数,即可认为它们相等。
如果确实需要精确保存小数的值,就需要使用 BigDecimal

示例:
5
结果:
6

Date 日期时间

构造器:
Date()  获取当前时间
Date(long date)   负责将long型的时间转为Date对象

方法:
long getTime()    返回long型时间(获取currentTime Millis()所返回的时间)
boolean after(Date when)    判断在什么时间之前
boolean before(Date when)    判断在声明时间之后

Calendar 日期时间

被设计出来取代Date的。
Calendar采用模板设计,Calendar是一个抽象类,因此使用的是它的子类。
原本希望世界上不同的日历都继承Calendar来派生子类。
Java提供了一个子类  GregorianCalendar 其实就是公历

static Calendar getInstance();    获取实例
获取实例: Calendar.getInstance();

获取指定字段(年、月、日、.......)的值:
实例.get(Field名);

设置指定字段(年、月、日、.......)的值:
实例.set(Field名,值);

在指定字段(年、月、日、.......)上添加值:
实例.add(Field名,值);

获取该Calendar对应的Date对象:
实例.getTime();

示例:
7
结果:
8