java8 中的时间和数据的变化

  java8除了lambda表达式之外还对时间和数组这两块常用API做想应调整,

Stream 有几个常用函数:

store 排序 (a,b)-> a.compareTo(b)  排出来的结果是正序,从小到大 如果(a,b)->b.compareTo(a) 排出来的结果是从大到小

filter 拦截,过滤.根据条件过滤

forEeach 迭代每个元素

map 变更或者替换

limit 长度或者符合数量的限制

skip 跳到某个开始点,skip和limit组合可以制造分页的效果

sum ,count是常规聚合参数

distinct 去除重复数据,这里的去重比较是两个对象是否相等 object.equal(object).不能实现根据某个字段属性进行去重.当然单纯根据属性去重也不符合正常逻辑

ps:这些组合所需循环是一次的,很高效

java8中日期时间的API

 1     //java8 时间API的更新
 2         Clock clock=Clock.systemUTC();
 3         System.out.println(clock.millis());
 4         //时间线 Instant
 5         Instant instant =Instant.now();
 6         Thread.sleep(1000);
 7         Instant end = Instant.now();
 8         //时间间隔 duration
 9         Duration duration=Duration.between(instant, end);
10         System.out.println("this time :"+duration.toMillis());
11         //本地日期 没有时分秒的
12         LocalDate localDate= LocalDate.now();      //TemporalAjusters 时间运算
13         LocalDate localDate1=    localDate.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.FRIDAY));
14         System.out.println(localDate1);
15         //自定义日期矫正器 利用plus*方法可以很方便对时间进行运行
16
17         TemporalAdjuster Next_WorkDay = w -> {//自定义校正器
18             LocalDate resultDate = (LocalDate) w;
19             do {
20                 resultDate = resultDate.plusMonths(1).plusDays(-1);
21             } while (resultDate.getDayOfWeek().getValue() >= 6);
22             return resultDate;
23         };
24
25         LocalDate localDate2 =localDate1.with(Next_WorkDay);
26         System.out.println("下个月的时间"+localDate2);
27         //时间格式,关键是本地时间!!用有时分秒的
28         LocalDateTime localDateTime = LocalDateTime.now();
29          System.out.println("time type:"+DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(
30                     localDateTime));// 语言相关格式 时间格式转换也封装比较好了
31
32          System.out.println("time type:"+DateTimeFormatter.ofPattern("yyyy/mm/dd hh").format(
33                     localDateTime));
时间: 2024-10-13 23:28:17

java8 中的时间和数据的变化的相关文章

Java8中对时间的处理

目录 java8时间处理测试 基于java8封装的时间处理工具类 Java8中对时间的处理主要是LocalDate.LocalTime.LocalDateTime这几个类实现,直接看下面的测试代码,注释很详细. @ java8时间处理测试 /** * java8时间处理测试 * LocalDate.LocalTime.LocalDateTime * 说明: * <p> * 创建人: LGQ <br> * 创建时间: 2018年8月21日 下午1:52:28 <br> *

数据库之取出表中最新时间的数据

以下内容仅做备忘 假设有以下表格[FM_ALARM] RES_ID : 资源的唯一标识 OCCUR_TIME : 发生时间(毫秒时间戳) SEVERITY : 告警级别 数据会实时变更,我要取出所有数据的最新一条记录,则可以使用以下SQL select res_id, severity from fm_alarm t where not exists (select 1 from fm_alarm where t.res_id = res_id and t.occur_time < occur_

Java8中新增的日期和时间API

1.计算时间间隔 Java8之前,我们想要确定一个方法的运行时间长度,可以这样: long start = System.currentTimeMillis(); doSomething(); long end = System.currentTimeMillis(); System.out.println(end-start); Java8中,可以这样 Instant start = Instant.now(); doSomething(); Instant end = Instant.now

查询oracle 数据库中回滚段中一个时间点被修改的表数据并还原表中原来数据

利用下面的SQL就可以查处最近更改的数据. SQL> SELECT ID,NAME,VERSIONS_STARTTIME,VERSIONS_ENDTIME,VERSIONS_OPERATION FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE WHERE VERSIONS_STARTTIME IS NOT NULL ORDER BY VERSIONS_STARTTIME DESC; 通过以上小实验可以看出,VERSIONS_ST

Java8中时间日期库的20个常用使用示例

除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API.Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的.看来Java已经意识到需要为时间及日期功能提供更好的支持了,这对已经习惯使用Joda时间日期库的社区而言也是件好事.关于这个新的时间日期库的最大的优点

ConcurrentHashMap在Java8中的变化

增加红黑树这个存储结构 在Java8中,为什么要增加红黑树这种数据结构来进行存储,而不是全部使用链表来进行存储呢? 1.因为攻击者可以构造大量具有相同hashCode的内容,使其全部放在同一个列表中,这样,在查找的时候,所花费的时间会很长.这个时候,如果采用红黑树这个结构来进行存储,那么其查找的效率会高很多. 2.hashCode()函数的计算有时候并不合理,例如重写hashCode函数的时候.如果都映射到同一个位置,那么查找的时间也会很长. mappingCount() 在Concurrent

面试官,Java8中JVM内存结构变了,永久代到元空间

在Java8和以后版本中JVM的内存结构慢慢发生了变化.作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点. 如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后的内部变化.现在意×××"的好处了吧.在这里可以不断的刷新你的知识和认知. JVM内存结构的细化 来看一下JVM中的内存结构图. 为了更细化的讲解,我们将该图进行进一步的优化调整.针对java7及以

SpringMVC 返回Java 8 时间JSON数据的格式化问题处理

有时在Spring MVC中返回JSON格式的response的时候会使用@ResponseBody注解,不过在处理时间的时候会很麻烦,一般我们使用的HTTPMessageConverter是MappingJackson2HttpMessageConverter,它默认返回的时间格式是这种: 1 "startDate" : { 2 "year" : 2010, 3 "month" : "JANUARY", 4 "da

Java8 中 ConcurrentHashMap工作原理的要点分析

简介: 本文主要介绍Java8中的并发容器ConcurrentHashMap的工作原理,和其它文章不同的是,本文重点分析了不同线程的各类并发操作如get,put,remove之间是如何同步的,以及这些操作和扩容操作之间同步可能出现的各种情况.由于源代码的分析肯定会有所纰漏,希望大家积极指出错误. 欢迎探讨,如有错误敬请指正 如需转载,请注明出处 http://www.cnblogs.com/nullzx/ 1.Java8中 ConcurrentHashMap的结构 图片来源(http://www