Java8新特性
来源:互联网 发布:php 数组去除空值 编辑:程序博客网 时间:2024/06/01 18:42
2014年3月27日正式推出Java8
重要特性:
Lambda
Nashorn JavaScript
新的日期与时间API
一套简洁的配置文件
从JVM中去除了“永久代”
增强的注解功能
下列代码下载链接: 点击打开链接
一、Lambda
1.参数列表:
2.箭头符号“->”
3.代码块
【代码示例】
public static void main(String[] args) { new Action(){ @Override public void execute(String content){ System.out.println(content); } }.execute("jdk8之前版本"); Action login=(String content)->{ System.out.println(content); }; login.execute("jdk8之lembda语法");} static interface Action{ void execute(String content); }
二、Stream数据流
【Person类】
public class Person { public static enum Sex{Male,Female;} private String name; private Sex gender; private int age; private double height; public String getName() { return name; } public void setName(String name) { this.name = name; } public Sex getGender() { return gender; } public void setGender(Sex gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", gender=" + gender + ", age=" + age + ", height=" + height + '}'; } public Person(String name, Sex gender, int age, double height) { this.name = name; this.gender = gender; this.age = age; this.height = height; } public Person() { }}
【代码示例】
public static void main(String[] args) { List<Person> personList = createPerson(); Stream<Person> stream= personList.stream(); stream.forEach( p-> System.out.println(p.toString()) ); } static List<Person> createPerson(){ List<Person> personList = new ArrayList<>(); Person p = new Person("milan",Person.Sex.Male,117,1988); personList.add(p); p = new Person("kaka",Person.Sex.Male,22,1984); personList.add(p); p = new Person("Inzaghi",Person.Sex.Male,117,1976); personList.add(p); p = new Person("sheva",Person.Sex.Male,117,1976); personList.add(p); return personList; }
三、过滤器filter
【代码示例】
public static void main(String[] args) { List<Person> personList = createPerson(); personList.stream() .filter(person -> person.getGender()==Person.Sex.Male) .forEach(person -> System.out.println(person)); } static List<Person> createPerson(){ List<Person> personList = new ArrayList<>(); Person p = new Person("milan", Person.Sex.Male,117,1988); personList.add(p); p = new Person("kaka", Person.Sex.Female,22,1984); personList.add(p); p = new Person("Inzaghi", Person.Sex.Male,43,1976); personList.add(p); p = new Person("sheva", Person.Sex.Female,40,1976); personList.add(p); return personList; }
四、DoubleStream类
【代码示例】
public static void main(String[] args) { List<Person> personList = createPerson(); double avgrageHeight = personList.stream() .filter(person -> person.getName().indexOf("i")>=0) .mapToDouble(person -> person.getHeight()) .average() .getAsDouble(); System.out.println("包含i的"+avgrageHeight); } static List<Person> createPerson(){ List<Person> personList = new ArrayList<>(); Person p = new Person("milan", Person.Sex.Male,117,1899); personList.add(p); p = new Person("kaka", Person.Sex.Female,22,1984); personList.add(p); p = new Person("Inzaghi", Person.Sex.Male,43,1976); personList.add(p); p = new Person("sheva", Person.Sex.Female,40,1976); personList.add(p); return personList; }
五、LocalDate
【代码示例】
public static void main(String[] args) { LocalDate dateTime = LocalDate.now(); System.out.println(dateTime.getYear()+"年"); System.out.println(dateTime.getMonthValue()+"月"); System.out.println(dateTime.getDayOfMonth()+"日"); }
六、LocalTime
【代码示例】
public static void main(String[] args) { LocalTime localTime = LocalTime.now(); System.out.println(localTime.getHour()+"时"); System.out.println(localTime.getMinute()+"分"); System.out.println(localTime.getSecond()+"秒"); System.out.println(localTime.toString()); }
七、LocalDateTime
【代码示例】
public static void main(String[] args) { LocalDateTime localDateTime = LocalDateTime.now(); System.out.println(localDateTime.getYear()+"年"); System.out.println(localDateTime.getMonthValue()+"月"); System.out.println(localDateTime.getDayOfMonth()+"日"); System.out.println(localDateTime.getHour()+"时"); System.out.println(localDateTime.getMinute()+"分"); System.out.println(localDateTime.getSecond()+"秒"); System.out.println(localDateTime.toString()); }
八、DateTimeFormatter
【代码示例】
public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss"); LocalDateTime date = LocalDateTime.parse("2016-11-11:21:42:22",formatter); System.out.println(date.toString()); }
九、ZonedDateTime
【代码示例】
public static void main(String[] args) { ZonedDateTime zonedDateTime = ZonedDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy:HH:mm:ss"); System.out.println(zonedDateTime.format(formatter)); }
0 0
- java8 新特性
- java8新特性 ---译
- Java8新特性教程
- Java8新特性学习
- JAVA8新特性
- Java8新特性详解
- JAVA8的新特性
- java8 新特性
- java8新特性
- java8 新特性
- JAVA8新特性一览
- Java8 新特性学习
- Java8新特性 Stream
- java8新特性
- java8新特性
- java8新特性
- java8新特性学习
- JAVA8新特性
- 如何高效的构建nodejs项目
- 米斯特白帽培训讲义 漏洞篇 代码执行
- Java设计模式一——策略模式
- 从Instant run谈Android替换Application和动态加载机制
- 设计模式——单例模式
- Java8新特性
- 关于全局变量的初始化问题与野指针
- VLC SDK在VS2010中的配置及简单使用举例
- codeforces 749C Voting
- Git Tag 标签
- hackinglab.cn脚本关之十
- 如何让区块链连接外面的世界
- hdu 1576 A/B(扩展欧几里德)
- ORACLE 绑定变量用法总结