Java SE
1.Date 和 DateFormat
Date類及常用方法
java.util.Date 類用于封裝日期及時間信息。
Date 類的大多數(shù)用于進行時間分量計算的方法已經(jīng)被Calendar取代铸题。
//無參的構(gòu)造方法
Date date = new Date();
System.out.println(date); //Tue Apr 10 13:46:04 CST 2018
long time1 = date.getTime(); //獲取相應(yīng)的毫秒數(shù)歼秽,即1970年1月1日距現(xiàn)在的毫秒數(shù)筒繁。
date.setTime(time1 + 24 * 60 * 60 * 1000); //設(shè)置毫秒數(shù)
System.out.println(date); //Wed Apr 11 13:46:04 CST 2018
SimpleDateFormat類---format方法
java.text.SimpleDateFormat類用于實現(xiàn)Date對象和字符串表示的日期信息的轉(zhuǎn)換沪斟。
SimpleDateFormat(String pattern)
SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日");
Date date1 = new Date();
String dataStr = format1.format(date1);
System.out.println(dataStr); //2018年04月10日
SimpleDateFormat類---parse方法
和format方法相反静檬,parse方法用于按照特定格式將表示時間的字符串轉(zhuǎn)換成Date對象帘营。
String dataStr = "2013-01-23";
String pattern = "yyyy-MM-dd";
SimpleDateFormat format1 = new SimpleDateFormat(pattern);
Date date = null;
try {
date = format1.parse(dataStr);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date); //Wed Jan 23 00:00:00 CST 2013
常用格式字符串
yyyy-MM-dd HH:mm:ss (HH小時制图谷,hh12小時制)
DateFormat
DateFormat是SimpleDateFormat的父類翩活,其工廠方法getXXXInstance可以返回根據(jù)地域信息的默認格式的DateFormat對象。
Date date = new Date();
DateFormat df1 = DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.US);
System.out.println(df1.format(date)); //Apr 10, 2018
DateFormat df2 = DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.CHINA);
System.out.println(df2.format(date)); //2018-4-10
2.Calendar類
java.util.Calendar類用于封裝如理信息便贵,其主要的作用在于其方法可以對時間分量進行計算菠镇。
Calendar類是抽象類,其具體子類針對不同國家的日歷系統(tǒng)承璃,其中使用廣泛的CregorianCalendar(格里高利歷)利耍,對應(yīng)大多數(shù)國家的標(biāo)準(zhǔn)日歷系統(tǒng)。
Calendar c = Calendar.getInstance();
Calendar 分量計算
Calendar 通過set 和 get方法對各個時間分量進行設(shè)置及獲取盔粹。
Calendar c1 = Calendar.getInstance();
//設(shè)置年月日的分量
c1.set(Calendar.YEAR,2013);
c1.set(Calendar.MONTH,Calendar.JANUARY);
c1.set(Calendar.DATE,3);
System.out.println(c1.get(Calendar.DAY_OF_WEEK));
//輸出該日期星期幾隘梨,輸入為1為星期日。
System.out.println(c1.get(Calendar.DAY_OF_WEEK)); //add添加分量值
3.基本類型包裝類
Java的8種基本類型分別對應(yīng)8種“包裝類”舷嗡,每一個包裝類都封裝了一個對應(yīng)的基本類型成員變量轴猎,同時提供針對該數(shù)據(jù)類型的使用方法。
java.lang.Integer... ...Short 分別對應(yīng)int进萄、long捻脖、double、char中鼠、boolean郎仆、byte、float兜蠕、short 。
Interger和Double常用方法
System.out.println(Integer.MAX_VALUE);
System.out.println(Double.MAX_VALUE);
//parseInt和parseDouble分別將字符串解析成int 和double數(shù)據(jù)抛寝。
int n1 = Integer.parseInt("123");
double d1 = Double.parseDouble("1234.345");
//Integer 的toBinaryString和toHexString分別將int數(shù)據(jù)轉(zhuǎn)換成二進制和十六進制的字符串序列熊杨。
String bStr = Integer.toBinaryString(100);
String hStr = Integer.toHexString(100);
BigDecimal類
Java的float和double在運算會有舍入誤差。如果希望精確的計算盗舰,可以使用java.math.BigDecimal類晶府。
BigDecimal d1 = new BigDecimal("3.0");
BigDecimal d2 = new BigDecimal("2.9");
//除了subtract還有add、multiply钻趋、divide等川陆。
BigDecimal d3 = d1.subtract(d2);
System.out.println(d3);//0.1
BigDecimal d4 = d1.divide(d2,8,BigDecimal.ROUND_HALF_UP);
//ROUND_HALF_UP通常是四舍五入模式
System.out.println(d4);
BigInterger類
理論上BigInterger類的存儲范圍只受內(nèi)存容量的限制。
BigInteger sum = BigInteger.valueOf(1);
for (int i = 2; i <200; i++) {
sum = sum.multiply(BigInteger.valueOf(i));
}
System.out.println(sum.toString().length());
System.out.println(sum);
4.Collection框架及List集合
集合框架用于存儲對象的特定數(shù)據(jù)結(jié)構(gòu)的容器蛮位。集合包含不同的數(shù)據(jù)結(jié)構(gòu)(線性表较沪、查找表)的實現(xiàn)類鳞绕。
int size(); //返回對象的個數(shù)
boolean isEmpty(); //是否為空
boolean contains(Object); //是否包含指定對象
void clear(); //清空
boolean add(E e); //添加對象
boolean remove(Object o); //移除對象
boolean addAll(Collection<?extends E> c); //將一個集合的所有元素添加到集合中
boolean removeAll(Collection<?> c); //刪除集合中與另一個集合中相同的全部元素
Iterator<E> iterator(); //返回該集合的對應(yīng)的迭代器
ArrayList和LinkedList
List接口是Colletion的子接口,用于定義線性數(shù)據(jù)結(jié)構(gòu)尸曼;可以理解為存放對象的數(shù)組们何,只不過其元素個數(shù)可以動態(tài)的增加或減少。
ArrayList和LinkedList分別用動態(tài)數(shù)組和鏈表的方式實現(xiàn)了List接口控轿。
ArrayList更適合隨機訪問冤竹,而LinkledList更適合于插入和刪除。
List常用方法
String str = new String();
ArrayList list = new ArrayList();
list.add("one");
list.add("two");
list.add("three");
System.out.println(list.get(1));//two
Object o1 = list.set(1,"five");
System.out.println(o1);//five
System.out.println(list.size()); //3
System.out.println(list.toString()); //[one, five, three]
if (list.contains("one")){
list.remove("one");
}
System.out.println(list.size()); //2
System.out.println(list.toString()); //[two, three]
list.clear();
System.out.println(list.isEmpty()); //true
5.迭代器
所有Collection的實現(xiàn)類都實現(xiàn)了其iterator方法茬射,該方法返回一個Iterator接口類型的對象鹦蠕,用于實現(xiàn)對集合元素的迭代便利。Iterator定義有三個方法:
- boolean hasNext();//判斷指針后面是否有蒜素
- E next();//指針后移在抛,返回當(dāng)前的元素钟病。
- void remove();//在原集合中刪除剛剛返回的元素。
ArrayList list = new ArrayList();
list.add("one");list.add("two");list.add("#");list.add("three");list.add("#");
Iterator it = list.iterator();
while (it.hasNext()) {
Object obj = it.next();
if ("#".equals(obj)) it.remove();
}
System.out.println(list);