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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java常用类(一)

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

歡迎大家訪問(wèn)我的工作室官網(wǎng)和建站官網(wǎng)哦。

  • 包裝類
    一、為什么需要 包裝類?
    JAVA并不是純面向?qū)ο蟮恼Z(yǔ)言。Java語(yǔ)言是一個(gè)面向?qū)ο蟮恼Z(yǔ)言,但是Java中的基本數(shù)據(jù)類型卻
    是不面向?qū)ο蟮摹5俏覀冊(cè)趯?shí)際使用中經(jīng)常需要將基本數(shù)據(jù)轉(zhuǎn)化成對(duì)象,便于操作。比如:
    集合的操作中。 這時(shí),我們就需要將基本類型數(shù)據(jù)轉(zhuǎn)化成對(duì)象!
    二、包裝類均位于java.lang包,包裝類和基本數(shù)據(jù)類型的對(duì)應(yīng)關(guān)系:
基本數(shù)據(jù)類型包裝類
byteByte
booleanBoolean
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
三、包裝類的作用:

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

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

int類型最大的整數(shù):2147483647

  • 自動(dòng)裝箱和自動(dòng)拆箱
    一、 自動(dòng)裝箱-boxing就是自動(dòng)將基本數(shù)據(jù)類型轉(zhuǎn)換為包裝器類型;

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

二、自動(dòng)拆箱autounboxing就是自動(dòng)將包裝器類型轉(zhuǎn)換為基本數(shù)據(jù)類型。

包裝類對(duì)象自動(dòng)轉(zhuǎn)換成基本類型數(shù)據(jù)。如:
int a = new Integer(100);
本質(zhì)上,編譯器編譯時(shí)為我們添加了:
int a = new Integer(100).intValue();

看下面代碼 測(cè)試自動(dòng)裝箱、自動(dòng)拆箱

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

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

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非常類似,均代表可變的字符序列,而且方法也一樣
/*** 測(cè)試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);} } /*** 測(cè)試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, '愛(ài)').insert(10, '你'); //鏈?zhǔn)秸{(diào)用。核心就是:該方法調(diào)用了return this,把自己返回了。System.out.println(sb);sb.delete(20, 23);System.out.println(sb);} }

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

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

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

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。