首頁  >  文章  >  Java  >  Java API的詳細介紹(附範例)

Java API的詳細介紹(附範例)

不言
不言原創
2018-09-26 15:35:5210648瀏覽

這篇文章帶給大家的內容是關於Java API的詳細介紹(附例子),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

簡介 :  

所謂API就是一些已寫好、可供直接呼叫的類別庫。 Java 具有強大功能的API, 並且仍在繼續發展中。

## 先在網路上取得Java 說明文件  , 然後解壓縮,找到對應的API 。

 Java 常用套件介紹 :
  • # java.lang  提供利用java程式語言進行程式設計的基礎類別。
  • java  until  包含集合框架,遺留的collection類,事件模型,日期和時間設施,國際化和各種實用工具類。
  • java io 透過資料流,序列化和檔案系統提供系統輸入和輸出。
  • java applet 提供建立applet 所必須的的類別和applet 用來和其他applet 上下文通訊的類別、
  • #java awt 包含用於建立使用者介面和繪製圖形影像的所有的類別。
  • java beans  包含與開發beans 相關的類,即 基於javaBeans 架構的元件。
  • java math 提供用於執行任意精確度整數演算法(BigInteger)和任意精確度小數位演算法(BigDecimal)的類別。

  • java net 為實作網路應用程式提供的類別。
  • java sql  提供使用java 程式語言存取並處理儲存在資料來源(通常指關係型資料庫)中的資料API。

String 類別:

String 類別的初始化運算:  java 提供兩個初始化String類別的方式, 

  1   利用字串常數直接初始化一個String對象,例如  String  name = "張三" ; 

  2   採用String的建構方法初始化字串對象, ##方法String ()Stirng ( String value)String (char[] value)
意義
建立一個內容為空的字串
根據指定的字串內容建立物件
根據指定的字元陣列建立物件# ###########

舉栗子: 

public static void main(String[] args){
    String s1 =new String();//创建空字符串
    String s2 = new String("张三")//创建一个内容为张三的字符串
    char[] charArray = new char[]{'A','B','C'};
    String s3 = new String(charArray);
    System.out.println(s1);
    System.out.println(s2);
    System.out.println(s3);

}

 Sring類別的常用方法:

字串基本操作:

public static void main(String[] args) {
String s ="abcdefhckoj";//声明字符串
System.out.println("字符串的长度为:"+s.length());//获取字符串长度, 即字符个数
System.out.println("字符串第一个字符:"+s.charAt(0));
System.out.println("字符c第一次出现的位置:"+s.indexOf('c'));
System.out.println("字符c最后一次出现的位置:"+s.lastIndexOf('c'));
}

 

#字串與陣列的轉換:

public class Demo{
    public static void main(String[] args){
    String s = "abcdesgs";//声明一个字符串
    System.out.println("将此字符串装换为数组");
    char [] charArray = s.toCharArray();//字符串转换为字符数组。
    System.out.println("[);
    for(int i=0;i,charArray.length;i++){
          if(i !=charArray.length-1);
         Syetem.out.println(charArray[i]+",");
             //判断是否是数组最后一个元素,如果不是则在后面添逗号码
    }else{
        //否则 数组最后一个元素不加逗号。
 
       Syetem.out.println(charArray[i]+"]");
}
}
        Syetem.out.println("将Int 类型转换为String 类型:" +String.valueOf(20));
}
}


字串判斷運算:

public static void main(String[] args) {
String str1 = "abcdsg";//声明一个字符串
String str2 = "adc";
System.out.println("判断是否以字符串abc开头:"+str1.startsWith("abc"));
System.out.println("判断是否以字符串sg结尾:"+str1.endsWith("sg"));
System.out.println("判断是否包含字符串ds:"+str2.contains("ds"));
System.out.println("判断是否为空:"+str1.isEmpty());
System.out.println("判断两个字符串是否相等"+str1.equals(str2));

#字串的截取與分割

String類別對字串的截取與分割提供了兩個方法, 其中, substring()方法用於截取字串的一部分, split()方法可以將字串依照某個字元進行分割。

package com.project.demo;

public class Test {
         public static void main(String[] args) {
            String string = "张三-李四-王五"; 
            //截取字符串
            System.out.println("从第4个字符截取到最后:"+string.substring(3));
            System.out.println("从第3个字符截取到第6:"+string.substring(2,6));
            // 字符串分割
            System.out.println("分割后的字符串数组元素依次是: ");
            String[] stringArray =string.split("-");//通过- 字符为标志,将其分割为字符串数组
            for(int i =0;i<stringArray.length;i++) {
                if(i != stringArray.length-1 ) {
                    System.out.println(stringArray[i]+",");
                    
                }else {
                    System.out.println(stringArray[i]);
                    System.out.println(string.length());
                }
                
            }
            
        }
}
 去空格與替換操作:

package com.project.demo;
public class Test {
         public static void main(String[] args) {
             String string = "    hello     word   ";
             //字符串替换操作
             System.out.println("将word 替换成java :"+string.replace("word", "java"));
             //字符串去空操作
             System.out.println("去除字符串两端的空格:"+ string.trim());
             System.out.println("去除字符串中所有空格: "+string.replace(" ", ""));
             System.out.println("将小写转换为大写 : " + string.toUpperCase());
         }
}

 有一點要注意,String 在取某個字元的時候,會用到字元的索引(陣列下標索引),當存取字串中的字元的時候,如果字元的索引不存在,則會發生StringIndexOutOfBoundsException(字串下標越界異常)

StringBuffer:

##為了方便字串的修改,JDK提供了一個StringBuffer類別(也稱為字元緩衝區)StringBuffer類別和String 類別最大的差別就是他的長度和內容都是可變的, StringBuffer類似於一個字串容器,當在其中新增或刪除字元時,並不會產生新的StringBuffer物件。

讓我們來看看API 中StringBuffer的常用方法:

面試的時候我們常常會被問到 String,StringBuffer與StringBuilder的差別??

簡單的說

,String 字串常數StringBuffer 字串變數(線程安全) StringBuilder 字串變數(非線程安全)###  String 類型和StringBuffer 類型的主要效能區別其實在於String 是不可變的對象, 因此在每次對String 類型進行改變的時候其實都等同於生成了一個新的String 對象,然後將指針指向新的String 對象,所以經常改變內容的字符串最好不要用String ,因為每次生成物件都會對系統效能產生影響,特別當記憶體中無引用物件多了以後, JVM 的GC 就會開始運作,那速度是一定會相當慢的。 ######如果是使用 StringBuffer 類別 每次結果都會對 StringBuffer 物件本身進行操作,而不是產生新的對象,再改變物件參考。所以在一般情況下我們推薦使用 StringBuffer ,特別是字串物件經常改變的情況下。而在某些特別情況下, String 物件的字串拼接其實是被JVM 解釋成了StringBuffer 物件的拼接,所以這些時候String 物件的速度不會比StringBuffer 物件慢,而特別是以下的字串物件生成中, String 效率是遠要比StringBuffer 快的:###
 String S1 = “This is only a” + “ simple” + “ test”;
###StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”);  你會很驚訝的發現,生成String S1 物件的速度簡直太快,而這個時候StringBuffer 居然速度上根本一點都不佔優勢。其實這是JVM 的把戲,在JVM 眼裡,這個 String S1 = “This is only a” “ simple” “test”; 其實就是:  String S1 = “This is only a simple test”; 所以當然不需要太多的時間了。 ######但這裡要注意的是,如果你的字串是來自另外的 String 物件的話,速度就沒那麼快了,譬如:###
String S2 = “This is only a”; String S3 = “ simple”;
String S4 = “ test”;
String S1 = S2 +S3 + S4;

这时候 JVM 会规规矩矩的按照原来的方式去做 在大部分情况下 StringBuffer > String StringBuffer Java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。 StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

例如,如果 z 引用一个当前内容是“start”的字符串缓冲区对象,则此方法调用 z.append("le") 会使字符串缓冲区包含“startle”,而 z.insert(4, "le") 将更改字符串缓冲区,使之包含“starlet”。

在大部分情况下 StringBuilder > StringBuffer java.lang.StringBuilde java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。

基本数据类型包装类:

何为包装类?

java.lang包中有各种原生类相对应的类, 称作数值包装类。 这些类的名称, 大部分均以各原生类类型第一个字母换成大写的方式来命。简单的说就是将数据装换为对象,来应用更多的方法。 

boolean Boolean
byte Byte
short Short
int Integer
long Long
char Chracter
float Float
double Double

包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型, 反之, 拆箱是指将引用数据类型的对象转为基本数据类型。 

举个栗子:

方式一: 通过new关键字
Integer in = new Integer(5);
方式二: 直接赋值
Integer in = 5;

 构造函数可将原生数据类型数值或代表数值的字符串转换成一数值包装对象。

如: 在Double类中的构造函数
Double(double value)
Double(String s)
例:

Double tax=Double(8332349823.234);

 在数值包装类中所定义的方法, 最常用到的就是一些用来做字符串与数值间转换的方法。比如:

static float parseFloat(String s)
static Float valueof(String s)
static String toString(float f)
在使用包装类的时候我们需要注意一些问题.

1、 包装类都重写了Object类中的toString()方法,以字符串的形式返回被包装的基本数据类型的值;
2、 除了Character外, 包装类都有parseXXX(String s)的静态方法,将字符串转换为对应的基本类型的数据。 参数s不能为null, 而且同样必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错;
3、 除了Character外,包装类都有valueOf(String s)方法,可以根据String类型的参数创建包装类对象, 但参数字符串s不能为null,而且字符串必须是可以解析为相应基本类型的数据,否则虽然编译通过, 但运行时也会报错

以上是Java API的詳細介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn