Java新特性
Java新特性
梁云亮
电 话:13264494458
微 信:13264494458
扣 扣:369950806
展开
-
关于Stream.toList()方法使用小记
使用List.of()和Stream.toList()生成的List的内容是不能发生变化的。原创 2024-06-06 18:25:26 · 691 阅读 · 0 评论 -
【精品】集合list去重
【代码】【精品】集合list去重。原创 2024-02-29 20:01:44 · 606 阅读 · 0 评论 -
【精品】关于枚举的高级用法
【代码】【精品】关于枚举的高级用法。原创 2024-02-16 12:04:44 · 718 阅读 · 0 评论 -
String字符数组转成Long列表或数组
【代码】String字符数组转成Long列表或数组。原创 2024-02-13 18:51:49 · 1001 阅读 · 0 评论 -
【精品】list 元素 分组
在开发过程中,经常会遇到把一个List集合中的对象按照某个属性进行分组,然后对分组后的结果进行处理的这种情况。两种方式效果完全一致。原创 2023-03-10 11:28:24 · 250 阅读 · 1 评论 -
stream操作常用API 示例详解
从JDK8开始,增加了一新特性Stream流式操作,Stream中提供了非常多的API供大家使用,灵活的使用这些API,可以非常的方便且优美的实现我们的代码逻辑。原创 2023-02-02 19:48:08 · 5000 阅读 · 0 评论 -
第十三章 新特性
13.1 JSR\JCPJSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。JCP(Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。2018年5月17日,作为唯一中国代表,阿里巴巴获邀加原创 2022-03-08 09:43:35 · 205 阅读 · 0 评论 -
第十章 Lambda 表达式
10.1 lambda概念Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代原创 2022-03-07 13:23:47 · 411 阅读 · 0 评论 -
Java8后 日期时间格式化及解析
简介在Java 8之前,我们使用SimpleDateFormat和DateFormat类来表示一种格式,这存在很多问题,例如它们笨重,易变且不是线程安全的,这意味着无法共享它们,并且每次都需要要将String转换为Date,必须创建一个新的DateFormat对象。 尽管将SimpleDateFormat封装到线程局部变量中确实可以缓解,但这还不够。JDK 8在新的DateTimeFormatter类中解决了该问题,该类可用于定义日期和时间格式,例如“ yyyy-MM-dd HH:mm:SS”,用于指定原创 2022-03-28 15:01:14 · 6172 阅读 · 2 评论 -
Java14:模式匹配:instanceof
示例1 public static void main(String[] args) { Object obj1 = "好好学习,天天向上"; //传统代码 if (obj1 instanceof String) { String str = (String) obj1; System.out.println(str); } else { System.out.prin原创 2021-10-09 17:30:13 · 326 阅读 · 3 评论 -
Java13:文本块
示例1 public static void main(String[] args) { String text1= "春种一粒粟,秋收万颗子。\n" + "四海无闲田,农夫犹饿死。\n" + "锄禾日当午,汗滴禾下土。\n" + "谁知盘中餐,粒粒皆辛苦。"; System.out.println(text1); System.out.println(text1原创 2021-10-09 17:13:21 · 291 阅读 · 3 评论 -
Java15:密封类 sealed class
原理默认情况下,只要类没有使用final修饰符修饰,那么任何类都可以从该类继承。从Java 15开始,Java允许使用sealed修饰类,并通过permits明确指定能够从该class继承的子类。示例public abstract sealed class Shape permits Ellipse, Rectangle { //abstract void fun();}final class Ellipse extends Shape {}non-sealed class Recta原创 2021-10-09 16:49:17 · 580 阅读 · 3 评论 -
Intellij 自定义 Live Templates
设置将List转换为Map在Template text中具体代码:/** * 按照指定映射关系,将列表转化为Map * * * @param data 原始数据 * @param function 映射函数 * @param <K> 映射属性类型 * @param <T> 数据类型 * @return 映射结果 */private <K, T> Map<K, T> list2Map(List<T> data, $END原创 2021-08-24 08:05:54 · 329 阅读 · 5 评论 -
函数式接口
函数式接口函数式接口指的是只有一抽象方法的接口,比如java.lang.Runnable就是一个函数式接口,在Runnable接口中只有一个run()方法:@FunctionalInterfacepublic interface Runnable { public abstract void run();}函数式接口可以使用注解@FunctionalInterface标。使用@FunctionalInterface标的接口中只能有一个抽象方法如果有多个的话,编译阶段就会报错。Lambd原创 2021-08-23 08:38:37 · 347 阅读 · 16 评论 -
Optional在SpringBoot中的实际应用
第一步:实体类@Data@ToStringpublic class User { private Integer id; @NotBlank(message = "用户名不能为空") @Length(min = 6, max = 32, message = "用户名的长度需要在6~32之间") private String name; @Past(message = "出生日期必须早于当前日期") @DateTimeFormat(pattern =原创 2021-08-17 06:40:30 · 1009 阅读 · 0 评论 -
【精品】基于Java8的日期时间工具类
public class DateTimeUtils { /** * 考虑港股和美股 采用GMT-1时区来确定报表日 即T日的报表包含北京时间T日9时至T+1日9时的数据 */ public static final ZoneId TIMEZONE_GMT_1 = ZoneId.of("GMT-1"); public static final ZoneI...原创 2020-04-08 21:31:51 · 2474 阅读 · 3 评论 -
Java8中的引用:方法引用、构造器引用、数组引用
示例:演示方法引用的用法。基本实现实体类public class Person { int age; String firstName; String lastName; //…… 全参构造方法、toString()方法}测试代码public static void main(String[] args) { Person[] person...原创 2019-09-28 00:12:44 · 386 阅读 · 0 评论 -
Stream API 基础
Stream APIStream主要是用来对容器(集合、Map、数组、Optional)进行操作的。Stream常用的方法Stream的创建示例1:操作集合示例2:操作数组示例3:操作Optional...原创 2019-10-20 23:29:49 · 428 阅读 · 0 评论 -
Java 新的日期时间 API
新的日期时间 API示例1:本地化日期时间 API:LocalDate、LocalTime、LocalDateTime @Test public void dateAPI() { LocalDate localDate = LocalDate.of(1999,9,21); System.out.println(localDate); Sy...原创 2019-10-21 21:44:40 · 1764 阅读 · 0 评论 -
Stream API ---- 规约Reduce
Stream 规约规约操作(reduction operation)又被称作折叠操作(fold),是通过某个连接动作将所有元素汇总成一个汇总结果的过程。元素求和、求最大值或最小值、求出元素总个数、将所有元素转换成一个列表或集合,都属于规约操作。Stream类库有两个通用的规约操作reduce()和collect(),也有一些为简化书写而设计的专用规约操作,比如sum()、max()、min()、...原创 2019-10-22 17:00:39 · 850 阅读 · 1 评论 -
Stream API ---- 映射Map
Java Stream API ---- 映射mapmap的功能是对于Stream中包含的元素使用给定的转换函数进行转换。转换后新生成的Stream只包含转换后生成的元素。map接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。map()方法的声明如下:<R> Stream<R> map(Function<? super T, ? ex...原创 2019-10-22 17:14:19 · 2077 阅读 · 0 评论 -
Lambda表达式
Lambda表达式原创 2019-10-22 17:56:30 · 1040 阅读 · 3 评论 -
Java8之后的接口
Java8中的接口接口定义语法规则:public interface 接口名{ 常量 抽象方法 默认方法 //JAVA8 静态方法 //JAVA8 私有方法 //JAVA8}示例:演示Java8中接口的用法接口:public interface NewInter { int PAGE_NUM = 1234; void fun1...原创 2019-10-22 20:08:17 · 745 阅读 · 13 评论 -
Optional
Optionaljava.util.Optional类是从 Java 8 引入的。Optional 类主要解决空指针异常(NullPointerException) 的问题。本质上,Optional 类一个包含有可选值的容器类,它既可以含有对象也可以为空。示例1:public static void main(String[] args) { Optional<Object...原创 2019-11-06 09:44:15 · 1650 阅读 · 3 评论 -
Java创建Stream方式小结
1、Stream.of 可变参数Stream stream1 = Stream.of(“A”, “B”, “C”);System.out.println(“stream1:” + stream1.collect(joining()));程序输出:stream1:ABC2、Stream.of 数组String[] values = new String[]{“A”, “B”, “C”};Stream stream2 = Stream.of(values);System.out.println(原创 2021-04-30 02:24:35 · 254 阅读 · 0 评论 -
Stream API ---- 常见应用场景
Stream 常见应用场景操作集合示例1:public static void main(String[] args) { //通过集合创建 List<Dept> depts = DB.getDepts(); //筛选filter depts.stream().filter(item->item.getDname().length()>...原创 2019-11-13 11:07:58 · 1021 阅读 · 0 评论 -
产生指定范围内的LocalDate对象
public class GenLocalDateUtil { // LocalDate转Date public static Date localDate2Date(LocalDate localDate) { if (null == localDate) { return null; } ZonedDateTime zonedDateTime = localDate.at...原创 2020-01-08 14:46:06 · 2787 阅读 · 3 评论 -
Stream API ---- 收集器Collector
collect()毫不夸张的讲,如果发现某个功能在Stream接口中没找到,十有八九可以通过collect()方法实现。collect()是Stream接口方法中最灵活的一个,学会它才算真正入门Java函数式编程。收集器Collector收集器(Collector)是为Stream.collect()方法量身打造的工具接口。将一个Stream转换成一个容器(或者Map)我们至少需要考虑以下...原创 2019-11-11 01:17:02 · 532 阅读 · 0 评论 -
【精品】Lambda表达式操作集合
Lambda表达式的常见应用场景示例1:对List进行迭代public static void main(String[] args) { List<Dept> deptList = Arrays.asList(new Dept(1, "OPERATION", "BOSTON"), new Dept(3, "SALES", "CHICAGO"), n...原创 2019-10-19 11:52:23 · 844 阅读 · 14 评论 -
【精品】List和数组之间的转换
List转数组 public static void main(String[] args) { //System.out.println(firstUpper("zhangsan")); List<String> list = List.of("aa","bb","cc","dd"); String[] array1 = list.toArray(new String[0]); System.out.println(ar原创 2021-05-21 10:55:48 · 1124 阅读 · 6 评论