屌丝就爱尝鲜头——java8总结晒一晒

  前两节讨论了那么多,这节就是两个议题,讨论了新增的日期的api,再说一说我的Java8的一些心得体会了。

  首先,我们必须要搞清楚Java 8 为什么要增加新的日期的api,这是由于老的日期api非常的繁琐,使用起来非常不方便,Java作者奉行这变者通不变者死的原则,于是增加了这些api。下面,我们总点介绍这几个类——LocalDate类、LocalTime类、LocalDateTime类、DateTimeFormatter类,zoneDate类。一个个来看:

  Ⅰ、LocalDate类——返回日期类。

  LocalDate表示不带时区的日期,比如2000-1-1.此类的常见方法是:

  getYear——返回相应的年份,

  getMonth——返回相应的月份,

  getDayOfMonth——返回相应的月份的某一天,

  of——传递整型格式化日期。

  例如我们用此类将当前日期格式化xxxx年xx月xx日,并且与相应的tostring方法就行对比。例如,请看代码:

LocalDate localDate = LocalDate.now();
                     int year = localDate.getYear();
                     int month = localDate.getMonthValue();
                     int day=localDate.getDayOfMonth();
                     DecimalFormat decimalFormat=new DecimalFormat("00");
                     System.out.println(year+"年"+decimalFormat.format(month)+"月"+decimalFormat.format(day)+"日");
                     System.out.println(localDate.toString());

  运行结果如下:

  我们看到Localdate不想calendar类中的月份的值自动少一了。

  ⅡLocalTime类——返回时间类。

   LocalTime表示不带时区的时间,比如04:44:50.12。常见的方法有:

  getHour——返回当前所对应的小时数,

  getMinute——返回当前所对应的分钟数,

  getSecond——返回当前所对应的秒数,

  ofxxxx——返回所对应某(小时,分钟,秒)数.

  例如我们用此类将当前时间格式化xx时xx分xx秒,并且与相应的tostring方法就行对比。例如,请看代码:

    LocalTime time=LocalTime.now();
      DecimalFormat decimalFormat=new DecimalFormat("00");
      int hour= time.getHour();
      int minute=time.getMinute();
      int second=time.getSecond();
      System.out.println(decimalFormat.format(hour)+"时"+decimalFormat.format(minute)+"分"+decimalFormat.format(second));
      System.out.println(time.toString());

  运行结果如下:

  

  从而看出LocalTime能够抛弃时区的影响。

  ⅢLocalDateTime类——返回时间日期类。

  他是日期日期时间中一个最重要的类,它是LocalDate和LocalTime的组合体,表示的是不带时区的日期及时间。看上去,LocalDateTime和Instant很象,但记得的是“Instant中是不带时区的即时时间点。可能有人说,即时的时间点不就是日期+时间么?看上去是这样的,但还是有所区别,比如LocalDateTime对于用户来说,可能就只是一个简单的日期和时间的概念,考虑如下的例子:两个人都在2013年7月2日11点出生,第一个人是在英国出生,而第二个是在中国北京,如果我们问他们是在什么时候出生的话,则他们看上去都是在同样的时间出生(就是LocalDateTime所表达的),但如果我们根据时间线(如格林威治时间线)去仔细考察,则会发现在出生的人会比在英国出生的人稍微早8个小时(这就是Instant所表达的概念,并且要将其转换为UTC格式的时间)。常见的方法有:

  getYear——返回相应的年份,

  getMonth——返回相应的月份,

  getDayOfMonth——返回相应的月份的某一天,

  getHour——返回当前所对应的小时数,

  getMinute——返回当前所对应的分钟数,

  getSecond——返回当前所对应的秒数。

  例如我们用此类将当前时间格式化xxxx年xx月xx日 xx时xx分xx秒,并且与相应的tostring方法就行对比。例如,请看代码:

  LocalDateTime localDateTime = LocalDateTime.now();
        int year = localDateTime.getYear();
        int month = localDateTime.getMonthValue();
        int day = localDateTime.getDayOfMonth();
        DecimalFormat decimalFormat = new DecimalFormat("00");
        int hour = localDateTime.getHour();
        int minute = localDateTime.getMinute();
        int second = localDateTime.getSecond();
        System.out.println(year + "年" + decimalFormat.format(month) + "月"
                + decimalFormat.format(day) + "日" + " "
                + decimalFormat.format(hour) + "时"
                + decimalFormat.format(minute) + "分"
                + decimalFormat.format(second));
        System.out.println(localDateTime.toString());

  运行结果如下:

  ⅣDateTimeFormatter类——返回日期时间格式化类。

  java.text.NumberFormat不一样的是DateTimeFormatter是不可变的并且是类型安全的。常见的方法有:

  format方法——将其格式化成相应的字符串。请看源代码:

      DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("MM dd, yyyy - HH:mm");
             LocalDateTime parsed = LocalDateTime.parse("11 03, 2014 - 07:13", dateTimeFormatter);
             String string = dateTimeFormatter.format(parsed);
             System.out.println(string);

  运行结果如下:

  这样格式化字符串更加的方便

   ⅤZonedDateTime类——获取相应的时区时间,妈妈再也不用为我的时区问题发愁了。

  ZonedDateTime, ZoneId -时区很重要的时候使用.

  我们看个实例,获取相应时区时间:

  ZonedDateTime zonedDateTime= ZonedDateTime.now();
      System.out.println(zonedDateTime.toString());

 运行结果如下:

  

   看到没有了,能够获取相应时区。十分的方便。

  总之,Java8 日期的api十分方便。

  java8最终总结,一些边边角角的知识拾人牙慧

  

  反射和注解的变化

  通过类型注解,我们能够在更多的地方使用注解,例如像List<@Nullable String>这样的泛型参数中。这增强了通过静态分析工具发现错误的能力,它将增强并重定义Java内置的类型系统。

  Nashorn JavaScript引擎

  Nashorn是一个集成到JDK中的新的、轻量级、高性能的JavaScript实现。Nashorn是Rhino的继任者,它提升了性能和内存使用情况。它将会支持javax.script API,但是它并不会支持DOM/CSS,也不会包含浏览器插件API。

  java.lang、java.util等其他地方的新增功能

  Java 8还向很多其他的包中添加了大量其他的功能,在本文中我们并没有提及。下面是一些值得注意的内容。可以使用ThreadLocal.withInitial(Supplier)更加简洁的声明本地线程变量。长期未兑现的StringJoiner和String.join(...)现在已经是Java 8的一部分了。比较器提供了一些新的方法能够用于链接和基于域的比较。默认的字符串池映射大小更大了,大约在25—50K。

时间: 2024-10-31 06:32:28

屌丝就爱尝鲜头——java8总结晒一晒的相关文章

屌丝就爱尝鲜头——java8初体验

Java8已经推出,让我们看看他的魅力.让我们看看他改变较大的部分. 一.java8概述 Java8是由Oracle(甲骨文)公司与2014年3月27日正式推出的.Java8同时推出有3套语言系统,分别是Java SE8.Java SE Emebbled 8.Java ME8. Java SE8较以往的系统增强的功能有: ①增强了对集合式操作语言--lambda表达式的支持,"Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演

屌丝就爱尝鲜头——java8再判断

这节,我们来通过具体的实例来看看Java8的具体用法. 首当其冲,就是lambda用法. 这里的案例,就是用lambda来实现runnable接口,我们知道以前用匿名内部类的方式来实现runnable接口,这种方法晦涩难懂,用lambda表达式实现以后,这样的代码清爽了不少.上两种对比的代码: public static void main(String[] args) { new Runnable() { public void run() { System.out.println("这是匿名

我爱应用第3期:APP尝鲜者小米科技CEO雷军

雷军(微博)这次给我们带来了5款应用,看得出来雷军是一个APP尝鲜者,不论是刚刚推出不久的http://www.aliyun.com/zixun/aggregation/16442.html">Clear还是在国外非常深入人心的Evernote都获得了雷军的推荐. 以下为雷军推荐的5款应用: 1.工具类应用Evernote(下载) 推荐理由:我比较喜欢尝鲜,包里常常会有很多不同的手机.pad等等,而且经常更换.Evernote的多平台同步功能比较实用,简洁方便. 2.健康类应用Sports

华为借奇虎尝鲜互联网营销 周鸿祎出价太低无疾而终

高调合作,低调收场,华为借道奇虎360"尝鲜"互联网营销最后不得不无疾而终. "华为手机坚持精品路线,产品成本也因此偏高了些,做不到周鸿祎(奇虎360董事长)的更低价要求."华为终端董事长余承东在微博上感叹道. 9月6日,华为商场独力上架华为闪耀手机,这款定价为1499元,并被360高调宣传的手机最后安静地被放在商场的新品区.华为媒介负责人熊庆对<投资者报>记者表示,华为闪耀由华为独立营销,不属于360特供机范畴.而对于合作破裂的原因,华为并未回应,称华

视频“尝鲜”大数据:作用或被神化

"大数据",是今年最炙手可热的话题.美国视频网站Netflix豪赌1亿美元制作的连续剧<纸牌屋>也在这个概念下迅速走红,它的成功,让http://www.aliyun.com/zixun/aggregation/1728.html">国内视频网站也看到了"数据"的力量,开始试水,那么,大数据是否真的无所不能?国内会不会出现利用大数据算出的网络影视作品的成功案例? Netfilx"算"出<纸牌屋> Netfi

360杀毒首创尝鲜模式与用户共同完善产品

中新网4月2日电 "尝鲜"一般是指吃应市的新鲜美食,360杀毒近来也给软件爱好者创造了一种"尝鲜模式":与测试版.beta版等不同的是,360杀毒的"尝鲜"模式面向全体用户,第一时间将最新的技术尝试.用户体验改进和各种新功能推送到用户面前,并及时听取用户 意见,让用户和360共同来完善产品. 据360杀毒团队负责人介绍,按照软件行业的惯例,一款软件在发布正式版之前,通常都会针对一部分高端用户推出测试版,目的是寻找和修补产品BUG.360杀毒则是兼

微信小程序“满月”:尝鲜之后你还用过它吗?

距离2017年1月9日微信小程序上线,整整过去了一个月时间.和互联网时代每天出现的众多新鲜事物相似,小程序甫一诞生,立即占据了各大科技媒体网站头屏并引起社交圈的兴奋讨论.由于背靠微信,纷纷建起的小程序体验群迅速人数爆满,甚至有报道将其比作迄今"互联网史上最受追捧的'期货'". 这一现象很容易理解:毕竟拥有巨大用户基数,据2016年底微信团队公布的<2016微信数据报告>显示,微信平均日登录用户达7.68亿.所以微信稍有幅度的动作,都更容易激发市场想象,况且从以往表现来看,微

12000多人尝鲜海淘 销售额破1000万元

摘要: 被称为宁波版海淘的宁波跨境贸易 电子商务 进口业务,自2013年11月上线以来,已运行半年时间. 这半年间,平台运行情况如何?哪些产品是海淘族的最爱?近日,宁波海关发布了平台 被称为"宁波版海淘"的宁波跨境贸易 电子商务 进口业务,自2013年11月上线以来,已运行半年时间. 这半年间,平台运行情况如何?哪些产品是"海淘族"的最爱?近日,宁波海关发布了平台运行"半年报". 12000多人尝鲜海淘 销售额破1000万元 宁波,是继郑州.杭州

尝鲜Windows blue,驱动无忧还靠驱动人生5

微软Windows Blue泄漏了下载地址,再度掀起用户们尝鲜的热潮.不少用户已经行动起来,抢先体验Windows Blue的不一样之处.不管你是青睐于还未正式面世的Windows Blue还是更习惯于已经发布的win7/win8,每次安装好系统后首要需要解决的永远是驱动方面的问题!值此Windows Blue泄漏大家装系统热情高涨之际,小编推荐给大家驱动人生5这款便捷的驱动管理软件,帮助大家在体验安装新系统时,更方便快捷的解决驱动方面的问题! 打开驱动人生5,软件会自行对当前电脑里设备进行扫描