Java之一文詳解String字符串的用法
一. String字符串簡(jiǎn)介
1. 概述
String是Java里的一個(gè)類(lèi),屬于引用類(lèi)型,遵循引用類(lèi)型的基本規(guī)律和要求。但它也有自己的一些特點(diǎn),比如可以直接用雙引號(hào)"......"來(lái)表示一個(gè)字符串,所以凡是用雙引號(hào)括起來(lái)的一串字符都是String對(duì)象,如“Hello”在編譯后就會(huì)成為一個(gè)String對(duì)象。
而且String是final類(lèi),一旦創(chuàng)建了一個(gè)String對(duì)象,理論上就不能再被改變,當(dāng)然我們可以使用其他變量重新賦值的方式進(jìn)行更改。
另外從名字上我們也可以猜測(cè)出,字符串與字符有一定的關(guān)系。實(shí)際上,String字符串的內(nèi)部是通過(guò)一個(gè)private final char[]數(shù)組
來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的,所以我們可以通過(guò)如下方式來(lái)表示一個(gè)字符串:
String str = new String(new char[] {'H', 'e', 'l', 'l', 'o', 'y', 'y', 'g'});
當(dāng)然,以上這種字符串的表達(dá)方式太過(guò)麻煩,而且由于String太常用了,所以Java就提供了"......"這種極簡(jiǎn)的表達(dá)方式供我們使用。
我們要知道,Java字符串的一個(gè)重要特點(diǎn)就是字符串的不可變性。這種不可變主要是通過(guò)final修飾String類(lèi),private final char[]
字段對(duì)數(shù)據(jù)的存儲(chǔ),且沒(méi)有提供任何可以修改char[]字段的方法來(lái)實(shí)現(xiàn)的。
2. 與字符的區(qū)別
壹哥之前給大家講過(guò)java里的8種基本數(shù)據(jù)類(lèi)型,我們知道,其中有一種比較特殊的char字符類(lèi)型,可以在單引號(hào)中存儲(chǔ)單個(gè)的字符元素,比如'A'、'9'、'國(guó)' 等。而我們今天要學(xué)習(xí)的String類(lèi),則是用雙引號(hào)"..."來(lái)表達(dá)字符串的。作為初學(xué)者,我們一定要注意字符與字符串的區(qū)別:
- 字符只能表示單個(gè)字符元素,必須用單引號(hào)''把單個(gè)的字符元素括起來(lái),如'A'、'9'、'國(guó)' 等;
- 字符串可以表示單個(gè)或多個(gè)字符元素,必須用雙引號(hào)把單個(gè)或多個(gè)字符元素括起來(lái),如"A"、"Hi"、"中國(guó)"等;
- 字符是基本類(lèi)型,其本質(zhì)是一種數(shù)值;字符串是引用類(lèi)型,其本質(zhì)是一個(gè)java類(lèi)。
3. 定義方式
String字符串的定義方式,常用的有如下兩種:
通過(guò)構(gòu)造方法創(chuàng)建字符串對(duì)象;
直接賦值。
我們?cè)陂_(kāi)發(fā)時(shí),其實(shí)很少使用第一種方式,因?yàn)樘^(guò)啰嗦,一般都是通過(guò)直接賦值的方式進(jìn)行定義。
3.1 構(gòu)造方法定義
Java為String類(lèi)提供了11個(gè)構(gòu)造方法創(chuàng)建String對(duì)象,這些方法提供了不同的參數(shù)來(lái)初始化字符串。當(dāng)字符串變量被創(chuàng)建處理后,必須經(jīng)過(guò)初始化才能使用。下面是通過(guò)構(gòu)造方法定義String對(duì)象的幾種方式,大家可以參考:
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo01 { public static void main(String[] args) { //通過(guò)構(gòu)造方法創(chuàng)建String對(duì)象 //構(gòu)造一個(gè)空字符串,相當(dāng)于String s1=""; String s1=new String(); System.out.println("s1的長(zhǎng)度="+s1.length()+",s1="+s1); //構(gòu)造一個(gè)由內(nèi)容的字符串,相當(dāng)于String s1 = "一一哥"; String s2 = new String("跟一一哥學(xué)Java"); System.out.println("s2的長(zhǎng)度="+s2.length()+",s2="+s2); //通過(guò)字節(jié)數(shù)組構(gòu)建字符串對(duì)象 byte[] b = {97,98,99,100}; String s3=new String(b); System.out.println("s3的長(zhǎng)度="+s3.length()+",s3="+s3); //通過(guò)字節(jié)數(shù)組構(gòu)建字符串對(duì)象 //參數(shù)1:字節(jié)數(shù)組;參數(shù)2:起始下標(biāo);參數(shù)3:長(zhǎng)度 String s4 = new String(b, 0, b.length); System.out.println("s4的長(zhǎng)度="+s4.length()+",s4="+s4); //通過(guò)字符數(shù)組創(chuàng)建字符串對(duì)象 char[] c = {'一','一','哥'}; String s5 = new String(c, 0, c.length); System.out.println("s5的長(zhǎng)度="+s5.length()+",s5="+s5); } }
3.2 直接賦值定義
下面是通過(guò)直接賦值的方式來(lái)定義String對(duì)象的方式,大家可以參考:
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo02 { public static void main(String[] args) { //直接賦值的方式創(chuàng)建String對(duì)象 //注意:null表示String對(duì)象為空,而""表示一個(gè)長(zhǎng)度為零、內(nèi)容為空的空字符串對(duì)象,但該對(duì)象不為空 //定義一個(gè)值為null的空字符串 String s1=null; System.out.println("s1="+s1); //定義一個(gè)內(nèi)容為空,長(zhǎng)度為零的字符串 String s2 = ""; System.out.println("s2的長(zhǎng)度="+s2.length()+",s22="+s2); //定義一個(gè)帶有內(nèi)容的字符串 String s3 = "一一哥"; System.out.println("s3的長(zhǎng)度="+s3.length()+",s3="+s3); } }
我們要注意String s=null
與String s=""
的區(qū)別:
String s=null
表示String對(duì)象為空,即字符串對(duì)象的引用指向了null,還沒(méi)有指向任何的內(nèi)存空間;String s=""
是聲明了一個(gè)字符串類(lèi)型的引用,其值為"",表示是一個(gè)長(zhǎng)度為零、內(nèi)容為空的空字符串對(duì)象,但該對(duì)象不為空! 這個(gè)s對(duì)象的引用指向的是空字符串的內(nèi)存空間。
以上內(nèi)容,是對(duì)字符串定義和使用的常規(guī)操作,但實(shí)際上String字符串還有其他很多有用的方法,接下來(lái)壹哥就專(zhuān)門(mén)給大家介紹一下這些實(shí)用方法。
二. 字符串實(shí)用方法
1. 字符串的比較方法
在Java中,如果我們想比較兩個(gè)字符串,其實(shí)主要是比較兩個(gè)字符串的內(nèi)容是否相同,所以應(yīng)該使用 equals() 方法,而不要使用 == 進(jìn)行比較。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo04 { public static void main(String[] args) { String s1 = "hello"; String s2 = "hello"; //==用于比較兩個(gè)對(duì)象的地址 System.out.println("s1==s2的結(jié)果:"+(s1 == s2)); //equals()用于比較兩個(gè)對(duì)象的內(nèi)容 System.out.println("s1.equals(s2)的結(jié)果:"+s1.equals(s2)); } }
大家注意,在上面的案例中,雖然使用==和equals()比較的結(jié)果都是true,但實(shí)際上這只是”湊巧“罷了。在本案例中,之所以使用”==“進(jìn)行比較的結(jié)果也是true,這是因?yàn)镴ava編譯器在編譯期,自動(dòng)把所有相同內(nèi)容的字符串當(dāng)作一個(gè)對(duì)象放入到了字符串常量池。所以s1和s2都指向了同一個(gè)引用地址,結(jié)果自然就是相同的。但如果我們把上述案例換一種寫(xiě)法,再利用”==“進(jìn)行比較就不是這樣的結(jié)果。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo04 { public static void main(String[] args) { //新的寫(xiě)法 String s3 = "yiyige"; //將字符串轉(zhuǎn)為小寫(xiě) String s4 = "YIYIGE".toLowerCase(); //此時(shí)s3和s4是指向兩個(gè)不同引用地址的對(duì)象 System.out.println("s3==s4的結(jié)果:"+(s3 == s4)); System.out.println("s3.equals(s4)的結(jié)果:"+s3.equals(s4)); } }
從上面的案例中,我們可以得出一個(gè)結(jié)論,要想比較兩個(gè)字符串,應(yīng)該使用 equals() 方法,而不是"=="方法!
2. 判斷字符串是否為空
另外在前面的代碼案例中,壹哥還給大家介紹了兩種定義String字符串對(duì)象的方式,并在第2種方式中給大家提到了null與""兩種為空的情況。而我們?cè)趯?shí)際開(kāi)發(fā)中,判斷一個(gè)字符串對(duì)象是null與"",其實(shí)是一種非常常見(jiàn)的操作,那么我們?cè)撛趺磁袛郤tring對(duì)象是否是null或""呢?
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo03 { public static void main(String[] args) { //判斷字符串對(duì)象是否為null或"" //注意null表示String對(duì)象為空,而""表示是一個(gè)長(zhǎng)度為零、內(nèi)容為空的空字符串對(duì)象,但該對(duì)象不為空 //定義一個(gè)值為null的空字符串 String s1=null; //判斷方式1:判斷對(duì)象是否為null if(s1==null) { System.out.println("s1字符串對(duì)象為null,s1="+s1); } //定義一個(gè)內(nèi)容為空,長(zhǎng)度為零的字符串 String s2 = ""; //判斷方式2:這種判斷寫(xiě)法存在異常隱患,字符串對(duì)象s2有可能為null,如果s2.equals()調(diào)用時(shí),s2可能為null,此時(shí)就會(huì)出現(xiàn)空指針異常 if(s2.equals("")) { System.out.println("s2的長(zhǎng)度="+s2.length()+",s2="+s2); } //判斷方式3:對(duì)上面的判斷方式進(jìn)行改進(jìn),用以下方式進(jìn)行判斷,就會(huì)消除空指針異常的隱患 if("".equals(s2)) { System.out.println("s2的長(zhǎng)度="+s2.length()+",s2="+s2); } //判斷方式4:判斷一個(gè)空串的長(zhǎng)度是否為0,這種判斷字符串是否為空的方式效率更高 if(s2.length()==0) { //我們也可以直接使用字符串的isEmpty()方法,其內(nèi)部實(shí)現(xiàn)與此方式相同。 System.out.println("s2的長(zhǎng)度="+s2.length()+",s2="+s2); } //判斷方式5:更全面嚴(yán)謹(jǐn)?shù)呐袛?。s==null一定要寫(xiě)在前面,因?yàn)槿绻鹲為null,先調(diào)用后面的s.length()就會(huì)出現(xiàn)空指針異常 if(s2 == null || s2.length() == 0) { System.out.println("s2的長(zhǎng)度="+s2.length()+",s2="+s2); } //判斷方式6:或者我們直接使用字符串的isBlank()方法 if(s2.isBlank()) { System.out.println("s2的長(zhǎng)度="+s2.length()+",s2="+s2); } } }
在實(shí)際開(kāi)發(fā)時(shí),我們一般是采用第5種判斷方式,這種判斷方式更為嚴(yán)謹(jǐn),能夠把兩種”為空“的情況都考慮到。當(dāng)然,我們也可以直接使用字符串對(duì)象提供的isEmpty()或isBlank()方法,進(jìn)行判空。另外我們要特別注意,防止出現(xiàn)空指針異常,并且也要考慮采用哪種方式判斷為空的情況效率更高。
3. 判斷相關(guān)的方法
String字符串中提供了幾個(gè)與字符串判斷相關(guān)的方法,可以對(duì)一個(gè)字符串進(jìn)行各種判斷,這幾個(gè)方法如下:
- equals(): 判斷兩個(gè)字符串的內(nèi)容是否相同;
- equalsIgnoreCase(): 判斷兩個(gè)字符串是否相等,忽略大小寫(xiě);
- isEmpty(): 判斷字符串是否為空串"",主要是判斷字符串長(zhǎng)度是否為0;
- isBlank(): 判斷字符串是否為空串"",主要是判斷字符串中是否包含空白字符;
- startsWith(): 判斷字符串是否以指定的字符串開(kāi)頭;
- endsWith(): 判斷字符串是否以指定的字符串結(jié)尾;
- contains(): 判斷字符串中是否包含指定的字符串,參數(shù)是CharSequence類(lèi)型,而不是String。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo05 { public static void main(String[] args) { String s1 = "yiyige"; //判斷兩個(gè)字符串的內(nèi)容是否相同 System.out.println("yiYige".equals(s1)); //判斷兩個(gè)字符串是否相等,忽略大小寫(xiě) System.out.println("yiyige".equalsIgnoreCase(s1)); //判斷字符串是否為空,或是否有空白字符 //長(zhǎng)度為0,字符串為空 String s2=""; //長(zhǎng)度不是0,字符串不為空 String s3=" "; //長(zhǎng)度不是0,字符串不為空 String s4=" \n"; //判斷字符串是否為空串"" System.out.println("s2為空嗎?"+s2.isEmpty());//true System.out.println("s3為空嗎?"+s3.isEmpty());//false System.out.println("s4為空嗎?"+s4.isEmpty());//false //判斷字符串是否是空串或有空白字符 System.out.println("s2為空嗎?"+s2.isBlank());//true System.out.println("s3為空嗎?"+s3.isBlank());//true System.out.println("s4為空嗎?"+s4.isBlank());//true String s5 = "1234567890123"; //判斷字符串是否以指定的字符開(kāi)頭 System.out.println(s5.startsWith("12")); //判斷字符串是否以指定的字符串開(kāi)頭,并指定開(kāi)始位置 System.out.println(s5.startsWith("34", 2)); //判斷字符串是否以指定的字符串結(jié)尾 System.out.println(s5.endsWith("23")); //判斷字符串中是否包含指定的字符串 System.out.println(s5.contains("SB")); } }
4. 獲取相關(guān)的方法
String字符串中提供了幾個(gè)與字符串獲取相關(guān)的方法,這幾個(gè)方法如下:
- charAt(): 獲取指定下標(biāo)位置上對(duì)應(yīng)的字符,并返回char類(lèi)型;
- indexOf(): 獲取指定字符串在原字符串中的下標(biāo)索引位置,如果不包含該字符串則返回-1;
- lastIndexOf() :該方法與indexOf()類(lèi)似,但該方法是從后往前找,找到指定字符最后出現(xiàn)的位置;
- length(): 該方法用于返回字符串對(duì)象中包含的字符數(shù)量,即可以獲取字符串的長(zhǎng)度。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo06 { public static void main(String[] args) { String s1 = "abcn12c3fcds"; //charAt(index),獲取指定下標(biāo)位置上對(duì)應(yīng)的字符,并返回char類(lèi)型 System.out.println("下標(biāo)索引位置3上的字符是:"+s1.charAt(3)); //indexOf("字符串"),獲取指定字符串在原字符串中的下標(biāo)位置,如果不包含該字符串則返回-1 System.out.println("字符串的索引位置是:"+s1.indexOf("cn2")); //lastIndexOf("字符串"),與indexOf()方法類(lèi)似,區(qū)別是該方法是從后往前找,找到指定字符最后出現(xiàn)的位置 System.out.println("指定字符的索引為:"+s1.lastIndexOf("c")); //length(),獲取字符串的長(zhǎng)度 System.out.println("字符串的長(zhǎng)度是:"+s1.length()); } }
5. 拼接、替換、截取、分割、去空格等方法
String字符串中提供了拼接、替換、截取、分割等方法,這幾個(gè)方法如下:
- concat(): 將某個(gè)字符串連接到該字符串的結(jié)尾,并返回拼接后的字符串,相當(dāng)于s1 = s1 + "world";
- join(): 用指定的字符串連接字符串?dāng)?shù)組;
- replace(): 將字符串中指定的字符串替換成指定的字符串;
- replaceAll() :利用正則表達(dá)式,將字符串中指定的字符串替換成指定的字符串;
- substring(start,end): 字符串截取,從指定的下標(biāo)索引開(kāi)始和結(jié)束,范圍是左閉右開(kāi),注意索引是從0開(kāi)始;
- substring(index) : 字符串截取,從指定的索引下標(biāo)開(kāi)始一直截取到字符串的最后;
- split(): 字符串切割,按照指定的字符串對(duì)原字符串進(jìn)行切割;
- trim() :不改變?cè)凶址畠?nèi)容,只是去除字符串首尾的空白字符,包括空格、\t、\r、\n。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo07 { public static void main(String[] args) { //用指定的字符串連接字符串?dāng)?shù)組 String[] arr = {"A", "B", "C"}; String str = String.join("***", arr); // "A***B***C" System.out.println("新的字符串str="+str); String s1 = "hello,SB"; //將字符串與指定的字符串進(jìn)行拼接,相當(dāng)于s1 = s1 + "world"; s1 = s1.concat("world"); System.out.println("新的字符串="+s1); //字符串替換:將字符串中指定的字符串替換成指定的字符串 s1 = s1.replace("SB", "**"); System.out.println("新的字符串="+s1); String s2 = "A,,B;C ,D"; //利用正則表達(dá)式,將字符串中指定的字符串替換成指定的字符串; //通過(guò)正則表達(dá)式,把匹配的子串統(tǒng)一替換為"," s2 = s2.replaceAll("[\,\;\s]+", ","); // "A,B,C,D" System.out.println("新的字符串s2="+s2); //字符串截取,從指定的下標(biāo)開(kāi)始和結(jié)束,范圍是左閉右開(kāi) s1 = s1.substring(0, 5); System.out.println("新的字符串="+s1); //字符串截取,從指定的下標(biāo)開(kāi)始一直截取到字符串的最后。 //注意:StringIndexOutOfBoundsException s1 = s1.substring(3); System.out.println("新的字符串="+s1); //字符串切割,按照指定的字符串對(duì)原字符串進(jìn)行切割 String s2 = "zhangsan-lisi-wangwu"; //利用指定的分隔符進(jìn)行分割 String[] s = s2.split("-"); System.out.println(Arrays.toString(s)); //去除字符串前后的空格 String s3 = " 你好, 哈哈 "; s3 = s3.trim(); System.out.println("新的字符串s3="+s3); } }
6. 大小寫(xiě)轉(zhuǎn)換的方法
String字符串中提供了將字符串轉(zhuǎn)為小寫(xiě)、大寫(xiě)等方法,這幾個(gè)方法如下:
- toUpperCase(): 將字符串中的字母都變成大寫(xiě);
- toLowerCase(): 將字符串中的字母都變成小寫(xiě)。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo08 { public static void main(String[] args) { String s1 = "abcADC你好123"; //將字符串中的字母變成大寫(xiě) System.out.println("轉(zhuǎn)換后新的字符串="+s1.toUpperCase()); //將字符串中的字母變成小寫(xiě) System.out.println("轉(zhuǎn)換后新的字符串="+s1.toLowerCase()); } }
7. 字符串轉(zhuǎn)數(shù)組的方法
String字符串中提供了將字符串轉(zhuǎn)為字節(jié)、字符數(shù)組的方法,這幾個(gè)方法如下:
- getBytes(): 將字符串轉(zhuǎn)變成字節(jié)數(shù)組;
- toCharArray(): 將字符串變成字符數(shù)組。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo08 { public static void main(String[] args) { String s1 = "abcd你好"; //將字符串轉(zhuǎn)變成字節(jié)數(shù)組 byte[] b = s1.getBytes(); System.out.println(Arrays.toString(b)); //將字符串變成字符數(shù)組 char[] c = s1.toCharArray(); System.out.println(Arrays.toString(c)); } }
8. 其他類(lèi)型轉(zhuǎn)字符串的方式
我們可以利用如下幾種方式將其他類(lèi)型轉(zhuǎn)為String字符串:
- 利用"+"號(hào)拼接: 通過(guò)拼接得到一個(gè)新的字符串對(duì)象;
- valueOf()方法: 將其他的類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成String類(lèi)型;
- 構(gòu)造方法:也可以使用字符串對(duì)應(yīng)的構(gòu)造方法,將字節(jié)、字符數(shù)組類(lèi)型轉(zhuǎn)為字符串對(duì)象,效率較低。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo08 { public static void main(String[] args) { //其他類(lèi)型轉(zhuǎn)字符串的方式 int i = 10; //方式1:利用+號(hào)進(jìn)行轉(zhuǎn)換 String s1 = i+""; System.out.println("整形轉(zhuǎn)字符串s1="+s1); //方式2:將其他的類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成String類(lèi)型 String s2 = String.valueOf(i); System.out.println("整形轉(zhuǎn)字符串s2="+s2); //方式3:將字節(jié)數(shù)組轉(zhuǎn)為字符串 byte[] nums= {97, 98, 99, 100}; String s3=new String(nums); System.out.println("整形轉(zhuǎn)字符串s3="+s3); } }
9. 格式化字符串的方法
除了以上這些方法之外,String還提供了幾個(gè)可以用于格式化字符串的方法,如下:
- format(): 可以將字符串進(jìn)行格式化操作。
/** * @author 一一哥Sun * 千鋒教育 */ public class Demo09 { public static void main(String[] args) { //實(shí)例方法:String對(duì)象.format() //%d、%s、%.2f都是占位符 String s = "恭喜你,%s, 你的得分是:%d!"; System.out.println(s.formatted("壹壹哥", 99)); //靜態(tài)方法:String類(lèi).format() System.out.println(String.format("恭喜你,%s, 你的成績(jī)是:%.2f!", "一一哥2", 46.5)); } }
在上面的案例中,涉及到了幾個(gè)占位符,主要是配合參數(shù)進(jìn)行格式化。當(dāng)使用占位符時(shí),就需要參數(shù)類(lèi)型要和占位符要求的一致。常用的占位符含義如下:
- %s : 表示字符串;
- %d : 表示整數(shù);
- %x : 表示十六進(jìn)制整數(shù);
- %f : 表示浮點(diǎn)數(shù)。
另外占位符還可以帶格式,例如%.2f是表示顯示兩位小數(shù)。如果你不確定到底該用哪個(gè)占位符,可以選擇使用%s,因?yàn)?s可以顯示任何數(shù)據(jù)類(lèi)型。
以上這些方法,就是String字符串中的一些常用方法,當(dāng)然并不是全部的方法。
三. 結(jié)語(yǔ)
至此,String字符串對(duì)象的定義方式,以及String類(lèi)中常用的API方法給大家介紹完了,我們要掌握本文的重點(diǎn)內(nèi)容,比如:
- 掌握String對(duì)象的定義方式;
- 掌握字符串對(duì)象的比較方式;
- 掌握字符串判空的方式及方法;
- 了解java中的常用占位符;
- 掌握其他重要方法。
以上就是Java之一文詳解String字符串的用法的詳細(xì)內(nèi)容,更多關(guān)于Java String字符串用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
說(shuō)說(shuō)Spring中為何要引入Lookup注解
這篇文章主要給大家介紹了關(guān)于Spring中為何要引入Lookup注解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01java 函數(shù)的重載和重寫(xiě)實(shí)例代碼
本文主要介紹Java 的重載和重寫(xiě),學(xué)習(xí)java的同學(xué)都知道Java的多態(tài)有多重要,這里給大家舉例說(shuō)明函數(shù)的重載和重寫(xiě),希望能幫助有需要的小伙伴2016-07-07Java使用cxf發(fā)布及調(diào)用webservice接口的方法詳解
今天小編就為大家分享一篇關(guān)于Java使用CXF發(fā)布及調(diào)用WebService接口的方法,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2023-08-08圖解Java中歸并排序算法的原理與實(shí)現(xiàn)
歸并排序是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個(gè)非常典型的應(yīng)用。本文將通過(guò)圖片詳解插入排序的原理及實(shí)現(xiàn),需要的可以參考一下2022-08-08SpringBoot和Vue.js實(shí)現(xiàn)的前后端分離的用戶(hù)權(quán)限管理系統(tǒng)
本文主要介紹了SpringBoot和Vue.js實(shí)現(xiàn)的前后端分離的用戶(hù)權(quán)限管理系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04java設(shè)計(jì)模式之裝飾模式詳細(xì)介紹
這篇文章主要介紹了java設(shè)計(jì)模式之裝飾模式,有需要的朋友可以參考一下2013-12-12Spring中AOP的切點(diǎn)、通知、切點(diǎn)表達(dá)式及知識(shí)要點(diǎn)整理
這篇文章主要介紹了Spring中AOP的切點(diǎn)、通知、切點(diǎn)表達(dá)式及知識(shí)要點(diǎn)整理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Java編程幾個(gè)循環(huán)實(shí)例代碼分享
這篇文章主要介紹了Java編程幾個(gè)循環(huán)實(shí)例代碼分享,多看多練,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-10-10