<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          java程序員常用的11個(gè)API,趕緊收藏

          共 8310字,需瀏覽 17分鐘

           ·

          2020-08-28 11:38

          1.Scanner 類

          一個(gè)可以解析基本類型和字符串的簡單文本掃描器。

          package cn.wxuns;

          import java.util.Scanner;

          public class MyScanner {
          public static void main( String[] args){
          Scanner myScanner = new Scanner(System.in);

          System.out.println("請(qǐng)輸入一個(gè)數(shù)字");

          int sc = myScanner.nextInt();
          System.out.println(sc);
          }
          }

          2.Random 類

          生成偽隨機(jī)數(shù)

          package cn.wxuns;

          import java.util.Random;

          public class MyRandom {
          public static void main(String[] args){
          int random = new Random().nextInt(100);
          System.out.println(random);
          }
          }

          3.ArrayList 類

          定義:ArrayList,ArrayList
          方法:add,set,get,remove,clone,size 等
          package cn.wxuns;

          import java.util.ArrayList;

          public class MyArray {
          public static void main(String[] args){
          ArrayList arr = new ArrayList<>();
          arr.add("lisi");
          System.out.println(arr.get(0));
          }
          }

          ArrayList 對(duì)象不能存儲(chǔ)基本類型,只能存儲(chǔ)引用類型的數(shù)據(jù)。類似 不能寫,但是存儲(chǔ)基本數(shù)據(jù)類型對(duì)應(yīng)的包裝類型是可以的。所以,想要存儲(chǔ)基本類型數(shù)據(jù), <> 中的數(shù)據(jù)類型,必須轉(zhuǎn)換后才能編寫,轉(zhuǎn)換寫法如下:


          4.String 類

          類 String 中包括用于檢查各個(gè)字符串的方法,比如用于比較字符串,搜索字符串,提取子字符串以及創(chuàng)建具有翻譯為大寫或小寫的所有字符的字符串的副本。

          1. 字符串不變:字符串的值在創(chuàng)建后不能被更改。

          String s1 = "abc";
          s1 += "d";
          System.out.println(s1); // "abcd"
          // 內(nèi)存中有"abc","abcd"兩個(gè)對(duì)象,s1從指向"abc",改變指向,指向了"abcd"。

          2. 因?yàn)?String 對(duì)象是不可變的,所以它們可以被共享

          String s1 = "abc";
          String s2 = "abc";
          // 內(nèi)存中只有一個(gè)"abc"對(duì)象被創(chuàng)建,同時(shí)被s1和s2共享。

          3."abc" 等效于 char [] data={ 'a' , 'b' , 'c' } 。

          例如:
          String str = "abc";
          相當(dāng)于:
          char data[] = {'a', 'b', 'c'};
          String str = new String(data);
          // String底層是靠字符數(shù)組實(shí)現(xiàn)的。

          構(gòu)造方法

          • public String () :初始化新創(chuàng)建的 String 對(duì)象,以使其表示空字符序列。

          • public String (char [] value) :通過當(dāng)前參數(shù)中的字符數(shù)組來構(gòu)造新的 String。

          • public String (byte [] bytes) :通過使用平臺(tái)的默認(rèn)字符集解碼當(dāng)前參數(shù)中的字節(jié)數(shù)組來構(gòu)造新的 String。

          常見 String 類方法:

          1. length()字符串的長度

          2. charAt()截取一個(gè)字符

          3. getchars()截取多個(gè)字符并由其他字符串接收

          4. getBytes () 將字符串變成一個(gè) byte 數(shù)組

          5. toCharArray () 將字符串變成一個(gè)字符數(shù)組

          6. equals () 和 equalsIgnoreCase () 比較兩個(gè)字符串是否相等,前者區(qū)分大小寫,后者不區(qū)分

          7. startsWith () 和 endsWith () 判斷字符串是不是以特定的字符開頭或結(jié)束

          8. toUpperCase () 和 toLowerCase () 將字符串轉(zhuǎn)換為大寫或小寫

          9. concat () 連接兩個(gè)字符串

          10. trim () 去掉起始和結(jié)束的空格

          11. substring()截取字符串

          12. indexOf () 和 lastIndexOf () 前者是查找字符或字符串第一次出現(xiàn)的地方,后者是查找字符或字符串最后一次出現(xiàn)的地方

          13. compareTo () 和 compareToIgnoreCase ()按字典順序比較兩個(gè)字符串的大小,前者區(qū)分大小寫,后者不區(qū)分

          14. replace () 替換

          5.Arrays 類

          java.util.Arrays 此類包含用來操作數(shù)組的各種方法,比如排序和搜索等。其所有方法均為靜態(tài)方法,調(diào)用起來非常簡單。

          1.Arrays.asList(T… data)
          注意:該方法返回的是 Arrays 內(nèi)部靜態(tài)類 ArrayList,而不是我們平常使用的 ArrayList,,該靜態(tài)類 ArrayList 沒有覆蓋父類的 add, remove 等方法,所以如果直接調(diào)用,會(huì)報(bào) UnsupportedOperationException 異常

          • 將數(shù)組轉(zhuǎn)換為集合,接收一個(gè)可變參

          List list = Arrays.asList(1, 2, 3);

          Integer[] data = {1, 2, 3};
          List list = Arrays.asList(data);
          • 如果將基本數(shù)據(jù)類型的數(shù)組作為參數(shù)傳入, 該方法會(huì)把整個(gè)數(shù)組當(dāng)作返回的 List 中的第一個(gè)元素,多維數(shù)組

          int[] data = {1, 2, 3};
          List list = Arrays.asList(data);

          2.Arrays.fill()

          • 用指定元素填充整個(gè)數(shù)組(會(huì)替換掉數(shù)組中原來的元素)

          Integer[] data = {1, 2, 3, 4};
          Arrays.fill(data, 9);
          System.out.println(Arrays.toString(data)); // [9, 9, 9, 9]
          • 用指定元素填充數(shù)組,從起始位置到結(jié)束位置,取頭不取尾(會(huì)替換掉數(shù)組中原來的元素)

          Integer[] data = {1, 2, 3, 4};
          Arrays.fill(data, 0, 2, 9);
          System.out.println(Arrays.toString(data)); // [9, 9, 3, 4]

          3.Arrays.sort()

          • 對(duì)數(shù)組元素進(jìn)行排序(串行排序

          int[] data = {1, 2, 3,1,3,4};
          Arrays.sort(data);
          System.out.println(data);
          • 對(duì)數(shù)組元素的指定范圍進(jìn)行排序(串行排序)

          String[] data = {"1", "4", "3", "2"};
          System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]
          // 對(duì)下標(biāo)[0, 3)的元素進(jìn)行排序,即對(duì)1,4,3進(jìn)行排序,2保持不變
          Arrays.sort(data, 0, 3);
          System.out.println(Arrays.toString(data)); // [1, 3, 4, 2]
          • 使用自定義比較器,對(duì)數(shù)組元素的指定范圍進(jìn)行排序(串行排序)

          String[] data = {"1", "4", "3", "2"};
          System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]
          // 對(duì)下標(biāo)[0, 3]的元素進(jìn)行降序排序,即對(duì)1,4,3進(jìn)行降序排序,2保持不變
          Arrays.sort(data, 0, 3, (str1, str2) -> {
          if (str1.compareTo(str2) > 0) {
          return -1;
          } else {
          return 1;
          }
          });
          System.out.println(Arrays.toString(data)); // [4, 3, 1, 2]

          4.Arrays.parallelSort()
          對(duì)數(shù)組元素進(jìn)行排序(并行排序),當(dāng)數(shù)據(jù)規(guī)模較大時(shí),會(huì)有更好的性能

          Arrays.parallelSort(data);

          5.Arrays.binarySearch () 二分法 查找

          注意:在調(diào)用該方法之前,必須先調(diào)用 sort () 方法進(jìn)行排序,如果數(shù)組沒有排序, 那么結(jié)果是不確定的,此外如果數(shù)組中包含多個(gè)指定元素,則無法保證將找到哪個(gè)元素

          6.Arrays.copyOf()
          拷貝數(shù)組,其內(nèi)部調(diào)用了 System.arraycopy () 方法,從下標(biāo) 0 開始,如果超過原數(shù)組長度,會(huì)用 null 進(jìn)行填充

          Integer[] data1 = {1, 2, 3, 4};
          Integer[] data2 = Arrays.copyOf(data1, 2);
          System.out.println(Arrays.toString(data2)); // [1, 2]
          Integer[] data2 = Arrays.copyOf(data1, 5);
          System.out.println(Arrays.toString(data2)); // [1, 2, 3, 4, null]

          7.Arrays.copyOfRange(T[] original, int from, int to)
          拷貝數(shù)組,指定起始位置和結(jié)束位置,如果超過原數(shù)組長度,會(huì)用 null 進(jìn)行填充,同 6

          8.Arrays.equals(Object[] array1, Object[] array2)
          判斷兩個(gè)數(shù)組是否相等,實(shí)際上比較的是兩個(gè)數(shù)組的哈希值,即 Arrays.hashCode (data1) == Arrays.hashCode (data2)

          9.Arrays.deepEquals(Object[] array1, Object[] array2)
          判斷兩個(gè)多維數(shù)組是否相等,實(shí)際上比較的是兩個(gè)數(shù)組的哈希值,即 Arrays.hashCode (data1) == Arrays.hashCode (data2)

          10.Arrays.hashCode(Object[] array)
          返回?cái)?shù)組的哈希值

          11.Arrays.deepHashCode(Object[] array)
          返回多維數(shù)組的哈希值

          12.Arrays.toString(Object[] array)
          返回?cái)?shù)組元素的字符串形式

          Integer[] data = {1, 2, 3};
          System.out.println(Arrays.toString(data)); // [1, 2, 3]

          13.Arrays.deepToString(Object[] array)
          返回多維數(shù)組元素的字符串形式

          14.Arrays.setAll(T[] array, IntFunction

          Integer[] data = {1, 2, 3, 4};
          // i為索引值
          Arrays.setAll(data, i -> data[i] * 2);
          System.out.println(Arrays.toString(data)); // [2, 4, 6, 8]

          15.Arrays.parallelSetAll(T[] array, IntFunction

          Integer[] data = {2, 3, 4, 5};
          // 第一個(gè)元素2不變,將其與第二個(gè)元素3一起作為參數(shù)x, y傳入,得到乘積6,作為數(shù)組新的第二個(gè)元素
          // 再將6和第三個(gè)元素4一起作為參數(shù)x, y傳入,得到乘積24,作為數(shù)組新的第三個(gè)元素,以此類推
          Arrays.parallelPrefix(data, (x, y) -> x * y);
          System.out.println(Arrays.toString(data)); // [2, 6, 24, 120]

          16.Arrays.spliterator(T[] array)
          返回?cái)?shù)組的分片迭代器,用于并行遍歷數(shù)組

          17.Arrays.stream(T[] array)
          返回?cái)?shù)組的流 Stream,然后我們就可以使用 Stream 相關(guān)的許多方法了

          6.Math 類

          java.lang.Math 類包含用于執(zhí)行基本數(shù)學(xué)運(yùn)算的方法,如初等指數(shù)、對(duì)數(shù)、平方根和三角函數(shù)。類似這樣的工具類,其所有方法均為靜態(tài)方法,并且不會(huì)創(chuàng)建對(duì)象,調(diào)用起來非常簡單。

          1. public static long abs (double a): 返回 a 的絕對(duì)值。

          2. public static double max (double a,double b): 返回 a、b 的最大值。

          3. public static double min (double a,double b): 返回 a、b 的最小值。

          4. pubic static double random (): 產(chǎn)生一個(gè) 0~1 之間的隨機(jī)數(shù) (不包括 0 和 1)。

          5. public static double pow (double a,double b); 返回 a 的 b 次冪。

          6. public static double sqrt (double a): 返回 a 的平方根。

          7. public static double log (double a): 返回 a 的對(duì)數(shù)。

          8. public static double sin (double a): 返回 a 的正弦值。

          9. public static double asin (double a): 返回 a 的反正弦值。

          10. public static double ceil (double a): 返回大于 a 的最小整數(shù),并將該整數(shù)轉(zhuǎn)化為 double 型數(shù)據(jù)方法的名字 ceil 是天花板的意思,很形象)。例如,Math. eil52) 的值是 16.0。

          11. public static double floor (double a): 返回小于 a 的最大整數(shù),并將該整數(shù)轉(zhuǎn)化為 double 型數(shù)據(jù)。例如,Math.floor (15.2) 的值是 15.0,Mat.floor (-15.2) 的值是 - 16.0。

          12. public static long round (double a): 返回值是 (long) Math.floor (a+0.5)), 即所謂 a 的 “四舍五入” 后的值。一個(gè)比較通俗好記的辦法是:如果 a 是非負(fù)數(shù),round 方法返回 a 的四舍五入后的整數(shù) (小數(shù)大于等于 0.5 入,小于 0.5 舍): 如果 a 是負(fù)數(shù),round 方法返回 a 的絕對(duì)值的四舍五入后的整數(shù)取負(fù),但注意,小數(shù)大于 0.5 入,小于等于 0.5 舍,例如,Math.round (-15.501) 的值是 - 16,Math.round (-15.50) 的值是 - 15。

          7.Object 類

          對(duì)象,所有的類都繼承?Object 類,可重寫部分方法

          8. 日期時(shí)間類

          Date 類

          表示特定的瞬間,精確到毫秒。

          after,before,clone,getTime,hashCode,toString

          DateFormat 類

          是日期 / 時(shí)間格式化子類的抽象類,我們通過這個(gè)類可以幫我們完成日期和文本之間的轉(zhuǎn)換,也就是可以在 Date 對(duì)象與 String 對(duì)象之間進(jìn)行來回轉(zhuǎn)換。

          • 格式化:按照指定的格式,從 Date 對(duì)象轉(zhuǎn)換為 String 對(duì)象。

          • 解析:按照指定的格式,從 String 對(duì)象轉(zhuǎn)換為 Date 對(duì)象。

          由于 DateFormat 為抽象類,不能直接使用,所以需要常用的子類 java.text.SimpleDateFormat

          創(chuàng)建 SimpleDateFormat

          import java.text.DateFormat;
          import java.text.SimpleDateFormat;

          public class MySimpleDateFormat {
          public static void main(String[] args) {
          // 對(duì)應(yīng)的日期格式如:2018-01-16 15:06:38
          DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          }
          }

          常用方法:

          • public String format (Date date):將 Date 對(duì)象格式化為字符串。

          • public Date parse (String source):將字符串解析為 Date 對(duì)象。

          Calendar 類

          Calendar 為抽象類,由于語言敏感性,Calendar 類在創(chuàng)建對(duì)象時(shí)并非直接創(chuàng)建,而是通過靜態(tài)方法創(chuàng)建 getInstance(),返回子類對(duì)象
          常用方法:

          • public int get (int field):返回給定日歷字段的值。

          • public void set (int field, int value):將給定的日歷字段設(shè)置為給定值。

          • public abstract void add (int field, int amount):根據(jù)日歷的規(guī)則,為給定的日歷字段添加或減去指定的時(shí)間量。

          • public Date getTime ():返回一個(gè)表示此 Calendar 時(shí)間值的 Date 對(duì)象。

          Calendar 類中提供很多成員常量,代表給定的日歷字段:


          9.System 類

          • currentTimeMillis 方法:毫秒級(jí)的時(shí)間戳

          • arrayCopy 方法:將數(shù)組中指定的數(shù)據(jù)拷貝到另一個(gè)數(shù)組中。System.arraycopy( 源數(shù)組, 源數(shù)組, 目標(biāo)數(shù)組, 目標(biāo)數(shù)組索引起始位置, length);

          10.StringBuilder 類

          由于 String 類的對(duì)象內(nèi)容不可改變,所以每當(dāng)進(jìn)行字符串拼接時(shí),總是會(huì)在內(nèi)存中創(chuàng)建一個(gè)新的對(duì)象。
          在 API 中對(duì) String 類有這樣的描述:字符串是常量,它們的值在創(chuàng)建后不能被更改。為了解決這一問題,可以使用 java.lang.StringBuilder 類。

          構(gòu)造函數(shù):

          1. public StringBuilder ():構(gòu)造一個(gè)空的 StringBuilder 容器。

          2. public StringBuilder (String str):構(gòu)造一個(gè) StringBuilder 容器,并將字符串添加進(jìn)去。

          方法:

          • public StringBuilder append (...):添加任意類型數(shù)據(jù)的字符串形式,并返回當(dāng)前對(duì)象自身。

          • public String toString ():將當(dāng)前 StringBuilder 對(duì)象轉(zhuǎn)換為 String 對(duì)象。

          11. 包裝類

          Java 提供了兩個(gè)類型系統(tǒng),基本類型與引用類型,使用基本類型在于效率,然而很多情況,會(huì)創(chuàng)建對(duì)象使用,因?yàn)閷?duì)象可以做更多的功能,如果想要我們的基本類型像對(duì)象一樣操作,就可以使用基本類型對(duì)應(yīng)的包裝類,如下:

          基本數(shù)值 ----> 包裝對(duì)象

          Integer i = new Integer(4);//使用構(gòu)造函數(shù)函數(shù)
          Integer iii = Integer.valueOf(4);//使用包裝類中的valueOf方法
          文末福利:我總結(jié)了一套 5000 頁的 Java 學(xué)習(xí)手冊(cè),在知乎已經(jīng)3萬贊了!此手冊(cè)內(nèi)容專注 Java技術(shù),包括 JavaWeb,SSM,Linux,Spring Boot,MyBatis,MySQL,Nginx,Git,GitHub,Servlet,IDEA,多線程,集合,JVM,DeBug, Dubbo,Redis,算法,面試題等相關(guān)內(nèi)容。

          下載方式

          1.?首先掃描下方二維碼

          2.?后臺(tái)回復(fù)「555」即可獲取


          注明:僅僅作為知識(shí)分享,切勿用于其它商業(yè)活動(dòng) 。感謝所有技術(shù)分享者的付出。


          點(diǎn)贊是最大的支持?

          瀏覽 34
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  很污的视频网站 | 国产成人精品一区二区三区四区五区 | 色香蕉影院 | 免费成人视频在线豆花 | 伊人干综合 |