Java SE 2

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);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霜定,一起剝皮案震驚了整個濱河市档悠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌望浩,老刑警劉巖辖所,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異磨德,居然都是意外死亡缘回,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門典挑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酥宴,“玉大人,你說我怎么就攤上這事您觉∽竟眩” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵琳水,是天一觀的道長肆糕。 經(jīng)常有香客問我,道長在孝,這世上最難降的妖魔是什么诚啃? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮私沮,結(jié)果婚禮上始赎,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好造垛,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布魔招。 她就那樣靜靜地躺著,像睡著了一般筋搏。 火紅的嫁衣襯著肌膚如雪仆百。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天奔脐,我揣著相機與錄音俄周,去河邊找鬼。 笑死髓迎,一個胖子當(dāng)著我的面吹牛峦朗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播排龄,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼波势,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了橄维?” 一聲冷哼從身側(cè)響起尺铣,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎争舞,沒想到半個月后凛忿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡竞川,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年店溢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片委乌。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡床牧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遭贸,到底是詐尸還是另有隱情戈咳,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布壕吹,位于F島的核電站著蛙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏算利。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一泳姐、第九天 我趴在偏房一處隱蔽的房頂上張望效拭。 院中可真熱鬧,春花似錦、人聲如沸缎患。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挤渔。三九已至肮街,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間判导,已是汗流浹背嫉父。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留眼刃,地道東北人绕辖。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像擂红,于是被迫代替她去往敵國和親仪际。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容