1. 程式人生 > 實用技巧 >API的概述與知識總結

API的概述與知識總結

API概述

概述

  API(Application Programming Interface)應用程式程式設計介面。Java API對於程式設計師來說就是一本可以檢索查詢的[字典] ,是JDK官方提供給程式開發者使用類的說明文件。這些類將底層的程式碼封裝起來,我們不需要關注這些類底層是如何實現的,我們只需要知道這些類是如何使用的。平常開發使用JDK類庫的時候,通過查閱API方式進行的。

API的使用步驟

  1. 開啟幫助文件

  2. 點選顯示、找到索引,找到輸入框

  3. 在輸入框中輸入你要查詢的類,然後回車

  4. 看該類的所在包,對於Java.lang包下面的類不需要導包,其他都需要

  5. 看該類的解釋說明和類結構

  6. 學習該類的構造方法和成員方法

Scanner類

什麼是Scanner類

  一個可以是使用正則表示式來解析基本資料型別和字串型別的簡單文字掃描器
eg.系統掃描使用者輸入的int型別的值

Scanner sc=new Scanner(System.in);
int a=sc.nextInt();

備註:System.in:系統輸入指的是通過鍵盤錄入資料。

引用型別使用步驟

導包

使用improt關鍵字導包,在類的所有程式碼之前導包,引入要使用的型別,
Javalang包下的所有類不需要導包
匯入的格式:

import 包名.類名

如:import java.util.Scanner;

建立物件

資料型別 變數名 =new 資料型別(引數列表);

呼叫方法:

變數名.方法名();

Scanner類使用步驟

  • 檢視類
    java.util Scanner 需要匯入Java Util包
  • 檢視構造方法
    public Scanner(InputStream source):構造一個新的Scanner物件 它生產的值是從指定的輸入流中掃描的
  • 檢視成員方法
    public int nextInt():將輸入的資訊的下一個標記掃描為一個int型別值

匿名物件[瞭解]

概念

  匿名物件:
格式:

資料型別 變數名 =new 資料型別(引數列表);//有名物件
new 資料型別(引數列表);

舉例:

public class AnonymousDemo{
 public static void main(String[] args){
     //傳統寫法
     Scanner sc=new Scanner(System.in);
     int num=sc.nextInt();
     //匿名物件的方式
     int num02=new Scanner(System.in).nextInt();
     System.out.println(num02);
     //開發中 使用匿名物件進行引數的傳遞
     checkInput(new Scanner(System.in));
     //獲取一個Scanner類物件
     Scanner sc02=getScanner();
 }   
    public static void checkInput(Scanner sc){
        int num=sc.nextInt();
        System.out.println(num);
    }
    public static Scanner getScanner(){
        
        return new Scanner(System.in);
    }   
    
}

備註:匿名物件只能使用唯一的一次,下次再使用再次建立
使用建議:如果在程式當中你確定有一個物件只會使用唯一的一次,建議使用匿名物件

Random類的使用步驟

  • 檢視類
    java util Random:該類需要匯入後才能使用

  • 檢視構造方法
    public Random();建立一個新的隨機數生成器

  • 檢視成員方法
    public int nextInt(int n);返回一個偽隨機數,範圍在(0,n-1)

    public double nextDouble();返回一個偽隨機小數,範圍在(0.0,1.0)

//導包
import java.util.Random;
public class RandomDemo02{
    public static void main(String[] args){
        //2.構建Random類物件
        Random ran=new Random();
        //3.呼叫類中的方法 nextInt(int n)
        for(int i=0;i<10;i++){
            int num=ran.nextInt(10);
            System.out.println(num);
        }
    }
}
//導包
import java.util.Random;
public class RandomDemo02{
    public static void main(String[] args){
        //構建一個n的反問
        int n=50;
        //2.構建Random類物件
        Random ran=new Random();
        //3.呼叫類中的方法 nextInt(int n)
        int num=ran.nextInt(n)+1;
        System.out.println(num);
        
    }
}

ArrayList類

引入---物件陣列

//需求:把三個People型別的物件存入到容器當中。陣列
public static void main(String[] args){
    //建立物件陣列
    People[] arr=new People[3]
        //建立3個People物件
  People p1=new People("小明",20);
  People p2=new People("小花",18);
  People p3=new People("小劉",22);
    //使用迴圈
    //for(int i=0;i<3;i++){
       // arr[i]=new People();
   // }
    //遍歷學生陣列 展示物件中的成員變數資訊 name age
    arr[0]=p1;
    arr[1]=p2;
    arr[2]=p3;
    for(int i=0;i<=arr.length-1;i++){
        People p =arr[i];
        System.out.println(p.getname()+p.getAge())
    }
}

備註:物件陣列,長度是固定的,如果在程式中需要物件進行增加或者刪除等數量操作時,非常不方便。
  Java又提供了一個容器Java.util.ArrayList集合類。這個類可以讓我們的儲存和操作物件更方便。

什麼ArrayList類

  java.util ArrayList類時一個[大小可變的陣列]的實現,裡面儲存的資料我們稱為元素,該類提供了一些常用的API方法來操作內部儲存的元素

ArrayList類的使用步驟

  • 檢視類

java util ArrayList<E>;該類也是需要Import匯入後才能使用

<E>,表示一種指定的資料型別,叫做【泛型】。E,取自Element(元素)的首字母。在程式中遇到【E】的地方,我們需要使用一種引用的資料型別將其替換掉即可,表示我們將儲存那種資料型別的元素。

例如:

ArrayList<People> peoples;
ArrayList<String> strs;
ArrayList<int> strs;//不正確要放引用資料型別
  • 檢視構造方法

public ArrayList();構造一個初始容量為10的空列表

public ArrayList(int initialcapacity)構造一個指定初始容器的空列表

基本格式:

ArrayList<引用資料型別>變數名=new ArrayList<引用的資料型別>();//jdk1.7之後可以省略
  • 檢視成員方法
    public boolean add(E e):將指定的元素新增到次列表的尾部

public void add()(int index, E element)將指定的元素插入此列表中的指定位置。

public void clear();移除次列表中的所有元素。

public boolean contains(Object o):判斷次列表是否包含指定的元素,如果包含返回true

否則返回false

public E get(int index):返回指定位置的元素

public int indexOf(Object o):返回此列表中首次出現的指定元素的索引,或如果此列表不包含元素,則返回 -1。

public boolean isEmpty();如果此列表中沒有元素,則返回 true

public E remove(int index);移除指定位置的元素,並把移除的元素返回

public E set(int index,E e):用指定的元素替代次列表中指定位置上的元素。

public int size();返回此列表中的元素個數。

遍歷【重點】

  使用for迴圈,定義的迴圈變數就是ArrayList容器中的索引,迴圈的次數就是容器的元素個數size()

如何儲存基本資料型別值

ArrayList類物件不能儲存基本型別,只能儲存引用型別的資料,類似<int>不支援的,但是Java中提供了基本資料型別對應的包裝型別,包裝型別是可以在ArrayList容器中指定,所以我們如果想要儲存基本資料型別值,首先需要把基本資料型別轉換成包裝型別。

基本型別 基本型別包裝類
byte Byte
short Short
int Integer[重點]
long Long
float Float
double Double
char Character[重點]
boolean Boolean

備註:我們需要單獨記憶int和char進行特殊記憶,其他型別只需要記住首字母大寫即可

String類[重點]

String類的概述

概述

  java.long.String 類代表字串,java程式中的所有的字串文字,如"abc"都可以看做是String類的例項。
程式當中的所有的雙引號字串,都是String類的物件。(沒有new,也是物件)。

字串的特點:
  • ​ 字串的內容永遠不可改變。[重點](緩衝區可以改變)

  • ​ 正是因為字串的內容永遠不可以改變,所以字串是可以共享的。

  • ​ 字串效果上相當於是char[]字元陣列,但是底層原理是byte[]位元組陣列

//第二點
String str1="abc";
String str2="abc";
//記憶體當中"abc","abc"物件會被創建出來,而且"abc"物件只會被建立一次,記憶體當中只有一個"abc"物件被建立
//此時str1和str2可以共享同一個"abc"物件
String str3=new String("abc");
String str4=new String("abc");

備註:在JDK1.7之後的JVM將[執行時常量池]從方法去移除了,在Java堆(heap)中開闢空間用來儲存執行時常量池
  在JDK1.8開始,取消了Java方法區(method area),取而代之的是直接元空間(metaspace)
  JDK1.8中字串常量池和執行時常量池邏輯上屬於方法區,實際上儲存在堆記憶體當中。

static關鍵字

public class Student{
    
    private String name;
    private int age;
    private String id;//學號
    static String room;//教室
}


String類

建立String字串的常見3+1種方式

三種構造方法:

​ public String():建立一個空白的字串,不包含任何內容

​ public String(char[] array):根據字元陣列的內容來建立對應的字串

​ public String(byte[] array):根據位元組陣列內容,來建立對應的字串

​ 一種直接建立:

​ String str="abc";//右邊直接用雙引號

備註:直接寫上雙引號,系統也會認定為字串物件。

​ 1.對於引用型別來說==進行的時地址值

​ 2.對於基本資料型別來說 ,比較的時數值內容

​ 3.雙引號直接寫的字串在常量池當中,new的不在池當中

常用方法

判斷功能的方法
  • public boolean equals(Object anObject):將此字串與指定物件進行比較

  • public boolean equalsIgnoreCase(String anotherString):將此字串與指定的物件進行比較,忽略大小寫。

獲取功能
  • public int length();返回字串的長度

  • public String concat(Strig str):將指定的字串連線到該字串的末尾

  • public char charAt(int index):返回指定索引處的char值

  • public int indexOf(String str):返回指定的子字串第一次出現在該字串內的索引值,如果找到返回子字串第一個字元所在的索引值,如果沒有找到則返回-1

  • public String substring(int beginIndex):返回一個子字串,從beginIndex開始擷取該字串到該字串末尾

  • public String substring(int beginIndex,int endIndex):返回一個子字串,從beginIndex到endIndex區間擷取該字串,包含beginIndex索引處的值,不包含endIndex處的索引值。-----》【beginIndex,endIndex】

轉換功能
  • public char[] toCharArray();將此字串轉換成新的字元陣列

  • public byte[] getBytes():使用平臺預設的字符集將該字串編碼轉換成新的位元組陣列。

  • public String replace(Char Sequence oldString, target,CharSequence replacement):將於target匹配的字串使用replacement字串替換掉 將所有出現的老的字串替換成新的字串,返回替換之後的新的字串

備註:CharSequence是一個介面,也是一種引用資料型別,意思就是可以接收字串引數資料型別

練習:定義一個方法,把陣列{1,2,3,4}按照指定的格式拼接成一個字串,格式參照:[1#2#3#4#]

拼接:concat(String str)

public class Demo1{
    public static void main(String[] arg){
        //初始化一個數組
        int[] arr={1,2,3,4};
        //呼叫方法,把int[]陣列轉換成字串
        String str=arrayToString(arr);
        //展示字串內容
        System.out.println("str:"+str);
    }
    /*
    定義方法的三要素:
                 返回值型別:String
                  方法名:arrayToString
                  引數列表:int[]arr
      */
    public static String arrayToString(int[] arr){
        //建立字串物件
        String str=new String("[");
        //遍歷arr陣列
        for(int i=0;i<arr.length;i++){
            //判斷最後一項
            if(i==arr.length-1){
                str=str.concat(arr[i]+"]");
            }else{
                str=str.concat(arr[i]+"#");
            }
        }
        return str;
    } 
}

練習2:統計字元的格式

​ 鍵盤錄入一個字串,統計字串中大小寫字母字元以及數字字元的個數 charAt(int index)

import java.util.Scanner;
public class Demo2{
    public static void main(String[] args){
        //鍵盤錄入一個字串 Scanner
        Scanner sc=new Scanner(System.in);
        System.out.println("輸入一個字串:")
            String str=sc.next();
        //自定義三個統計變數
        int upperLetter=0;
        int lowerLetter=0;
        int number=0;
        //遍歷字串 得到每一個字元
        for(int i=0;i<str.length();i++){
            char c=str.charAt(i);
            //判斷大小寫字母字元和數字字元
            if(c>='A'&&c<='Z'){
                upperLetter++;
            }else if(c>='a'&&c<='z'){
                lowerLetter++;
            }else if(c>='0'&&c<='9'){
                number++;
            }
        }
        //輸出大小寫字母字元和數字字元的個數
        System.out.println("大寫字母字元個數"+upperLetter);
         System.out.println("小寫字母字元個數"+lowerLetter);
         System.out.println("數字字元個數"+number);
        
    }
}