實用類(Math,String及Date,Calendar)
Java API:Java Application Programming Interface 即Java應用程序編程接口
java.lang:編寫Java程序時最廣泛使用的包,自動導入到所有的程序中,包含了Java程序的基礎類和接口.
java.util:包含了系統輔助類,特別是Collection.List和Map等集合類
java.io:包含了與輸入/輸出有關的類,如文件操作等類
java.net:包含了與網絡有關的類,如Socket
java.sql:包含了與數據庫相關的類
包裝類的特點:
1,所有包裝類都是final類型,不能創建它們的子類
2,JDK1.5後,允許基本數據類型和包裝類型進行混合數學運算
3,包裝類並不是用來取代基本數據類型的
在基本數據類型需要用對象表示時使用
==>java.lang包
Math類
Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
常用的數學運算方法和兩個靜態常量E(自然對數的底數)和PI(圓周率)
Math.abs(-3.5);//絕對值
Math.max(2.5,56.6);
int random = (int) (Math.random()*10);//生成0-9之間的隨機數
random(): 0(包括)-1(不包括)之間的隨機浮點數
==>另一種方法:java.util.Random
Random random = new Random(種子);
Random random1 = new Random(100);
Random random2 = new Random(100);
==>random1.nextInt() == random2.nextInt()
用同一個種子值來初始化兩個Random對象,然後用每個對象調用相同的方法,得到的隨機數也是相同的.
String類
(1)length():長度 方法
對比:數組.length 屬性
(2)equals():比較存儲對象的字符串內容是否相同(String類型重寫後判斷內容是否相等)
equalsIgnoreCase():忽略大小寫
toLowerCase():轉換為小寫
toUpperCase():轉換為大寫
equals() 和 "==" 區別:
==
既可以比較基本數據類型,也可以比較引用數據類型,比較基本數據類型比的是值,比較引用數據類型比的是地址值
equals
只能比較引用數據類型,方法被重寫之前和==的意義是一樣的,比的是地址值,重寫之後按照重寫的規則
(String類對equals()方法進行了重寫,只比較字符內容是否相同)
String s1 = "java"; String s2 = "java"; //字符串池,s1 s2 是同一個對象 String s3 = new String("java"); //堆,新的內存地址,新的對象(字符串池如沒有,也會放一個對象)s1==s2 //true s1==s3 //false s1.equals(s3) //true
(3)字符串的連接
①"+"
②concat()
註意:字符串方法操作(變大寫,小寫,連接,截取...)的變化都作用於字符串的副本,而不是本身(需接收)
(4)字符串提取方法
public int indexOf(int ch) ch第一次出現的位置,從0開始找,找不到返回-1
public int indexOf(String value) 字符串第一次出現的位置
public int lastIndexOf(int ch)
public int lastIndexOf(String value)
public String substring(int index)
public String substring(int beginindex,int endindex) 包含起始位置,不包含結束位置
public String trim() 返回去掉前後空格字符串的副本
(5)split():字符串拆分,返回字符串數組
(6)endsWith();是否以指定字符串結尾
startsWith();
StringBuffer類:操作字符串
對字符本身修改,操作效率更高
StringBuffer sBuffer = new StringBuffer("北大青鳥");
toString(): StringBuffer-->String
方法:
append():追加
insert(位置,參數):某個位置插入,參數可以是包括String的任何數據類型
String是不可變對象(操作的是副本)
StringBuffer是可變的字符串
StringBuild
註意:String類的concat()方法只能將String類型的字符串追加到一個字符串後面
StringBuffer類可以將任何類型的值追加到字符串後面
String類,StringBuffer類及StringBuilder類對比
1,String:字符串常量
String類是不可變的對象,在每次對String類型進行改變的時候其實都等同於生成了一個新的String對象,然後指向新的String對象,
所以經常改變內容的字符串最好不要用String類型,因為每次生成對象都會對系統性能產生影響.
2,StringBuffer:字符串變量
StringBuffer是可變的字符串,在每次對StringBuffer對象進行改變時,會對StringBuffer對象本身進行操作,而不是生成新的對象,
再改變對象引用.所以,在字符串對象經常改變的情況下推薦使用StringFuffer類
3,SStringBuilder:字符串變量
和StringBuffer等價,區別在於StringBuffer類是線程安全的,StringBuilder類是單線程的,不提供同步,理論上效率更高.
-==>java.util包
格式化是指日期轉換為文本,解析是指文本轉換為日期格式Date類 java.util.Date;
//java.text.SimpleDateFormat
格式化輸出日期
Date date = new Date(); System.out.println(date); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dString = format.format(date); System.out.println(dString);
Calendar類:操作日期時間
抽象類,java.util.Calendar
用於設置和獲取日期/時間數據的特定部分
Calendar類提供一些方法和靜態字段來操作日歷
方法 說明
int get(int field) 返回給定日歷字段的值
MONTH 指示月
DAY_OF_MONTH 指示一個月中某天
DAY_OF_WEEK 指示一個星期中的某天
Calendar calendar = Calendar.getInstance();
calendar.get(Calendar.YEAR) //返回年
calendar.get(Calendar.MONTH)+1 //返回月
calendar.get(Calendar.DAY_OF_MONTH) //返回天
calendar.get(Calendar.DAY_OF_WEEK)-1 //返回星期
System.currentTimeMillis 當前毫秒時間
1 GregorianCalendar 是 Calendar 的一個具體子類,提供了世界上大多數國家/地區使用的標準日歷系統。 2 boolean isLeapYear(int year) 確定給定的年份是否為閏年。 3 4 GregorianCalendar gcalendar = new GregorianCalendar(); 5 Calendar c = Calendar.getInstance(); 6 boolean flag = gcalendar.isLeapYear(c.get(Calendar.YEAR)); 7 if (flag){ 8 System.out.println(c.get(Calendar.YEAR) + "是閏年"); 9 } else { 10 System.out.println(c.get(Calendar.YEAR) + "不是閏年"); 11 } 12 13 ===> gcalendar.isLeapYear(2012); -->可直接傳入年份
實用類(Math,String及Date,Calendar)