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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java常用类(一)

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java常用类(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎大家訪問我的工作室官網和建站官網哦。

  • 包裝類
    一、為什么需要 包裝類?
    JAVA并不是純面向對象的語言。Java語言是一個面向對象的語言,但是Java中的基本數據類型卻
    是不面向對象的。但是我們在實際使用中經常需要將基本數據轉化成對象,便于操作。比如:
    集合的操作中。 這時,我們就需要將基本類型數據轉化成對象!
    二、包裝類均位于java.lang包,包裝類和基本數據類型的對應關系:
基本數據類型包裝類
byteByte
booleanBoolean
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
三、包裝類的作用:

①提供:字符串、基本類型數據、對象之間互相轉化的方式!
②包含每種基本數據類型的相關屬性如最大值、最小值等
③所有的包裝類(Wrapper Class)都有類似的方法,掌握一個其他都類似!

package com.qhit.test;/*** 測試包裝類* Integer類的使用。其他包裝類用法類似。* @author 梁雪**/ public class TestWrappedClass {public static void main(String[] args) {//基本數據類型轉成包裝類對象Integer a = new Integer(3);Integer b = Integer.valueOf(30); //把包裝類對象轉成基本數據類型int c = b.intValue();double d = b.doubleValue();//把字符串轉成包裝類對象Integer e = new Integer("9999");Integer f = Integer.parseInt("999888");//把包裝類對象轉成字符串String str = f.toString(); //""+f//常見的常量System.out.println("int類型最大的整數:"+Integer.MAX_VALUE);} }

int類型最大的整數:2147483647

  • 自動裝箱和自動拆箱
    一、 自動裝箱-boxing就是自動將基本數據類型轉換為包裝器類型;

基本類型就自動地封裝到與它相同類型的包裝中
Integer i = 100;
本質上是,編譯器編譯時為我們添加了: Integer i = Integer.valueOf(100);

二、自動拆箱autounboxing就是自動將包裝器類型轉換為基本數據類型。

包裝類對象自動轉換成基本類型數據。如:
int a = new Integer(100);
本質上,編譯器編譯時為我們添加了:
int a = new Integer(100).intValue();

看下面代碼 測試自動裝箱、自動拆箱

/*** 測試自動裝箱、自動拆箱* @author 梁雪**/ public class TestAutoBox {public static void main(String[] args) {Integer a = 234; //自動裝箱。Integer a = Integer.valueOf(234);int b = a; //自動拆箱。編譯器會修改成:int b = a.intValue();Integer c = null; // if(c!=null){ // int d = c; //自動拆箱:調用了:c.intValue() // }//緩存[-128,127]之間的數字。實際就是系統初始的時候,創建了[-128,127]之間的一個緩存數組。//當我們調用valueOf()的時候,首先檢查是否在[-128,127]之間,如果在這個范圍則直接從緩存數組中拿出已經建好的對象//如果不在這個范圍,則創建新的Integer對象。Integer in1 = Integer.valueOf(-128); Integer in2 = -128;System.out.println(in1 == in2);//true 因為123在緩存范圍內System.out.println(in1.equals(in2));//trueSystem.out.println("################");Integer in3 = 1234;Integer in4 = 1234;System.out.println(in3 == in4);//false 因為1234不在緩存范圍內System.out.println(in3.equals(in4));//true} }
  • 字符串相關類String
    一、String(不可變字符序列)
    ①Java字符串就是Unicode字符序列,例如串“Java”就是4個Unicode字符J,a,v,a組成的。
    ②Java字符串就是Unicode字符序列,例如串“Java”就是4個Unicode字符J,a,v,a組成的。
    ③Java允許使用符號"+"把兩個字符串連接起來
String s1 = “Hello”;String s2 = “World!”; String s = s1 + s2; //HelloWorld!

二、String類的常用方法
? char charAt(int index)
返回字符串中第index個字符。
? boolean equals(String other)
如果字符串與other相等,返回true
? boolean equalsIgnoreCase(String other)
如果字符串與other相等(忽略大小寫),則返回true
? int indexOf(String str) lastIndexOf() ? int length()
返回字符串的長度。
? String replace(char oldChar,char newChar)
返回一個新串它是通過用 newChar 替換此字符串中出現的所有oldChar而生
? boolean startsWith(String prefix)
如果字符串以prefix開始,則返回true
? boolean endsWith(String prefix)
如果字符串以prefix結尾,則返回true
? String substring(int beginIndex) ? String substring(int beginIndex,int endIndex)
返回一個新字符串,該串包含從原始字符串beginIndex到串尾或endIndex-1的所有字符
? String toLowerCase()
返回一個新字符串,該串將原始字符串中的所有大寫字母改成小寫字母
? String toUpperCase()
返回一個新字符串,該串將原始字符串中的所有小寫字母改成大寫字母
? String trim()
返回一個新字符串,該串刪除了原始字符串頭部和尾部的空格
三、字符串相等的判斷(一般使用equals方法)
equals判斷字符串值相等,==判斷字符串對象引用相等!

public class StringTest3 { 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 System.out.println(s1==s3); //false System.out.println(s3==s4); //false } }
  • StringBuffe和StringBuilder
    StringBuffer和StringBuilder非常類似,均代表可變的字符序列,而且方法也一樣
/*** 測試StringBuilder、StringBuffer可變字符序列* @author 梁雪**/ public class TestStringBuilder {public static void main(String[] args) {String str;//StringBuilder線程不安全,效率高(一般使用它);StringBuffer線程安全,效率低。StringBuilder sb = new StringBuilder("abcdefg");System.out.println(Integer.toHexString(sb.hashCode())); System.out.println(sb);sb.setCharAt(2, 'M');System.out.println(Integer.toHexString(sb.hashCode())); System.out.println(sb);} } /*** 測試StringBuilder、StringBuffer可變字符序列的常用方法.* @author 梁雪**/ public class TestStringBuilder2 {public static void main(String[] args) {StringBuilder sb = new StringBuilder();for(int i=0;i<26;i++){char temp = (char)('a'+i);sb.append(temp);}System.out.println(sb);sb.reverse(); //倒序System.out.println(sb);sb.setCharAt(3, '高');System.out.println(sb);sb.insert(0, '我').insert(6, '愛').insert(10, '你'); //鏈式調用。核心就是:該方法調用了return this,把自己返回了。System.out.println(sb);sb.delete(20, 23);System.out.println(sb);} }

字符串選用
String:不可變字符序列
StringBuilder:可變字符序列、效率高、線程不安全
StringBuilder:可變字符序列、效率低、線程安全
String使用陷阱:

string s="a"; //創建了一個字符串 s=s+"b";/*實際上原來的"a"字符串對象已經丟棄了,現在又產生了一個字符串s+"b"。如果多次執 行這些改變串內容的操作,會導致大量副本字符串對象存留在內存中,降低效率。如果這樣的 操作放到循環中,會極大影響程序的性能。*/ package cn.sxt.test;/*** 測試可變字符序列和不可變字符序列使用的陷阱* * @author 梁雪**/ public class TestStringBuilder3 {public static void main(String[] args) {/** 使用String進行字符串的拼接 */String str8 = "";// 本質上使用StringBuilder拼接, 但是每次循環都會生成一個StringBuilder對象long num1 = Runtime.getRuntime().freeMemory();// 獲取系統剩余內存空間long time1 = System.currentTimeMillis();// 獲取系統的當前時間for (int i = 0; i < 5000; i++) {str8 = str8 + i;// 相當于產生了10000個對象}long num2 = Runtime.getRuntime().freeMemory();long time2 = System.currentTimeMillis();System.out.println("String占用內存 : " + (num1 - num2));System.out.println("String占用時間 : " + (time2 - time1));/** 使用StringBuilder進行字符串的拼接 */StringBuilder sb1 = new StringBuilder("");long num3 = Runtime.getRuntime().freeMemory();long time3 = System.currentTimeMillis();for (int i = 0; i < 5000; i++) {sb1.append(i);}long num4 = Runtime.getRuntime().freeMemory();long time4 = System.currentTimeMillis();System.out.println("StringBuilder占用內存 : " + (num3 - num4));System.out.println("StringBuilder占用時間 : " + (time4 - time3));} }

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
寫在最后:如果大家需要各類資源,可以到我的主頁看一下哦,總有一款你需要的哦

總結

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

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