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

回顧

a.一個類,什么時候不能被繼承(final),什么時候不能創(chuàng)建對象(抽象類,私有化構造方法),一個變量什么時候只能賦值一次(final)
b.老師少講點,太多記不住(講解的速度慢點) 
    
Object類
    toString: 默認返回包名.類名@地址值,重寫之后返回對象的內容
    equals: 默認比較兩個對象的地址值,重寫之后比較對象的內容
Date類:
    public Date(); 當前時間
    public Date(long millis);距離基準時間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的構造方法私有化了)
    System.exit(0); 退出JVM
    System.currentTimeMillis(); 獲取當前時間的毫秒值
    System.arrayCopy(源數(shù)組,開始索引,目標數(shù)組,開始索引,復制的元素個數(shù));

今日內容

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

BigInteger(理解)

介紹

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

構造方法

public BigInteger (String num);

成員方法

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

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


BigDecimal類

介紹

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

概述

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

構造方法


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

常用方法

注意
如果除不盡, 會拋出異常java.lang.ArithmeticException異常
可以使用
divide方法的另一個重載方法谭胚;
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode): divisor:除數(shù)對應的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ù)組的內容的字符串表示形式

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

包裝類

介紹

包裝類就是基本類型轉為對應的引用類型


Integer類

概述

是int基本類型的包裝類

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

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

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

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

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

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

概念

  • 裝箱:從基本類型轉換為對應的包裝類對象怜械。
  • 拆箱:從包裝類對象轉換為對應的基本類型颅和。


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

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

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

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

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

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

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

    int number = Integer.parseInt(String num);

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

String類常用方法

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

String 的構造方法

  • 直接賦值
    String s = "java";
  • 構造方法
    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ù)字符串在當前字符串中是否存在(區(qū)分大小寫)粪糙。返回布爾類型

如:
String s = "我愛Java强霎,我愛學習!";
s.contains("Java")返回true/false

endsWith(是否以xx結尾)

  • public boolean endsWith(String su?x)
  • 測試此字符串是否以指定的后綴結尾(區(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(查找目標字符串在當前字符串中第一次出現(xiàn)的索引)

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

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

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

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

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

  • public String replace(CharSequence target,CharSequence replacement)

substring (截取子串)

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

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

  • public char[] toCharArray()
    將當前字符串轉換為char[]數(shù)組

toLowerCase (轉成純小寫)

  • public String toLowerCase()
    將當前字符串中的所有英文字符轉換為小寫褐捻,并返回一個轉換后的新字符串,原字符串不變椅邓。

toUpperCase (轉成純大寫)

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

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

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

split

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

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

主要內容

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

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

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

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

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

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

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

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

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

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

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

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

普通類作為類的成員變量

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

抽象類作為類的成員變量

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

接口作為類的成員變量

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

總結

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。八種基本類型對應的引用類型
    b萨蚕。裝箱和拆箱(JDK5之后,自動拆裝箱)
        Integer i = 10;
        int j = i;
5.String 【重點】
    掌握構造方法+常用的13個成員方法(熟練使用)
6.引用類型的使用總結【重點+練習+思考】
    引用類型作為方法的參數(shù)和返回值
    引用類型作為成員變量
    
    如果引用類型是普通類,那么需要用到該普通類的對象
    如果引用類型是抽象類,那么需要用到該抽象類的子類對象
    如果引用類型是接口,那么需要用到該接口的實現(xiàn)類對象  
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末靶草,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子岳遥,更是在濱河造成了極大的恐慌奕翔,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浩蓉,死亡現(xiàn)場離奇詭異派继,居然都是意外死亡,警方通過查閱死者的電腦和手機捻艳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門驾窟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人讯泣,你說我怎么就攤上這事纫普≡暮罚” “怎么了好渠?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵昨稼,是天一觀的道長。 經(jīng)常有香客問我拳锚,道長假栓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任霍掺,我火速辦了婚禮匾荆,結果婚禮上,老公的妹妹穿的比我還像新娘杆烁。我一直安慰自己牙丽,他們只是感情好,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布兔魂。 她就那樣靜靜地躺著烤芦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪析校。 梳的紋絲不亂的頭發(fā)上构罗,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音智玻,去河邊找鬼遂唧。 笑死,一個胖子當著我的面吹牛吊奢,可吹牛的內容都是我干的盖彭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼页滚,長吁一口氣:“原來是場噩夢啊……” “哼谬泌!你這毒婦竟也來了?” 一聲冷哼從身側響起逻谦,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤掌实,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后邦马,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贱鼻,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年滋将,在試婚紗的時候發(fā)現(xiàn)自己被綠了邻悬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡随闽,死狀恐怖父丰,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤蛾扇,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布攘烛,位于F島的核電站,受9級特大地震影響镀首,放射性物質發(fā)生泄漏坟漱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一更哄、第九天 我趴在偏房一處隱蔽的房頂上張望芋齿。 院中可真熱鬧,春花似錦成翩、人聲如沸觅捆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惠拭。三九已至,卻和暖如春庸论,著一層夾襖步出監(jiān)牢的瞬間职辅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工聂示, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留域携,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓鱼喉,卻偏偏與公主長得像秀鞭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子扛禽,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內容