1. 程式人生 > >Java基礎類庫(下)

Java基礎類庫(下)

Java基礎類庫(下)

System類

System類代表當前Java程式的執行平臺,程式不能建立System類的物件,System類提供了一些變數和類的方法,允許通過System類來呼叫這些方法。
System類提供了代表標準輸入、標準輸出、錯誤輸出的類變數:
System.in:標準輸入(通常是鍵盤)
System.out:標準輸出(通常是顯示器)
System.err :錯誤輸出

public static void gc()

該方法只會通知系統進行垃圾回收。

public static void exit(int status)

退出java虛擬機器 0 為正常退出 非0為 異常退出

public static long currentTimeMillis()

獲取當前時間的毫秒值(基準為計算機元年1970年1月1日00:00:00)

Match類

Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函式。
包含兩個成員變數
public static final double E :E
public static final double PI
下面演示一些在Math類中常用的方法

public class MathTest {
    public static void main(String[] args) {
        //弧度轉角度
System.out.println("Math.toDegress"+ Math.toDegrees(1.57)); //角度轉弧度 System.out.println("Math.toRadians(90)"+ Math.toRadians(90)); //計算cos,返回的角度範圍在-pi/2 - pi/2之間(其他三角函式類似) System.out.println("Math.cos(1.57)" + Math.cos(1.57)); //極座標轉換 System.out.println(
"Math.atan2(0.1,0.2)" + Math.atan2(0.1,0.2)); //向上取整 System.out.println("Math.floor(1.6)" + Math.floor(1.6)); //向下取整 System.out.println("Math.ceil(1.6)" + Math.ceil(1.6)); //四捨五入取整 System.out.println("Math.round(1.6)" + Math.round(1.6)); //計算平方根 System.out.println("Math.sqrt(8)" + Math.sqrt(8)); //計算立方根 System.out.println("Math.cbrt(8)" + Math.cbrt(8)); //返回e的n次冪 System.out.println("Math.exp(8)" + Math.exp(8)); //計算乘方 System.out.println("Math.pow(2,3)" + Math.pow(2,3)); //計算自然對數 System.out.println("Math.log(12)" + Math.log(12)); //計算以10為底的對數 System.out.println("Math.log10(100)" + Math.log10(100)); //計算自然對數 System.out.println("Math.log10(100)" + Math.log1p(10)); //計算絕對值 System.out.println("Math.abs(-4.6)" + Math.abs(-4.6)); //返回最大值 System.out.println("Math.max(12,11)" + Math.max(12,11)); //返回最小值 System.out.println("Math.min(11,9)" + Math.min(11,9)); } }

Random類

Random類專門用於生成一個偽隨機數,他有兩個構造器:一個構造器使用預設的種子(以當前時間做種子),另一個需要顯示的傳入一個long型整數的種子

//使用預設種子
Random random = new Random();
  for (int i1 = 0; i1 < 100; i1++) {
      int i = random.nextInt(100);//生成隨機的整數再int範圍
      System.out.println(i);
  }
//使用傳入的種子
Random random = new Random(100L);
   for (int i = 0; i < 10; i++) {
       int 1 = random.nextInt(100);
       System.out.println(i);
   }

如果使用預設種子,每次執行生成的隨機數不同,但是如果顯示的指定種子,每次生成的隨機數序列不變。

BigDecimal類子

已有的float和double基本浮點型別會造成精度丟失,尤其是在計算時,為了能精確的表示計算浮點型別Java提供了BigDecimal類
BigDecimal的方法
BigDecimal(String val)
將BigDecimal的字串表示 BigDecimal轉換為 BigDecimal 。
基本運算方法
public BigDecimal add(BigDecimal augend)//加
public BigDecimal subtract(BigDecimal subtrahend)//減
public BigDecimal multiply(BigDecimal multiplicand)//乘
public BigDecimal divide(BigDecimal divisor)//除法
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)//scale 小數點後面保留幾位

import java.math.BigDecimal;

public class BigTest {
    public static void main(String[] args) {
        BigDecimal f1 = BigDecimal.valueOf(0.05);
        BigDecimal f2 = BigDecimal.valueOf(0.01);
        System.out.println(f1.add(f2));
        System.out.println(f1.subtract(f2));
        System.out.println(f1.multiply(f2));
        System.out.println(f1.divide(f2));
    }
}

Date類

Java提供Date(java.util)類來處理日期、時間,Date物件既包含日期,也包含時間。但是大多構造器方法已經過時,不推薦使用。
構造器
Date提供了6個構造器但是其中四個已經過時。
Date():生成一個代表當前日期時間的Date物件。該構造器在底層呼叫System.currentTimeMillis()獲取long整數作為日期引數。
Date(long date);根據指定的long整數生成一個Date物件。該構造器引數表示建立Date物件和GMT 1970年1月1日00:00:00之間的時間差,以毫秒為記時單位。
方法
與構造器相同的是大部分方法也已過時剩下為數不多的幾個方法。
boolean after(Date when):測試該日期是否在指定日期之前
boolean before(Date when):測試該日期是否在指定日期之後
long getTime():返回時間對應的long整數,即從計算機元年到Date物件之間的毫秒差值
void setTime():設定Date物件的時間
下面規範了Date的使用


import  java.util.Date;
public class dataTest {
    public static void main(String[] args) {
        Date d1 = new Date();
        Date d2= new Date(System.currentTimeMillis() + 100);
        System.out.println(d2);
        System.out.println(d1.compareTo(d2));
        System.out.println(d1.before(d2));
        System.out.println(d2.getTime());
    }
}

Calendar類

Date類在設計上存在一些缺陷,所以java提供Calendar類更好的處理日期和時間。本身是一個抽象類不能例項化。但是可以使用一些靜態方法來獲取Calendar子類
Calendar和Date都是表示日期的工具類所以可以自由轉換

import java.util.Calendar;
import java.util.Date;

public class CalendarDemo {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        Date date = calendar.getTime();
        Calendar calendar1 = Calendar.getInstance();
        calendar1.setTime(date);
    }
}

Calendar類提供了大量的訪問修改日期的方法,常用方法如下:
1.abstract void add(int field, int amount) 根據日曆的規則,將指定的時間量新增或減去給定的日曆欄位。
2.int get(int field) 返回給定日曆欄位的值。
3.int getActualMaximum(int field) 給定此 Calendar的時間值,返回指定日曆欄位可能具有的最大值。
4.int getActualMinimum(int field) 給定此 Calendar的時間值,返回指定日曆欄位可以具有的最小值。
5.void set(int field, int value) 將給定的日曆欄位設定為給定的值。
6.void set(int year, int month, int date, int hourOfDay, int minute, int second) 設定欄位中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND

import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH));
        System.out.println(calendar.get(Calendar.DATE));
        calendar.set(2018,10,29,22,33,44);
        System.out.println(calendar.getTime());
        calendar.add(Calendar.YEAR,-1);
        System.out.println(calendar.getTime());
    }
}

SimpleDateFormat類

SimpleDateFormat是Java提供的格式器類,該類不僅可以將指定的日期物件格式化成字串,並且可以將指定的字串解析成日期物件。
常用方法有以下兩個:
1.public SimpleDateFormat():使用預設的模式來建立一SimpleDateFormat物件
2.public SimpleDateFormat(String pattern):使用指定的模式(規則比如yyyy:MM:dd HH:mm:ss)來建立一個SimpleDateFormat物件
格式化日期物件

//使用預設格式
SimpleDateFormat format = new SimpleDateFormat(); 
String date = format.format(new Date());
System.out.println(date);
//使用制定的格式
SimpleDateFormat simp = new SimpleDateFormat("yyyy年MM月dd號 HH:mm:ss: E z");
String format1 = simp.format(new Date());
System.out.println(format1);

解析字串

String dateStr = "2018-10-10 10:30:30";
//ParseException 解析異常
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse(dateStr);//把日期字串 解析成日期物件 注意格式要對應
System.out.println(date);