Java SE 2

Java SE

1.Date 和 DateFormat

Date类及常用方法

java.util.Date 类用于封装日期及时间信息。
Date 类的大多数用于进行时间分量计算的方法已经被Calendar取代。

    //无参的构造方法
    Date date = new Date();
    System.out.println(date); //Tue Apr 10 13:46:04 CST 2018
    long time1 = date.getTime(); //获取相应的毫秒数,即1970年1月1日距现在的毫秒数。
    date.setTime(time1 + 24 * 60 * 60 * 1000); //设置毫秒数
    System.out.println(date); //Wed Apr 11 13:46:04 CST 2018
SimpleDateFormat类---format方法

java.text.SimpleDateFormat类用于实现Date对象和字符串表示的日期信息的转换。
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方法用于按照特定格式将表示时间的字符串转换成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可以返回根据地域信息的默认格式的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类是抽象类,其具体子类针对不同国家的日历系统,其中使用广泛的CregorianCalendar(格里高利历),对应大多数国家的标准日历系统。
Calendar c = Calendar.getInstance();

Calendar 分量计算

Calendar 通过set 和 get方法对各个时间分量进行设置及获取。

    Calendar c1 = Calendar.getInstance();
    //设置年月日的分量
    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种基本类型分别对应8种“包装类”,每一个包装类都封装了一个对应的基本类型成员变量,同时提供针对该数据类型的使用方法。
java.lang.Integer... ...Short 分别对应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数据。
    int n1 = Integer.parseInt("123");
    double d1 = Double.parseDouble("1234.345");
    //Integer 的toBinaryString和toHexString分别将int数据转换成二进制和十六进制的字符串序列。
    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类的存储范围只受内存容量的限制。

    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集合

集合框架用于存储对象的特定数据结构的容器。集合包含不同的数据结构(线性表、查找表)的实现类。

    int size(); //返回对象的个数
    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(); //返回该集合的对应的迭代器
ArrayList和LinkedList

List接口是Colletion的子接口,用于定义线性数据结构;可以理解为存放对象的数组,只不过其元素个数可以动态的增加或减少。
ArrayList和LinkedList分别用动态数组和链表的方式实现了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的实现类都实现了其iterator方法,该方法返回一个Iterator接口类型的对象,用于实现对集合元素的迭代便利。Iterator定义有三个方法:

  • boolean hasNext();//判断指针后面是否有蒜素
  • E next();//指针后移,返回当前的元素。
  • 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);
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容