1. 程式人生 > 其它 >小程式頁面跳轉

小程式頁面跳轉

系統相關類

Java 程式在不同作業系統上執行時,有可能需要取得平臺相關的屬性,或者呼叫平臺命令來完成特定的功能

Java 提供 System 類和 Runtime 類來與程式執行的平臺進行互動

System 類

表示當前 Java 程式的執行平臺

描述:System 類是一個 final 類,該類的所有屬性和方法都是靜態的,可以不建立物件直接呼叫

屬性:in(標準輸入)、out(標準輸出)、err(錯誤輸出)

常用方法

  • currentTimeMillis( ):記錄程式執行的時間(單位毫秒)
  • exit():結束當前正在執行中的 Java 虛擬機器
  • getProperties( ):獲取當前系統屬性和環境變數
  • gc():提醒虛擬機器,建議進行一次垃圾回收
Runtime 類

表示當前 Java 程式的執行時環境

描述

  • 應用程式不能建立自己的 Runtime 物件例項
  • 只能通過 Runtime 類的靜態方法getRuntime( )獲取與之關聯的Runtime 物件

常用方法:

  • availableProcessors( ):獲取處理器數量
  • freeMemory( ):獲取空閒記憶體大小(位元組)
  • totalMemory():獲取總記憶體大小(位元組)
  • maxMemory() :獲取可用最大記憶體大小(位元組)

字串相關類

Java 中字串型別是程式中使用範圍最廣的資料型別,字串操作也就成了程式設計師使用得最多的操作

Java 中提供 String 類、StringBuffer 類、StringBuilder 類來處理字串,這三個類提供了大量操作字串物件的方法,能夠滿足程式中各種對字串的處理

String類

表示固定不變的字串

描述:

  • String 類是 final 類,不能被子類繼承
  • String 類例項化物件包含固定不變的字串

字串特點:

  • 字串必須使用雙引號(如“Hello”)
  • 字串的字元使用 Unicode 編碼(一個字元或漢字佔兩個位元組)
  • 字串是固定不可變的,統一存放在記憶體的字串常量池中

常用方法:

  • charAt ( int index ):返回字串指定位置的字元
  • indexOf( String s):返回指定字串第一次出現的位置
  • startsWith(String s):測試字串是否以指定字首開始
  • endsWith(String s):測試字串是否以指定字尾開始
  • subString( int index):返回字串的子字串
  • replace(char a, char b):替換字串的指定字元
  • trim():去掉字串的前後空格
  • concat(String str):連線兩個字串
  • split(String regex):給定正則表示式的匹配來拆分字串
字串常量池

字串常量池通過共享字串物件,提高字串物件的使用效率

正則表示式

正則表示式是一種用來匹配字串的表示式,Java 中 String 類支援使用正則表示式匹配字串

字元萬用字元
次數萬用字元
其他萬用字元
StringBuffer 類

表示可變長度的字串(執行緒安全)

StringBuffer 類是 Java 提供的另外一種字串操作類,該類允許包含的字串內容改變,用於解決 String 類包含的字串內容不可變的問題(頻繁修改字串內容使用 StringBuffer 類)

常用方法

  • append(String str):向字串後面追加指定字串
  • toString():返回物件包含的字串

舉例

// StringBuffer 例項化物件
StringBuffer temp  =  new StringBuffer(“hello ”);
temp.append(“world”); // 追加字串
String str = temp.toString(); // 返回物件包含的字串
System.out.println(str);
StringBuilder 類

表示可變長度的字串(執行緒不安全)

StringBuilder 類是在 JDK1.5 以後 Java 增加的一個新的字串操作類,它同 StringBuffer 類幾乎相同,唯一不同之處是 StringBuilder 類是執行緒不安全的,StringBuffer 類是執行緒安全的

String、StringBuffer 和 StringBuilder 區別
  • String 表示固定長度的字串,StringBuffer(執行緒安全) 和 StringBuilder(執行緒不安全) 表示可變長度字元
  • 效能由低到高為 String < StringBuffer < StringBuilder

日期時間相關類

在實際軟體專案開發中,經常會遇到處理日期和時間的情況,Java 語言中提供了一系列類專門處理日期和時間類

Date 類(日期時間)
  • 表示特定的瞬間(精確到毫秒)
  • 時間原點(0毫秒):1970-01-01 08:00:00
  • 1天 = 246060 = 86400 秒 = 86400 * 1000 = 86400000 毫秒
//獲取當前系統的時間和日期
Date date = new Date();

//把時間和日期轉換成時間戳(毫秒)
long time = date.getTime();
SimpleDateFormat 類(日期時間格式化)

描述:

  • 格式化(日期 -> 文字)
  • 解析 (文字 -> 日期)

常用方法:

  • format ( Date date ) :按照指定的模式,把 Date 日期格式化為符合模式的字串
  • parse ( String source ) :把符合模式的字串,解析為 Date 日期
// 格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
Date date = new Date( );
String str = sdf.format(date);

//解析
sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = simpleDateFormat.parse("2020-10-23");
Calendar 類(日曆)

描述:

  • 它呼叫靜態方法 getInstance( ) 獲取例項化物件(單例模式)
  • 它提供很多操作日曆欄位的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR)

常用方法:

  • int get (int field):獲取日曆(年月日等)
  • void set(int field, int value):設定日曆(年月日等)
  • void add(int field,int amount):新增或減少日曆(年月日等)
// 獲取日曆物件例項(當前日曆)
Calendar calendar   =   Calendar.getInstance();
// 獲取日曆年、月 
int year       =  calendar.get(Calendar.YEAR); 
int month   =  calendar.get(Calendar.MONTH);
//設定日曆年、月
calendar.set ( Calendar.YEAR, 2021 );
calendar.set ( Calendar.MONTH, 9 );
//日曆增加 2 年
calendar.add(Calendar.YEAR, 2);
//把日曆物件轉換為日期物件
Date date = calendar.getTime( );

數學運算相關類

Math 類

描述:

  • Math 類包含了用於執行基本數學運算的屬性和方法,如初等指數、對數、平方根和三角函式
  • Math 的方法都被定義為 static 形式,可以直接通過 Math.方法名() 進行呼叫,方便程式設計師進行實際的使用

常用方法:

  • int abs(int i):返回絕對值
  • round(float f):表示四捨五入
  • min(int a,int b):返回兩個數最小值
  • max(int a,int b): 返回兩個數最大值
  • random():返回[0,1)之間的隨機double值
BigInteger 類
  • 在 Java 中,基本資料型別儲存的整型最大範圍是 64 位 long 型整數
  • BigInteger 類用於表示任意大小的整數,因為它內部有一個 int[ ] 陣列可以儲存一個非常大的整數
BigInteger numA = new BigInteger("1234567890");
BigInteger numB  = new BigInteger("12345678901234");
// BigInteger 運算只能呼叫方法
BigInteger sum = NumA.add(NumB); 
// BigInteger 可以轉為基本資料型別
long numC = numA.longValue(); 
BigDecimal 類

BigDecimal 類和 BigInteger 類相似,用於表示一個任意大小且精度完全準確的浮點數(常用於財務計算)

BigDecimal decimalA = new BigDecimal("123.4500");
// 返回小數位數
System.out.println(decimalA.scale()); // 4(4位小數)
//去掉末尾的 0
BigDecimal decimalB = decimalA.stripTrailingZeros();
System.out.println(decimalA.scale()); // 2(兩位小數)

包裝類

什麼是包裝類

包裝類是將 Java 中八種基本資料型別封裝成的類,所有的基本資料型別都能很方便地與對應的包裝類相互轉換,以解決應用中要求使用引用資料型別,而不能使用基本資料型別的情況

包裝類的特點
  • 所有包裝類都是 final 型別(不能派生子類)
  • 例項化包裝類物件後,物件中儲存的基本型別資料不能再改變
  • 包裝類封裝大量有用的方法(如資料型別轉換)
  • 除 Character 類和 Boolean 類繼承於 Object 類,其他的包裝類都繼承於 Number 類
基本資料型別與包裝類
包裝類的共同點
  • 包裝類中包含的值不可變(包裝類例項化物件後不能修改儲存的數值)
  • 包裝類都有兩個構造器
  • 包裝類中都有xxxValue()方法
  • 包裝類中都有兩個 ValueOf()方法

自動裝箱/拆箱

自動裝箱和自動拆箱是基本資料型別與包裝類之間的一種轉換機制(通過編譯器自動完成)

不要過度使用自動裝箱或自動拆箱功能,因為它們可能會導致程式的效能下降