回顧
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)類對象