日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

相关类以及常用方法

發布時間:2023/12/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 相关类以及常用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、system(系統相關類)

常用方法:

a)?????? : system.arraycopy(制定數組,開始復制的位置,目標數組,開始粘貼的位置,需要復制的長度)

將指定源數組中的數組從指定位置復制到目標數組的指定位置。

a)?????? :System.currentTimeMIllis返回當前時間(以毫秒為單位)。

該方法返回值類型為long 所以調用結果用long類型變量接收。

b)?????? System.exitint status)終止當前最正在運行的Java虛擬機,參數作狀態碼,按照慣例非0表示異常終止。

2、(數學相關類)

. Math

a)?????? MathMath類包含執行基本數字運算的方法,如基本指數,對數,平方根和三角函數。

隨機數生成: double random();返回帶正號的 double 值,該值大于等于 0.0 且小于 1.0。返回值是一個偽隨機選擇的數,在該范圍內(近似)均勻分布。需要生成隨機數的范圍0-X,便在隨機數后面*X然后進行強制轉換.

b)?????? BigDecimalfloat/double都不能表示精確的小數,此時使用BigDecimal,用于處理經前和精度要求較高的數據。

c)?????? BigInteger表示大整數,如果兩個long類型的足大指運算,結果long儲存不下,此時使用BigInteger,一般不用。(因為long的數據范圍已經夠大了)

加減乘除方法和bigdecimal相同。

. Random

?

隨機數生成: nextInt(int n) 返回一個偽隨機數,它是取自此隨機數生成器序列的、在 0(包括)和指定值(不包括)之間均勻分布的 int 值

?

3、字符串相關類

字符串的分類:

不可變的字符串:(String)當對象創建完畢之后,該對象的內容是不可改變的。一旦內容改變就是一個新的對象。

可變的字符串:(StringBuilder/StringBuffer),當對象創建完畢之后,該對象的內容發生改變的時候,對象保持不變。

一、String類:不可變的字符串。內容改變后相對應的內存地址也改變了。所以就相當于一個新的對象。

常量池:抓們儲存常量的地方,都指的方法區中。

編譯常量池:把字節碼加載進JVM的時候,儲存的是字節碼的相關信息。

運行常量池:儲存常量數據(研究)。

-------------------------------------------------------------------------------

面試題:

1、下列代碼中分別創建了幾個String對象

String? str?? =? “asdf”;?????

最多創建一個String對象,最少不創建String對象

如果在常量池中已經存在“asdf”,那么str直接引用,此時不創建String對象。

否則,現在常量池創建“asdf”內存空間,在引用。

String? str1? =? new? String(“asdf”);

最多創建兩個String對象,至少創建一個string對象。

New關鍵字:絕對會在堆空間創建內存區域,所以至少創建一個對象。

2:判斷下列代碼創建了幾個String對象,彼此直接是否相等.

?? String str1 = "ABCD";

?? String str2 = "A" +"B"+"C"+"D";? 編譯器優化之后,該代碼等價于 str1.

?? String str3 = "AB"+"CD";

?? String c = "CD";

?? String str4 = "AB" + c;

?? String str5 = "AB" + getXX();? (備注:getXX方法返回"CD");

?? String str6 = new String(“ABCD”)

==判斷:?? str1 == str2 ? // true

str1 == str3 ??? //true

str1 == str4 ??? //false

str1 == str5 ??? //false

str1 == str6 ??? //false

-----------------------------

?

String對象比較:

?1):單獨使用""引號創建的字符串都是直接量,編譯期就已經確定存儲到常量池中;

?2):使用new String("")創建的對象會存儲到堆內存中,是運行期才創建;

?3):使用只包含直接量的字符串連接符如"aa" + "bb"創建的也是直接量編譯期就能確定,已經確定存儲到常量池中;

?4):使用包含String直接量(final修飾符)的字符串表達式("aa" + s1)創建的對象是運行期才創建的,存儲在堆中;

通過變量/調用方法去連接字符串,都只能在運行時期才能確定環境變量的值和方法的返回值,不存在編譯優化操作。

-----------------------------

比較字符串: ?==:只能比較內存地址,若要比較內容:equals.

?

String類中的常用方法:

?

public class StringDome {
public static void main(String[] args) {
String str1 = "ABCD";
String str2 = "A" +"B"+"C"+"D"; //編譯器優化之后,該代碼等價于 str1.
String str3 = "AB"+"CD";
String c = "CD";
String str4 = "AB" + c;
String str5 = "AB" + getXX(); //(備注:getXX方法返回"CD");
String str6 = new String("ABCD");
//用==判斷:
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); //true
System.out.println(str1 == str4 ); //false
System.out.println(str1 == str5); //false
System.out.println(str1 == str6); //false
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
System.out.println(str1.equals(str4)); // true
System.out.println(str1.equals(str5)); // true
System.out.println(str1.equals(str6)); // true
String name ="";
System.out.println(StringUtil.judgeString(name));

}

private static String getXX() {

return "CD";
}
}

---------------------------------------------------------------------------------------------------------------------------------

public class StringDome2 {

public static void main(String[] args) {
testString();
gainStringPrice();
capitalized();

}
private static void capitalized() {
/**
* toLowerCase() 將所有在此字符 String使用默認語言環境的規則,以小寫。
* toUpperCase() 將所有在此字符 String使用默認語言環境的規則大寫。
*/
System.out.println("ASSxsdfhsDSF".toLowerCase());
System.out.println("ASSxsdfhsDSF".toUpperCase());

}
private static void gainStringPrice() {
/**
* 獲取字符串信息:
* int length();獲取字符串長度
* char charAt(int index);返回index索引處的值。
* int index (String str);返回指定子字符串第一次出現的字符串內的索引。
* int lastIndexOf(int ch)返回指定字符的最后一次出現的字符串中的索引。
*/
String read = "ASDFGHJKDL";
System.out.println(read.length());
System.out.println(read.charAt(2));
System.out.println(read.indexOf("DF"));
System.out.println(read.lastIndexOf("KD"));

}
/**
* 把String字符串轉換成byte數組 Byte [] a = getBytes(x);
* 把String字符串轉換成char數組 Byte [] a = x.toCharArray();
* 把byte數組轉換成String字符串 String x = new String(byte數組名);
* 把char數組轉換成String字符串 String x = new String(char數組名);
*/

private static void testString() {
//byte數組與String之間的相互轉換。
byte [] a = {'3','b','d','f','9'};
String x = new String(a);
System.out.println(x);
byte [] b = x.getBytes();
System.out.println(Arrays.toString(b));
//char數組與String之間的相互轉換
char [] c = {'a','s','d','f'};
x = new String(c);
System.out.println(x);
char []ds = x.toCharArray();
System.out.println(Arrays.toString(ds));

}

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

判斷字符串是否包含指定字符串

??????? boolean contains(CharSequence?s)//CharSequence此處代表字符串 ??????? int indexOf(String str);返回字符串出現的第一次的索引,字符串里沒有指定的字符串則返回-1.

?

分別用StringStringBuiderStringBuffer拼接50000次字符串,對比各自損耗的時間。

經過測試:

String做字符拼接的時候性能極低,原因是string是不可變的,內次內容改變都會在內存中創建新的對象。

String 耗時1315ms

StringBuider 耗時 1ms

StringBuffer 耗時 3ms

結論:以后拼接字符,統統使用StringBuider / StringBuffer,不要使用string.

?

StringBuider 和 StringBuffer都表示可變的字符串,功能方法都是相同的。

唯一區別:

StringBuffer :StringBuffer中的方法名都使用了synchronized修飾符,表示同步的,在多線程并發的時候可以保證線程安全。(保證線程安全,性能也就降低了)

StringBuider(建議使用):StringBuider中的方法沒有使用synchronized修飾。不安全,但是性能較高。

使用StringBuider無參數構造器,在底層創建了一個長度為16的char數組。

Char [] array = new StringBuider(16);

此時該數組只能儲存16個字符,如果超過了得自動擴容。

自動擴容(創建長度更大的數組,在把之前的數組拷貝到新數組)

用Stringbuider創建一個長度為60的char數組:

char [] arr = new StringBuider(60);

---------------------------

常用方法:

1、append(Object obj):表示增加任意數據類型。

2、insert(int offset,Object obj)將 Object 參數的字符串表示形式插入此字符序列中。

3、StringBuffer delete(int start,int end) 刪除此序列的子字符串中的字符。 子串開始于指定start并延伸到字符索引end - 1 ,或如果沒有這樣的字符存在的序列的結束。 如果start等于end ,則不作任何更改。

?

轉載于:https://www.cnblogs.com/it-xiaoBai/p/8081350.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的相关类以及常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。