3/7day05_常用API(BigInteger,BigDecimal,Arrays,包裝類,String類)

回顧

a.一個類,什么時候不能被繼承(final),什么時候不能創(chuàng)建對象(抽象類,私有化構(gòu)造方法),一個變量什么時候只能賦值一次(final)
b.老師少講點,太多記不住(講解的速度慢點) 
    
Object類
    toString: 默認返回包名.類名@地址值,重寫之后返回對象的內(nèi)容
    equals: 默認比較兩個對象的地址值,重寫之后比較對象的內(nèi)容
Date類:
    public Date(); 當(dāng)前時間
    public Date(long millis);距離基準(zhǔn)時間millis毫秒后的那個時間
DateFormat類:
    public SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    格式化: public String format(Date d);
    解析: public Date parse(String time);  
Calendar類:
    獲取:Calendar cc = Calendar.getInstance();
    方法:
        public int get(int field);
        public void add(int field,int value);
        public void set(int field,int value);
Math類:
    Math的方法都是靜態(tài)的
    public static double abs(double d);
    public static double ceil(double d);
    public static double floor(double d);
    public static long round(double d);
    public static double pow(double d,double d);
System類:
    System類的方法也是靜態(tài),并且不能創(chuàng)建對象(System的構(gòu)造方法私有化了)
    System.exit(0); 退出JVM
    System.currentTimeMillis(); 獲取當(dāng)前時間的毫秒值
    System.arrayCopy(源數(shù)組,開始索引,目標(biāo)數(shù)組,開始索引,復(fù)制的元素個數(shù));

今日內(nèi)容

  • BigInteger類
  • BigDecimal類
  • Arrays類
  • 包裝類
  • String類的常用方法
  • 引用類型的使用場景

BigInteger(理解)

介紹

不可變的任意精度的整數(shù)。數(shù)據(jù)的范圍超過了long類型后,可以使用BigInteger類實現(xiàn),該類的計算整數(shù)是不限制長度的。
該類內(nèi)部提供了加減乘除的方法

構(gòu)造方法

public BigInteger (String num);

成員方法

BigInteger 類型的數(shù)據(jù)不能直接使用 +/-/* 操作, 需要通過內(nèi)部提供的方法

每一個大整數(shù)都需要new 一個BigInteger對象, 賦值給對象變量,用傳參方法來進行計算


BigDecimal類

介紹

計算機在計算小數(shù)時, 使用 + / - /* 的操作, 其精度有問題
對于小數(shù)的運算,我們需要使用 BigDecimal類類型

概述

此類是做高精度的浮點數(shù)運算的

構(gòu)造方法


因為第一種傳入的也為double類型, 本身就不精確

常用方法

注意
如果除不盡, 會拋出異常java.lang.ArithmeticException異常
可以使用
divide方法的另一個重載方法;
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode): divisor:除數(shù)對應(yīng)的BigDecimal對象; 參數(shù)說明:scale:精確的位數(shù);roundingMode取舍模式
取舍模式四舍五入可以輸入 RoundingMode.HALF_UP

Arrays類(重點)

介紹

專門操作數(shù)組的工具類(方法都是靜態(tài)的)

常用方法

  • public static void sort(int[] a):按照數(shù)字順序排列指定的數(shù)組(對數(shù)組中的元素進行從小到大的排序)

  • public static String toString(int[] a):返回指定數(shù)組的內(nèi)容的字符串表示形式

  • 擴展
    sort方法對于數(shù)值類型的數(shù)組,按照數(shù)值大小從小到大排序.
    sort方法對char類型, 按照其ASCII表進行從小到大排序
    sort方法堆String類型排序時,首先比較首字母碼值, 如果相等,再比較次字母碼值

包裝類

介紹

包裝類就是基本類型轉(zhuǎn)為對應(yīng)的引用類型


Integer類

概述

是int基本類型的包裝類

將基本類型或者String類型轉(zhuǎn)為Integer對象可以通過構(gòu)造或靜態(tài)方法得到

構(gòu)造方法(創(chuàng)建對象,返回一個Integer對象)

  • public Integer (int value);
    -public Integer(String value);

靜態(tài)方法(調(diào)用靜態(tài)方法返回一個Integer對象)

  • public static Integer valueOf(int i)
    -public static Integer valueOf(String s);

自動裝箱和拆箱(現(xiàn)在使用基本類型轉(zhuǎn)引用類型常用操作)

概念

  • 裝箱:從基本類型轉(zhuǎn)換為對應(yīng)的包裝類對象。
  • 拆箱:從包裝類對象轉(zhuǎn)換為對應(yīng)的基本類型。


自動裝箱與自動拆箱 (重點,不用再進行創(chuàng)建對象或者調(diào)用方法)

Integer i =10;//底層Integer.valueOf() 自動裝箱
int value = i;//底層 i.intvalue(),自動拆箱

底層valueOf()解釋
優(yōu)化 -128~127這個范圍內(nèi)的所有數(shù)字, 在包裝類內(nèi) 已經(jīng)創(chuàng)建好了對象, 所以當(dāng)符合這個范圍內(nèi)的值的時候, 會直接調(diào)用該對象, 而不會創(chuàng)建新的對象

Integer i = 98;
Integer j = 98;
i == j.sout//輸出結(jié)果為true
Integer x= 198;
Integer y =198;
x == y.sout 輸出結(jié)果為false

基本類型與字符串之間的轉(zhuǎn)換(面試題)

  • 基本類型轉(zhuǎn)為 String
    1.直接拼接一個 "" 字符
    2.使用String類的靜態(tài)方法valueOf(int a)返回一個String類型數(shù)據(jù)
    String s = String.valueOf(int 10);

  • String 轉(zhuǎn)為基本類型
    String num = "100";
    第一種方式:
    a.先使用Integer的構(gòu)造方法
    Integer i = new Integer(String num)
    b.接著調(diào)用intValue方法拆箱
    int number = i.intValue();
    或者自動拆箱
    int number =i;
    第二種方式:
    調(diào)用所有包裝類都具有的parseXxx靜態(tài)方法
    1.public static int parseInt(String s) :將字符串參數(shù)轉(zhuǎn)換為對應(yīng)的int基本類型。
    2.public static long parseLong(String s) :將字符串參數(shù)轉(zhuǎn)換為對應(yīng)的long基本類型。

    int number = Integer.parseInt(String num);

  • 異常
    如果字符串參數(shù)的內(nèi)容無法正確轉(zhuǎn)換為對應(yīng)的基本類型,則會拋出
    java.lang.NumberFormatException 異常。

String類常用方法

CharSequence是一個接口,String類是它的實現(xiàn)類

String 的構(gòu)造方法

  • 直接賦值
    String s = "java";
  • 構(gòu)造方法
    String s = new String("java");

char[] chs = {'j','a','v','a'};
String s= new String(chs);

byte[] bs = {97,98,99};
String s = new String(bs);//輸出 abcd

concat 方法(拼接)

  • public String concat (String str)

如:
String result = s1.concat(s2);

concat的作用和+符號的不同:
1). concat只能拼接String類型,不能拼接其它類型。
+符號可以拼接任何類型。
2). concat的效率要高于+符號。

contains (判斷是否包含某個小字符串)

  • public boolean contains (CharSequence s)
    CharSequence是一個接口,String類是它的實現(xiàn)類
  • 判斷參數(shù)字符串在當(dāng)前字符串中是否存在(區(qū)分大小寫)。返回布爾類型

如:
String s = "我愛Java,我愛學(xué)習(xí)!";
s.contains("Java")返回true/false

endsWith(是否以xx結(jié)尾)

  • public boolean endsWith(String su?x)
  • 測試此字符串是否以指定的后綴結(jié)尾(區(qū)分大小寫)。

如:
String name = "Test.java";
name.endsWith("java")//返回true/false

startsWith(是否以xx開頭)

  • public boolean startsWith(String pre?x)
  • 測試此字符串是否以指定的前綴開始(區(qū)分大小寫)

如:
String name = "Test.java";
name.endsWith("java")//返回true/false

indexOf(查找目標(biāo)字符串在當(dāng)前字符串中第一次出現(xiàn)的索引)

  • public int indexOf(String str)
  • 返回指定子字符串第一次出現(xiàn)的字符串內(nèi)的索引。如果不包含,則返回-1.

如:
String str = "我愛Java,我愛學(xué)習(xí)!";
str.indexOf("Java")//返回2(索引)

lastIndexOf(返回最后一次出現(xiàn)的索引,首字符的索引)

  • public int lastIndexOf(String str)
  • 返回指定子字符串最后一次出現(xiàn)的字符串中的索引。 如果不包含,則返回-1.

replace (將當(dāng)前字符串中的目標(biāo)字符串,全部替換成另一個字符串)

  • public String replace(CharSequence target,CharSequence replacement)

substring (截取子串)

  • public String substring(int beginIndex)
    將當(dāng)前字符串從beginIndex開始截取到末尾
  • public String substring(int beginIndex, int endIndex)
    將當(dāng)前字符串從beginIndex開始截取到
    endIndex - 1處。

toCharArray (將字符串轉(zhuǎn)為char數(shù)組)

  • public char[] toCharArray()
    將當(dāng)前字符串轉(zhuǎn)換為char[]數(shù)組

toLowerCase (轉(zhuǎn)成純小寫)

  • public String toLowerCase()
    將當(dāng)前字符串中的所有英文字符轉(zhuǎn)換為小寫,并返回一個轉(zhuǎn)換后的新字符串,原字符串不變。

toUpperCase (轉(zhuǎn)成純大寫)

  • public String toUpperCase()
    將當(dāng)前字符串中的所有英文字符轉(zhuǎn)換為大寫,并返回一個轉(zhuǎn)換后的新字符串,原字符串不變

trim (去除字符串兩端空格, 不含中間部分空格)

  • public String trim()
    去掉當(dāng)前字符串的前后空格,并返回一個新字符串,原字符串不變。

split

  • public String[] split(String regex)
    切割字符串——將字符串以regex作為分隔符進行切割。
    如:
    String ss="張三-李四-王五";
    String[] name =ss.split("-");
    Arrays.toString(name).sout

引用類型使用小結(jié)(非常重要)

主要內(nèi)容

類,抽象類,接口,以及多態(tài).
(抽象類和接口作為參數(shù)和返回, 實際使用的是多態(tài), 傳遞的是某一個子類對象)

基本類型,可以作為方法的參數(shù)和返回

普通類,可以作為方法的參數(shù)和返回

抽象類,可以作為方法的參數(shù)和返回

接口,可以作為方法的參數(shù)和返回

當(dāng)基本類型作為方法的參數(shù)和返回值,調(diào)用方法和返回數(shù)據(jù)時, 返回該基本類型的值即可
當(dāng)引用類型作為方法的參數(shù)和返回值,調(diào)用方法和返回數(shù)據(jù)時, 返回該引用類型的對象/子類對象/實現(xiàn)類對象

普通類作為方法的參數(shù)和返回值

抽象類作為方法的參數(shù)和返回值

  • 抽象類作為形參:表示可以接收任何此抽象類的"子類對象"作為實參;
  • 抽象類作為返回值:表示"此方法可以返回此抽象類的任何子類對象";

接口作為方法參數(shù)和返回值

  • 接口作為形參:表示可以接收任何此接口的"子類對象"作為實參;
  • 接口作為返回值:表示可以返回此接口的任何"子類對象";

基本類型作為類的成員變量

普通類作為類的成員變量

  • 普通類作為成員變量——為此成員變量賦值時,應(yīng)該是普通類對象

抽象類作為類的成員變量

  • 抽象類作為成員變量——為此成員變量賦值時,可以是任何它的子類對象

接口作為類的成員變量

  • 接口作為成員變量——為此成員變量賦值時,可以是任何它的子類對象

總結(jié)

1.BigInteger【理解】
2.BigDecimal 【理解】   
    add subtract multiply divide
3.Arrays工具類【重點】
    public static void sort(int[] arr);默認對數(shù)組進行升序排序
    public static String toString(int[] arr);將數(shù)組的所有元素拼接成一個大的字符串返回
4.包裝類【重點】
    a。八種基本類型對應(yīng)的引用類型
    b。裝箱和拆箱(JDK5之后,自動拆裝箱)
        Integer i = 10;
        int j = i;
5.String 【重點】
    掌握構(gòu)造方法+常用的13個成員方法(熟練使用)
6.引用類型的使用總結(jié)【重點+練習(xí)+思考】
    引用類型作為方法的參數(shù)和返回值
    引用類型作為成員變量
    
    如果引用類型是普通類,那么需要用到該普通類的對象
    如果引用類型是抽象類,那么需要用到該抽象類的子類對象
    如果引用類型是接口,那么需要用到該接口的實現(xiàn)類對象  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容