[java 常用類API] 新手小白的編程字典

目錄

1.API

? ? 1.1定義:

2.Object類

? ? ?2.1 toString() 方法

? ? ?2.2 equals() 方法

3. Arrays 類

? ? ?3.1 equals() 方法

? ? ?3.2 sort() 方法

? ? ? ?3.2.1排序

? ? ? 3.2.2?自定義對象排序

3.3 binarySearch() 方法

3.4?copyOf() 方法

3.5 fill() 方法

3.6?toString() 方法

4.基本數據類型包裝類

? ? 4.1定義:

? ?4.2?包裝類的兩種主要用途

? ?4.3方法

5. String類

? ? 5.1定義

?? ?5.2 字符串類型創建對象的方式:

? ??5.3 判斷功能

? ??5.4 獲取功能

? ?5.5轉換功能

1.將char數組轉換為字符串對象的方法:

2.把字符串轉換為char數組的方法:

3.轉碼解碼

5.5 其他功能

一.將不同類型的數據轉換為字符串類型的兩種方法

二.大小寫轉換

三.字符串連接?

四.去除字符串空格

五.字符串拆分

六.字符串替換

6.StringBuffer StringBuilder類

6.1 定義

6.2 注意

6.3 功能及源碼

7. 正則表達式

? ? ? 7.1定義

? ? ?7.2使用規范及代碼

8.Random類

? ? 8.1定義

? ? 8.2使用規范及代碼

9.Date類

? ? 9.1 定義

? ? 9.2使用方法及源碼

10.Calendar 類

? ? ? 10.1定義:

? ? ? 10.2使用方法及源碼

11.SimpleDateFormat 類

? ? ? 11.1定義

? ? ? 11.2方法及源碼

? ? ? 11.3格式化表達:

12. BigInteger 類

? ? ? ? 12.1 定義

? ? ? ? 12.2使用方法及源碼

13.BigDecimal 類

? ? ? ? 13.1定義

? ? ? ? 13.2使用方法及源碼


1.API

? ? 1.1定義:

? ? ? ? API(applicant programming interface)應用程序編程接口
? ? ? ? 一般在開發中,api表示java語言中為我們提供的各種類和接口(基礎功能)
?java官方為開發人員提供了一個文檔 ,對語言中提供的接口和類進行說明,我們稱為API文檔

2.Object

? ? ?2.1 toString() 方法

? ? ? ? ? ? 2.1.1定義:?

? ? ? ?在開發中,經常用到輸出一個對象,但是對象在內存中儲存,是不能直接輸出到控制臺的,一旦要輸出某個對象,那么會默認自動調用類中toString()方法,把對象中的信息,以字符的形式輸出

? ? ? ? ? ? ? 舉例:?

? ? ? ? ? ? ? 如果類中沒有定義toString()方法,那么就會在父類里面調用

? ? ? ? ? ? ? Object類中的toString()默認輸出的是對象在內存中的地址(Object類是所有類的父類)
? ? ??

package Objectdemo.toStringdemo;public class Person {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//Object中的toString()方法輸出的是對象的地址,與我們想要的結果不一樣,那么我們就重寫toString方法@Overridepublic String toString() {return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';}
}

Object中的toString() 輸出的是對象的地址,與我們想要的結果不一樣,那么我們就重寫toString()

package Objectdemo.toStringdemo;public class ToStringDemo {public static void main(String[] args) {Person person = new Person();person.setAge(20);person.setName("Tom");System.out.println(person);}
}

2.2 equals() 方法

? ? ? 2.2.1 定義:

? ? ? ? ? ? ? Object類中 默認的equals(Object obj) 比較兩個對象的地址是否相等 , 與 == 效果相等
? ? ? ? ? ? ? 為了區分,開發人員把equals進行重寫, 從而比較 內容 是否相同??

? ? ? ? ? ? ?如果兩個相等,則返回值為true,否則返回值為false? ?(Boolean類型)

? ? ? 2.2.2 舉例:

package Objectdemo.Equalsdemo;
public class Person {String name;int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//重寫equals方法,用來比較內容是否相等@Overridepublic boolean equals(Object obj) {//Person是自己定義的類,需要重寫equals方法if (obj instanceof Person){Person p = (Person)obj;//判斷,如果類型相同,就向下轉型return this.age == p.age && this.name.equals(p.name);//(name)String類型中的equals已經被重寫了,比較的是內容是否相同}return false;}
}

? 自己定義的類,需要重寫equals方法,系統中定義的類,一般情況下已經重寫過equals()方法了

package Objectdemo.Equalsdemo;public class Demo1 {public static void main(String[] args) {Person p1 = new Person();p1.setName("jim");p1.setAge(20);Person p2 = new Person();p2.setAge(20);p2.setName("jim");//比較p1和p2是否相等//1.比較地址是否相同System.out.println(p1==p2);//==左右,當兩邊是引用數據類型時,比較的是 地址 是否相等//2.比較內容是否相同System.out.println(p1.equals(p2));//默認調用equals(),也是比較對象地址是否相等;重寫后,比較的是內容是否相同}
}

3. Arrays 類

? ? ?3.1 equals() 方法

? ? ? ? ? ? 3.1.1 定義:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?比較兩個數組對象中元素是否相等.

? ? ? ? ? ??舉例:

package Arraysdemo.equalsdemo;import java.util.Arrays;public class Demo1 {public static void main(String[] args) {int[] a={1,2,3,4,5};int[] b={1,2,3,4,5,6};System.out.println(a==b);//比較地址System.out.println(Arrays.equals(a,b));//比較內容(Arrays類中的equals()已被重寫)}
}

3.2 sort() 方法

? ? ? ?3.2.1排序

? ? ? ? 舉例:

package Arraysdemo.Sortdemo;import java.util.Arrays;public class SortDemo1 {public static void main(String[] args) {int a[]={3,2,1,5,4};Arrays.sort(a);////對數組內容進行排序Arrays.sort(a,0,3);//對數組指定的 區間 進行排序(數組,包含開始的位置,不包含結束的位置)System.out.println(Arrays.toString(a));}
}
? ? ? 3.2.2?自定義對象排序

? ? ? ?需要為自定義的對象提供一個排序規則,即指定用哪個屬性(學號,字母...)進行排序
? ? ? ?compareTo()會在Arrays類中的sort()排序時會自動調用,根據返回的結果判斷兩個值誰大誰小;

? ? ? ?舉例:

package Arraysdemo.Sortdemo;public class Student implements Comparable<Student> {private int no;private String name;public Student(String name, int no) {this.name = name;this.no = no;}@Overridepublic String toString() {return "Student{" +"no=" + no +", name='" + name + '\'' +'}';}@Override  //實現接口 要重寫抽象方法public int compareTo(Student o) {//用學號排序return this.no-o.no;//返回結果 小于0 等于0 大于0//用name排序//return this.name.compareTo(o.name);}
}
package Arraysdemo.Sortdemo;
import java.util.Arrays;//自定義對象排序
public class SortDemo2 {public static void main(String[] args) {//構造方法賦值Student student1 = new Student("b", 101);Student student2 = new Student("a", 102);Student student3 = new Student("c", 103);Student student4 = new Student("d", 104);Student student5 = new Student("e", 105);//開辟有5個空間的學生數組Student[] students = new Student[5];//將學生隨機裝入數組中students[0] = student3;students[1] = student2;students[2] = student5;students[3] = student1;students[4] = student4;//對學生數組進行排序Arrays.sort(students);System.out.println(Arrays.toString(students));}
}

3.3 binarySearch() 方法

? ? ? ?3.3.1 定義:

? ? ?二分查找算法(折半查找算法)

? ? (1)前提:數組要是有序的
? ? (2)方法:每次找到數組的中間值,用我們將要找的值與中間值進行比較。
? ? ? ? ? ? 如果我們要找的值大于中間值,就繼續向右邊查找 .然后再與右邊的中間值進行比較,以此類推,如果小于中間值就向左查找
? ? (3)舉例:
? ? ? ? ? ?int[] a = {1,2,3,4,5,6,7,8,9......,10000};
? ? ? ? ? ?判斷數組中是否包含 5535 這個元素
? ? ? ? ? ?常用做法是從第一個開始查找,效率低,時間長;但是如果使用
? ? ? ? ? ?二分查找(適合有序的大基數查找)直接從5000開始比較,加快了查找速率

package Arraysdemo.BinarySearchdemo;import java.util.Arrays;public class BinarySearchDemo1 {public static void main(String[] args) {int [] a= {9,5,8,7,2,6,4,3,1};Arrays.sort(a);//1.先排序成{1,2,3,4,5,6,7,8,9}//2.(要查找的數組,要尋找的元素) 如果返回負數,說明要尋找的值不存在System.out.println(Arrays.binarySearch(a, 9));//3.查找區間中的元素(要查找的數組,開始位置,結束位置,查找的元素)System.out.println(Arrays.binarySearch(a,0,5,3));}
}

3.4?copyOf() 方法

? ? ? ?3.4.1定義:
? ? ? ? ? ? ? ?數組復制,將原數組中的內容,復制到一個新創建的指定長度的數組

? ? ? ?舉例:

package Arraysdemo.Copyofdemo;import java.util.Arrays;public class CopyOfDemo {public static void main(String[] args) {int[] a = {1,2,3,4,5};//int[] b = new int[8];//[1,2,3,4,5,0,0,0]int[] b = Arrays.copyOf(a,8);//(原數組,新數組的長度)System.out.println(Arrays.toString(b));}
}

3.5 fill() 方法

? ? ? 3.5.1定義: 數組填充

? ? ? 舉例:

package Arraysdemo.Filldemo;
import java.util.Arrays;
public class FillDemo {public static void main(String[] args) {int[] a = {1,2,3,4,5};//(要填充的數組,要填充的元素)Arrays.fill(a,1);//將a數組中的元素全填充為1System.out.println(Arrays.toString(a));}
}

3.6?toString() 方法

? ? ? 3.6.1定義:

? ? ? ? ? ? ? 返回指定數組內容的字符串的表示形式

4.基本數據類型包裝類

? ? 4.1定義:

? ? ? ? ? ?由于java是面向對象的,但是8中基本類型的數據類型不是面向對象的,使用起來不方便,所以? ? ? ? ? ? ? ?java語言中,為8種基本數據類型,各提供一個包裝類進行表示,?包裝類中可以包含一個基本? ? ? ? ? ? ? ? ?類型值以及一些常用的操作方法(例如: 尋找整數的最大值, 將整數轉為二進制)

4.2?包裝類的兩種主要用途

● 包含每種基本數據類型的相關屬性(最大/小值)以及相關的操作方法

● 作為 與基本數據類型 對應的 類型存在

4.3方法

(1)基本方法和常用靜態方法

package basetypedemo;public class IntegerDemo1 {public static void main(String[] args) {//int類型的包裝類:Integer//基本方法System.out.println(Integer.MAX_VALUE);//最大值System.out.println(Integer.MIN_VALUE);//最小值System.out.println(Integer.BYTES);//4 含有的字節數System.out.println(Integer.SIZE);//32 含有的比特位//常用靜態方法System.out.println(Integer.max(10,5));//返回較大的值System.out.println(Integer.min(10,5));//返回較小的值System.out.println(Integer.toBinaryString(8));//2進制System.out.println(Integer.toHexString(28));//16進制System.out.println(Integer.toOctalString(9));//8進制System.out.println(Integer.compare(11, 10));//兩個數比大小--->返回 -1 0 1String a ="10";String b = "20";//例如 : String a ="10c"; 無法轉換為整數,會報錯int ai = Integer.parseInt(a);int bi = Integer.parseInt(b);System.out.println(ai+bi);//把字符串類型的數值,轉為基本類型數值,轉換時不能出現非數字的字符//同理可以調用其他基本類型的包裝類,就省略了}
}

(2)構造方法和實例方法

package basetypedemo;public class  IntegerDemo2 {public static void main(String[] args) {//構造方法Integer i1 = new Integer(20);Integer i2 = new Integer("20");//會調用parseInt(),將Stirng轉為int類型的//實例方法System.out.println(i1.equals(i2));//equals(),比較Integer對象中的內容是否相等System.out.println(i1.compareTo(i2));//compareTo(),比較Integer對象中的數據大小String s = i1.toString();//toString(),將整數類型轉為String類型int a = i1.intValue();//intValue(),把包裝類型轉為基本類型}
}

5. String類

? 5.1定義

? ? ? ? ? ? ? ? ? ? java.lang.String 被final修飾,不能被繼承
? ? ? ? ? ? ? ? ? ? String是java中的字符串(用"? "表示),String類中有一個char數組,用來存儲字符串內容,
? ? ? ? ? ? ? ? ? ? 字符串對象一旦創建后,值就不能改變,改變值就是重新創建一個新的字符串對象

? 舉例:

package Stringdemo.Demo;public class Demo1 {public static void main(String[] args) {String s1  = new String("abc");s1 += "def";s1 += "ghi";s1 += "jkl";System.out.println(s1);}}

?
? ?5.2 字符串類型創建對象的方式:

? ? ? ? ? 1.賦值方式
? ? ? ? ? ? ? ? String s = "abc"; 類似于裝箱,隱式的創建了一個字符串對象
? ? ? ? ? 2.new方式
? ? ? ? ? ? ? ? String s = new String("abc");

package Stringdemo.Demo;public class Demo2 {public static void main(String[] args) {String s1 = "abc";String s2 = "abc";String s3 = new String("abc");String s4 = new String("abc");System.out.println(s1 == s2);//true/*  s1和s2指向的是同一個地址,系統認為s1已經創建過一個"abc"對象,放在字符串常量池當中,當s2的值為"abc"時,常量池里如果有,就把s1的地址賦給s2*/System.out.println(s3 == s4);//falseSystem.out.println(s1.equals(s2));System.out.println(s3.equals(s4));}
}

?注意:字符串常量池

5.3 判斷功能

1. equals()方法 : 判斷內容是否一致

? ? equalsIgnoreCase() 方法: 判斷內容是否一致,且忽略大小寫

2.contains()方法 :?判斷是否包含某個內容

3. isEmpty()方法 :?判斷是否為空, 空返回true 否則返回false

4.startWith()方法 :?判斷是否為指定的子串作為開頭

5.endWith()方法 :?判斷是否為指定的子串作為結尾

package Stringdemo.Demo;public class Demo3 {public static void main(String[] args) {String s1 = "abcd";String s2 = "abCd";System.out.println(s1.equals(s2));//看內容是否一致System.out.println(s1.equalsIgnoreCase(s2));//看內容是否一致,且忽略大小寫System.out.println(s1.contains("bd"));//false 判斷是否包含一個整體 “bd”System.out.println(s1.contains("b"));//true 判斷是否包含“b”System.out.println(s1.isEmpty());//判斷是否為空 空返回true 否則返回falseSystem.out.println(s1.startsWith("ab"));//判斷是否為指定的子串作為開頭System.out.println(s1.endsWith("d"));//判斷是否為指定的子串作為結尾}
}

5.4 獲取功能

1.?length() 方法 : 獲取字符串的長度

2. charAt() 方法 : 獲取指定位置上的字符

3. indexOf() 方法:?獲取指定字符出現的位置,從前往后

? ? lastindexOf()方法 : 獲取指定字符出現的位置,從后往前

4.?substring() 方法 : 截取字符,從...開始

? ??substring( , )方法 : 截取字符,從...開始,到...結束

package Stringdemo.Demo;public class Demo4 {public static void main(String[] args) {String s1 = "abcdefg";//['a','b','c','d','e','f','g']System.out.println(s1.length());//獲取字符串的長度System.out.println(s1.charAt(2));//獲取指定位置上的字符System.out.println(s1.indexOf("c"));//獲取指定字符出現的位置,從前往后找System.out.println(s1.indexOf("c",3));System.out.println(s1.lastIndexOf("c"));//從后向前找System.out.println(s1.lastIndexOf("c",2));String s2 = s1.substring(2);//截取字符,從第2個位置開始System.out.println(s2);String s3 =s1.substring(3,4);//截取字符,從第3個位置開始,到第4個位置結束System.out.println(s3);}
}

5.5轉換功能

1.將char數組轉換為字符串對象的方法:

(1).構造方法

(2).valueOf()方法

2.把字符串轉換為char數組的方法:

toCharArray()方法

3.轉碼解碼

getBytes()方法

package Stringdemo.Demo;import java.util.Arrays;public class Demo6 {public static void main(String[] args) {//構造方法String s1 = new String();//創建一個字符串對象 this.value = "".value;String s2 = new String("abcd");//創建String類型的char[] chars ={'a','b','c','d'};//將char數組轉為字符串對象的方法:String s3 = String.valueOf(chars);//String類的valueOf()方法String s4 = new String(chars);//構造方法String s5 = "abcd";//把字符串轉為char數組的方法:char[] chars1 = s5.toCharArray();//toCharArray()方法Arrays.sort(chars);//對數組進行排序String s6 = new String(chars1);//把排好序的char數組轉為字符串 (因為字符串沒法排序,只有轉為數組才可以排序)System.out.println(s6);//轉換功能(轉碼解碼)String s7 = "abcd";//數據在傳輸時,都是以數字進行傳遞的byte[] bytes= s7.getBytes();//將看的懂的字符轉為看不懂的編碼System.out.println(Arrays.toString(bytes));//97 98 99 100String s8 = new String(bytes);//再 將看不懂的字節數組轉為看的懂的字符串System.out.println(s8);}
}

5.5 其他功能

?一.將不同類型的數據轉換為字符串類型的兩種方法

1.toString()?
? 用的比較少,如果a的值是整數,就不報錯。但是a的值是null,會報錯
2.valueOf()?----裝箱
? 用的比較多 即使值為null,轉換時也不會報錯

二.大小寫轉換

1.toLowerCase()
? 轉小寫
2.toUpperCase()
? 轉大寫

三.字符串連接?

concat() :?必須傳String類型

四.去除字符串空格

1.trim()?
? 去掉字符串前后的空格 不能去掉中間空格
2.replace()?
? 使用replace(),將中間空格替換

五.字符串拆分

split()?用指定的分隔符,將一個字符串拆分成數組,不會去除中間的空格

六.字符串替換

replace(原來的字符,替換后的字符)

package Stringdemo.Demo;import java.util.Arrays;public class Demo5 {public static void main(String[] args) {//一.將不同類型的數據轉換為字符串類型的兩種方法Integer a = null;/*1.toString()方法用的比較少,如果a的值是整數,就不報錯。但是a的值是null,會報錯。*///String s1 = a.toString();//會報錯/*2.valueOf()方法----裝箱用的比較多 即使值為null,轉換時也不會報錯*/String s = String.valueOf(a);System.out.println(s);//二.大小寫轉換String s3 = "abCD";System.out.println(s3.toLowerCase());// abcd 轉小寫System.out.println(s3.toUpperCase());// ABCD 轉大寫//三.字符串連接String s4 = s3.concat("efg");//concat()中必須傳String類型System.out.println(s4);//abCDefg 連接字符串//四.去除字符串空格//(1)去除前后空格String s5 = s3.trim();//去掉字符串前后的空格 不能去掉中間空格System.out.println(s5.length());//(2)去除中間空格----使用replace(),將中間空格替換//五.字符串拆分 String s6= "ab;cd :efg;hjk";String[] strings = s6.split(";");//用指定的分隔符,將一個字符串拆分成數組,不會去除中間的空格System.out.println(Arrays.toString(strings));//六.字符串替換String s7= "abcecc";String s8 = s7.replace("ce", "CD");//替換字符 (原來的字符,替換后的字符)System.out.println(s8);}
}


6.StringBuffer StringBuilder類

6.1 定義

? ? 由于String聲明的字符串是不可以改變的,每次拼接(+=)都會創建一個對象,效率低
? ? 所以java中提供了兩個值可變的字符串對象: StringBufferStringBuilder

6.2 注意

? ? ? 1.StringBuffer的創建不能通過賦值? 即StringBuffer stringBuffer =" ";
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?只能通過new? 即StringBuffer stringBuffer = new StringBuffer();
? ? ? 2.StringBuffer內部存在一個沒有被final修飾的數組(默認長度16),可以向數組中存放字符
? ? ? ? ?裝滿后,會自動擴容 同時不會創建新的StringBuffer對象 效率高
? ? ? 2.?StringBuffer?: 在多線程場景下是安全的,因為它的方法都加了 鎖,一次只允許進一個
? ? ? ? ? StringBuilder?: 它的方法上,沒有加鎖,所以適合單線程場景

6.3 功能及源碼

? ? ? ? ? ? ? ?添加---刪除---替換---逆序

package Stringdemo.StringBuffer;public class StringBufferDemo {public static void main(String[] args) {StringBuffer stringBuffer1 = new StringBuffer();//無參的構造方法,默認容量是16StringBuffer stringBuffer2 = new StringBuffer("abcd");StringBuffer stringbuffer = new StringBuffer(10);//指定新的容量//String s = new StringBuffer(stringBuffer);//可以將StirngBuffer類型轉為String類,故此類中提供的方法較少//常用方法:stringbuffer.append("ss");//不能用 += 方法添加字符stringbuffer.append("bb");//向末尾添加元素stringbuffer.insert(3, "cnm");//向指定位置添加元素stringbuffer.deleteCharAt(1);//刪除指定位置上的值stringbuffer.delete(0,5);//刪除某個區間stringbuffer.replace(0,2,"cccccc");//把某個區間替換成其他stringbuffer.reverse();//逆序字符串  bmncbssSystem.out.println(stringbuffer);}
}
package Stringdemo.StringBuffer;public class  StringBuilderDemo {public static void main(String[] args) {StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("abcd");}}

7. 正則表達式

? ? 7.1定義

? ? ? ? 正則表達式(RegEx)是一種文本格式匹配工具,是計算機語言的一種技術,主流編程語言都支持
? ? ? ? 使用正則表達式中的元素,制定一個規則,用這個規則與字符串進行匹配?matches(),? ? ? ? ? ? ? ? ? 匹配成功返回true,否則返回false

? ? ?7.2使用規范及代碼

package Stringdemo.RegEx;public class RedExDemo {public static void main(String[] args) {//使用正則表達式,就可以很輕松的進行字符串的格式匹配  舉例:驗證手機號是否正確//正常方法 :遍歷字符串,驗證是否存在非數字字符 && 第一位必須為1 && 第二位為3579 && 其他位是數字String s1 = "154sdhsh_54@xxx.com";System.out.println(s1.matches("[0-9]"));//只能匹配一個數字//注意: "-"表示范圍 且要用[]表示System.out.println(s1.matches("[0-9]*"));// * 表示不限數字個數System.out.println(s1.matches("[0-9]{3}"));//只能是三個數字System.out.println(s1.matches("[0-9]{3,}"));//數字的個數可在三個以上System.out.println(s1.matches("[0-9]{3,6}"));//至少三個數字,最多6個System.out.println(s1.matches("\\d{3,6}"));//  \\d 相當于[0-9],和上一行表示相同//正則表達式方法:驗證11位手機號是否規范System.out.println(s1.matches("[1][3,5,7,8,9][0-9]{9}"));String s = "bc";System.out.println(s.matches("[a-z]"));//只能是 一個 小寫字母,不能出現兩個字母System.out.println(s.matches("[a-zA-z]"));//表示為任意一個大小寫字母System.out.println(s.matches("[A-z]"));//因為a的值是大于A的值,所以不能表達為[a-Z]System.out.println(s.matches("\\w*"));//  \\w 表示為[A-z0-9_]String s2 = "ahidc_ajd@qq.com.cn";//郵箱格式                          154sdhsh_54 @   xxx    .  comSystem.out.println(s2.matches("\\w{6,20}@\\w{2,6}\\.(com|com\\.cn)"));/*注意:1."."可以代表任意字母數字或者符號,所以把 . 替換為 \\. ---->讓其只是單純的 . 而不是任意的字符2.使用正則表達式的時候不要輕易添加空格,可能會格式不正確*/}}

8.Random類

? ? 8.1定義

? ? ? ? ? ? ? ? ? Random類用于產生隨機數

? ? 8.2使用規范及代碼

package randomdemo;import java.util.Arrays;
import java.util.Random;public class RandomDemo {public static void main(String[] args) {Random random = new Random();System.out.println(random.nextInt());//在int類型的取值范圍內隨機返回一個整數System.out.println(random.nextBoolean());System.out.println(random.nextFloat());System.out.println(random.nextDouble());//在double類型的取值范圍內隨機返回一個數System.out.println(random.nextLong());//在0到指定區間內,隨機返回一個數  取值范圍:[0,指定數)System.out.println(random.nextInt(10));//在0到10之間隨機返回一個數//在數組空間中生成隨機數byte[] bytes= new byte[10];//創建一個有10個空間的數組random.nextBytes(bytes);System.out.println(Arrays.toString(bytes));//輸出}
}

9.Date類

? ?9.1 定義

? ? ? ??java.sql.Date 連接數據庫時使用
? ? ? ? java.util.Date 一個Date類的對象,表示當前系統運行那一刻的時間

? ? 9.2使用方法及源碼

package Datedemo;import java.util.Date;public class DateDemo {public static void main(String[] args) {Date date = new Date();System.out.println(date);System.out.println(date.getYear()+1900);//從1900年開始計算System.out.println(date.getMonth()+1);//在英文中1月記憶為0System.out.println(date.getDate());//日System.out.println(date.getDay());//把星期天記為第一周的開始System.out.println(date.getHours());//時System.out.println(date.getMinutes());//分System.out.println(date.getSeconds());//秒//getTime 獲得的是從 1970.1.1 0.0.0.秒 到 date對象創建時 所有的毫秒值System.out.println(date.getTime());Date date1 = new Date();System.out.println(date1.getTime()-date.getTime());//獲得兩次時間的 毫秒差Date date2 = new Date(1739430660659l);//將毫秒差還原成某一時間System.out.println(date2);}
}

10.Calendar 類

? ? ? 10.1定義:

? ? ? ? ? ? ? 相比起Date類中方法,更加全面

? ? ? ? ? ? ? 使用時調用 getInstance() 方法

? ? ? 10.2使用方法及源碼

? ? ? ?舉例:

package Calendardemo;import java.util.Calendar;public class CalendarDemo {public static void main(String[] args) {//創建一個日歷對象Calendar calendar= Calendar.getInstance();//獲得Calender的一個子類對象GregorianCalendar//時間表示System.out.println(calendar.get(Calendar.YEAR));//年System.out.println(calendar.get(Calendar.MONTH)+1);//月System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//日System.out.println(calendar.get(Calendar.HOUR));//時 12小時制System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//時 24小時制System.out.println(calendar.get(Calendar.MINUTE));//分System.out.println(calendar.get(Calendar.SECOND));//秒//第... 中第...System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));//月中的第幾周System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//周中的第多少天System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//今年的第多少天//其他表達省略.....//相當于Date類中的getTime()方法 獲得的是從 1970.1.1 0.0.0.秒 到 date對象創建時 所有的毫秒值System.out.println(calendar.getTimeInMillis());}
}

11.SimpleDateFormat 類

? ? ?11.1定義

? ? ? ?? 日期格式化 (java.text)
? ? ? ? 1.將日期類型轉為指定格式的字符串 format()
? ? ? ? 2.將指定格式的字符串轉為日期類型 parse()

? ? ? 11.2方法及源碼

舉例:

package SimpleDateFormatdemo;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatDemo  {public static void main(String[] args) throws ParseException {Date date = new Date();//將日期類型 轉為字符串類型                              年 月  日  時 分 秒 毫秒 星期SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss  S   E");String s1= simpleDateFormat.format(date);System.out.println(s1);//將字符串類型轉為日期類型String dateStr = "2002-02-02";SimpleDateFormat  simpleDateFormat1= new SimpleDateFormat("yyyy-MM-dd");Date date1 = simpleDateFormat1.parse(dateStr);System.out.println(date1);}
}

? ? ? 11.3格式化表達:

12. BigInteger 類

? ? ? ?12.1 定義

? ? ? ? ? BigInteger類型是一個數字范圍比Integer , Long類型的數字范圍大得多的類型,它支持任意精度的整數,即 在運算中 BigInteger 類型可以準確地表示任何大小的整數值而不會丟失任何息。

? ? ? ? 12.2使用方法及源碼

package BigIntegerdemo;import java.math.BigInteger;public class BigIntegerDemo {public static void main(String[] args) {System.out.println(Long.MAX_VALUE);BigInteger bigInteger1 = new BigInteger("9999999999999999999999");BigInteger bigInteger2 = new BigInteger("1111111111111111111111");//加法BigInteger bigInteger3 = bigInteger1.add(bigInteger2);System.out.println(bigInteger3);//乘法BigInteger bigInteger4 = bigInteger1.multiply(bigInteger2);System.out.println(bigInteger4);//其他方法省略......}
}

13.BigDecimal 類

? ? ? ?13.1定義

? ? ? 問題: 在計算機中,float?和 double 都是浮點數 , 而計算機是二進制的,浮點數會失去一定的精確度?(根本原因是 十進制浮點值沒有完全與之相同的二進制形式 , 十進制浮點值的二進制表示形式不精確,只能無限接近于那個值.)

? ? ? 舉例 :?在金融項目這種情況很危險,例如涉及金額的計算 , 都必須十分精確,如果你的支付寶賬戶余額顯示 193.99999999999998,那是一種怎么樣的體驗?

? ? ? 解決方法 :?使用BigDecimal類中的方法進行運算

? ? ? ? 13.2使用方法及源碼

package BigDecimaldemo;import java.math.BigDecimal;public class BigDecimalDemo {public static void main(String[] args) {//System.out.println(0.1+0.2);//0.30000000000000004//浮點數運算BigDecimal bigDecimal1 = new BigDecimal("0.1");BigDecimal bigDecimal2 = new BigDecimal("0.2");BigDecimal bigDecimal3 = bigDecimal1.add(bigDecimal2);System.out.println(bigDecimal3);BigDecimal bigDecimal4 = new BigDecimal("10");BigDecimal bigDecimal5 = new BigDecimal("3");BigDecimal bigDecimal6 = bigDecimal4.divide(bigDecimal5,3,3);//方法.(要操作的變量,保留小數的位數,進位的模式 )System.out.println(bigDecimal6);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93334.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93334.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93334.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

去除視頻字幕 2, 使用 PaddleOCR 選取圖片中的字幕區域, 根據像素大小 + 形狀輪廓

有人問我在搞什么&#xff1a;就是做這里的第2步。問題描述這里誤導&#xff0c;誤判&#xff0c;太嚴重了。如果我把這個區域當做是 mask ,那么真正的目標會被去除掉還有什么建議嗎&#xff1f;比如我能否根據這個mask 的大致形狀來判斷它是不是字幕&#xff0c; 如果不是細長…

Ubuntu 連接Visual SVN

Windows服務器上的svn倉庫為&#xff1a; https://ldw_online:8443/svn/OnlineRepository/LVC IP地址為192.168.8.8 4. 從 Ubuntu 測試連通性 在 Ubuntu 上可以用&#xff1a; bash 復制編輯 curl -vk https://192.168.8.8:8443/ 如果返回 HTTP 頭或 SSL 握手成功&#xff…

JAVA:Spring Boot 集成 Protobuf 的技術指南

?? 1、簡述 在分布式服務通信中,數據序列化與反序列化的效率對系統性能影響極大。Protocol Buffers(Protobuf) 是由 Google 提出的一種高效的結構化數據序列化協議,具有: ?? 高性能(遠優于 JSON/XML) ?? 跨語言支持 ?? 較小的體積 本篇將帶你了解如何在 Spring…

SQLServer內存釋放工具介紹:一款實用的數據庫性能優化助手

SQLServer內存釋放工具介紹&#xff1a;一款實用的數據庫性能優化助手 去發現同類優質開源項目:https://gitcode.com/ 在數據庫管理中&#xff0c;內存釋放是優化服務器性能的重要環節。本文將為您詳細介紹一款名為SQLServer內存釋放工具的開源項目&#xff0c;幫助您輕松管理…

《藍耘容器全棧技術指南:企業級云原生與異構計算實戰大全》

&#x1f31f; 嗨&#xff0c;我是Lethehong&#xff01;&#x1f31f; &#x1f30d; 立志在堅不欲說&#xff0c;成功在久不在速&#x1f30d; &#x1f680; 歡迎關注&#xff1a;&#x1f44d;點贊??留言收藏&#x1f680; &#x1f340;歡迎使用&#xff1a;小智初學計…

計算器3.0:實現用戶自定義組件

前言&#xff1a; 馬總給我提出計算器3.0新需求&#xff1a;可以在頁面上輸入一個組件&#xff0c;用戶的組件庫里面就多一個組件&#xff0c;用戶就可以使用 一、解決方法&#xff1a; 1. 新增成員變量和初始化 // 新增的輸入框 private InputBox newInputBox; // 新增的組…

PIG AI 全新升級:全新 MCP 能力加持,讓企業級 AI 開發效率翻倍!

你是否曾為 AI 應用的開發門檻而頭疼?調試代碼耗費數小時、集成外部工具需要復雜配置、想要快速構建智能系統卻不知從何下手…別擔心!PIG AI 最新版本帶來的 MCP(Model Context Protocol)能力,正為這些問題提供一站式解決方案。本文將帶你深入淺出地了解這一重磅升級,手把…

Springboot+vue超市管理系統的設計與實現

文章目錄前言詳細視頻演示具體實現截圖后端框架SpringBoot前端框架Vue持久層框架MyBaits成功系統案例&#xff1a;代碼參考數據庫源碼獲取前言 博主介紹:CSDN特邀作者、985高校計算機專業畢業、現任某互聯網大廠高級全棧開發工程師、Gitee/掘金/華為云/阿里云/GitHub等平臺持續…

一文快速了解Docker和命令詳解

本文讓你快速了解Docker是什么的東西&#xff0c;在我們程序開發的時候到底有什么作用&#xff0c;為什么需要去學習它。本文章只是做一個簡單的概述配套黑馬課程讓你快速了解、使用Docker。 一、什么是Docker&#xff1f; Docker是一個開源的容器化平臺&#xff0c;允許開發者…

【GaussDB】如何從GaussDB發布包中提取出內核二進制文件

【GaussDB】如何從GaussDB發布包中提取出內核二進制文件 背景 GaussDB 從505和506版本起&#xff08;前面的版本不清楚&#xff09;&#xff0c;華為官方不再提供用腳本安裝GaussDB的方式&#xff08;應該是基于運維交付標準化的角度考慮&#xff09;&#xff0c;僅支持使用T…

ETH 交易流程深度技術詳解

概述在前面對 PolkaVM 和 Revive 的文章中&#xff0c;我們介紹了很多技術細節&#xff0c;開發工具。還對比 EVM&#xff0c;知道了 PolkaVM 的優勢。很多同學還是對 Polkadot SDK 為什么可以運行 EVM 兼容的智能合約&#xff0c;以及交易處理的整個流程不太清楚。這篇文章將會…

【算法訓練營Day17】二叉樹part7

文章目錄二叉樹的最近公共祖先二叉搜索樹的最近公共祖先二叉搜索樹中的插入操作刪除二叉搜索樹中的節點二叉樹的最近公共祖先 題目鏈接&#xff1a;236. 二叉樹的最近公共祖先 解題邏輯&#xff1a; 最近公共祖先的定義為&#xff1a;對于有根樹 T 的兩個節點 p、q&#xff0c…

Vue插件與組件核心區別詳解

在 Vue 中&#xff0c;插件&#xff08;Plugin&#xff09; 和 組件&#xff08;Component&#xff09; 是兩種不同層次的概念&#xff0c;它們的主要區別如下&#xff1a;1. 組件 (Component) 定義&#xff1a; Vue 應用的基本構建單元&#xff0c;是可復用的 Vue 實例&#x…

基礎NLP | 02 深度學習基本原理

文章目錄 深度學習基本原理 數學基礎 線代 numpy 常用操作 導數, 梯度 梯度下降法 梯度下降代碼 GradientDescent.py 反向傳播 完整的反向傳播過程 權重更新方式 pytorch 網絡結構 全連接層 (線性層) 例子 - 手動實現模擬一個線性層 DNNforward.py 激活函數 激活函數-Sigmoid…

MySQL面試題及詳細答案 155道(001-020)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

Ansible安裝與入門

目錄 Ansible ansible任務執行模式 ansible執行流程 ansible命令執行過程&#xff08;背會&#xff09; ansible的安裝方式 ansible的程序結構&#xff08;yum安裝為例&#xff09; ansible的配置文件查找順序&#xff08;背會&#xff09; 核心配置文件 ansible的配置…

【Spring】Spring Boot啟動過程源碼解析

目錄 一、啟動入口 二、SpringApplication的構造過程 2.1 設置應用類型 2.2 設置初始化器&#xff08;Initializer&#xff09; 2.2.1 獲取BootstrapRegistryInitializer對象 2.2.2 獲取ApplicationContextInitializer對象 2.3 設置監聽器&#xff08;Listener&#xff…

CDN架構全景圖

CDN架構全景圖 CDN&#xff08;內容分發網絡&#xff09;是一種通過在全球范圍內部署邊緣節點服務器&#xff0c;將內容緩存至離用戶最近的位置&#xff0c;從而加速內容分發、降低延遲并減輕源站壓力的分布式網絡架構。其核心設計目標是優化互聯網內容傳輸效率&#xff0c;提升…

【pytest高階】源碼的走讀方法及插件hook

一、pytest源碼走讀方法 依賴庫認知篇 &#x1f4e6;這是理解 pytest 源碼的 “前菜”&#xff0c;先認識 3 個超重要的小伙伴&#xff1a;iniconfig &#x1f4c4;&#xff1a;像個 “文件小管家”&#xff0c;專門負責讀取 ini 配置文件&#xff08;比如 pytest 的配置&#…

算法訓練營day32 動態規劃理論基礎、509. 斐波那契數、70. 爬樓梯、746. 使用最小花費爬樓梯

今天開始動態規劃的部分&#xff01; 其實說白了&#xff0c;動態規劃我感覺就是找類似遞歸的規律&#xff0c; 動態規劃理論基礎 動態規劃&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;簡稱DP&#xff0c;如果某一問題有很多重疊子問題&#xff0c;使用動態規…