一。  lambda表达式

参考 https://www.cnblogs.com/franson-2016/p/5593080.html

package com.mytest.java8;

import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors; /**
* @author zhangc
* @since 2019/1/25 10:39
* java 双冒号
* 用法: 遍历, 匿名内部类
* java stream
* filter 可以过滤内容
* limit 可以限制条数
* sort 可以帮助排序
* min,max 最大最小,类似比较
* map 可以指定处理如String转int ,或者指定要用的字段如Person::age
* collect 收集信息,如把一个list 用逗号关联
* summaryStatistics 可以统计一组数字:最大最小平均总和等
**/
public class Colon {
public static void main(String[] args) {
List<String> a1 = Arrays.asList("a","b","c","d");
a1.forEach(x -> printValur(x)); Consumer<String> consumer = Colon::printValur;
a1.forEach(x -> consumer.accept(x)); a1.forEach(System.out::println); new Thread(new Runnable() {
@Override
public void run() {
System.out.println("run");
}
}).start(); new Thread(()->{
System.out.println("run");
System.out.println("run1");
}).start(); // ()-> 相当于new+方法参数 和 方法实现 String[] pl = new String[]{"fds","fds","121","1211111","1233","dkk"};
//Arrays.sort(pl,(String x,String x1)->(x.compareTo(x1)));
//Arrays.asList(pl).forEach(x-> System.out.println(x));
Arrays.sort(pl,Comparable::compareTo);
Arrays.asList(pl).forEach(x-> System.out.println("张"+x));
Predicate<String> p1 = (p)->p.length()<5;
Arrays.asList(pl).stream().filter(p1).limit(3).forEach(x-> System.out.println("filter"+x)); String[] p2 = new String[]{"fds","fds","121","1211111","1233","dkk"};
Arrays.asList(p2).stream().sorted(Comparable::compareTo).forEach(x->System.out.println("so"+x));
String dou = Arrays.asList(p2).stream().sorted(Comparable::compareTo).map(String::toString).collect(Collectors.joining(","));
System.out.println(dou); List<Integer> sta = Arrays.asList(1,2,3,4,5);
IntSummaryStatistics ins = sta.stream().mapToInt((x)->x).summaryStatistics();
System.out.println(ins.getAverage() + ":" + ins.getCount() +":" + ins.getSum()+":"+ins.getMax()); } public static void printValur(String str) {
System.out.println("print value : " + str);
}
}

二: 接口新加 默认方法和静态方法

  

public interface IterA{
  
  /**
  * 好好的接口为什么要加个默认方法呢(你是不是也有这个疑问,网上只说java8新增了哪些功能不说为什么的,送个呵呵给他们)?
  * 网上查了下: 1. 如果我有很多类实现了这个接口,那么我想往这个接口加个方法,岂不是所有实现类都要改一下,想想就不美好啊。(可是我有个疑问,接口不就是这个功能吗:抽象定义,实现类必须实现。)
  * 2. 写一些默认方法,实现类就可以直接用或者选择复写。 so, 这不是继承吗?表示要疯了
  * 忽然看到网上说实现接口A 和接口B ,如果A 和 B 有同样的方法,则实现类需要复写该方法。 那如果有不同的方法呢,那是不是说A B 的默认方法都可以被实现类使用。原来如此:这是多继承啊。。
  * 整了半天 这是java 通过接口的方式 变相的支持了多继承(但是注意静态方法是不会被继承的,还是老老实实用接口.静态方法调用)。
  */ default void aa(){ } static void sm(){
System.out.println("12");
} }

3. 双冒号方法引用

  如 ClassA::new    含义就是 new ClassA()

    ClassA::methodA  含义是 调用 ClassA.mothedA()   如何mothedA 不是静态方法,那就是调用实例的方法

    classA:methodA   就是调用 calssA.methodA();

  注意这种方式 只能是在 支持lambda 的地方使用。如 forEach(  这里使用)。

4. 元空间: 替代永久代,不在虚拟机中。

java8 学习记录的更多相关文章

  1. Java8学习笔记----Lambda表达式 (转)

    Java8学习笔记----Lambda表达式 天锦 2014-03-24 16:43:30 发表于:ATA之家       本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人 ...

  2. java后端学习记录2019

    学习计划 2019年计划 1.学习计算机基础,并加以实践.包括LeetCode刷题.数据库原理(索引和锁.Sql优化等).网络协议(Http.Tcp).操作系统(加深Linux).<Http权威 ...

  3. Solr学习记录:Getting started

    目录 Solr学习记录:Getting started 1.Solr Tutorial 2. A Quick Overview Solr学习记录:Getting started 本教程使用环境:jav ...

  4. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  5. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  6. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  7. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  8. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  9. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

随机推荐

  1. 使用 nodeJs 开发微信公众号(上传图片)

    在给用户发送消息中涉及到的素材(图片.视频.音频.文章等)需要事先传到微信服务器,然后获得媒体id(media_id),然后把 media_id 传递给用户 上传分上传临时素材(只保存三天)和上传永久 ...

  2. [CSS3]环形进度条

    来源:https://codepen.io/eZ0/pen/eZXNzd 点击上面链接有源码有示例. .ko-progress-circle { width: 120px; height: 120px ...

  3. thinkphp5.1明明密码的一致的 却说不一致的解决办法

    protected $rule = [       'password|密码'=>[                       'require',           'length:6,2 ...

  4. jsp页面选择文件上传,获取不到绝对路径问题

    选择"D:\\temp\file\test.txt"文件,alert(filename)却是"C:\\fakepath\test.txt" 出现D:\\temp ...

  5. Golang源码探索(一) 编译和调试源码(转)

    GO可以说是近几年最热门的新兴语言之一了, 一般人看到分布式和大数据就会想到GO,这个系列的文章会通过研究golang的源代码来分析内部的实现原理,和CoreCLR不同的是, golang的源代码已经 ...

  6. 1.PHP连接mysql

      1.使用mysqli_connect()函数连接到MySQL数据库: mysqli_connect()函数的格式如下: mysqli_connect('MySQL服务器地址','用户名','用户密 ...

  7. java发送post请求,使用multipart/form-data的方式传递参数,可实现服务器间文件上传功能(转)

    废话少说,直接上代码: /** * 测试上传图片 * */ public static void testUploadImage(){ String url = "http://xxxtes ...

  8. 【C++】纯C++实现http打开网页下载内容的功能

    #include "stdafx.h" #include <windows.h> #include <iostream> #include "Wi ...

  9. python学习Day8 三种字符类型、文件操作

    复习 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | ...

  10. Python开发者年度调研,结果出乎意料!

    来源商业新知网,原标题:Python开发者年度调研:一半Python用户也用JS,2/3选择Linux系统 作为高级编程语言,Python的受欢迎程度近几年一直在往 上涨.每年,Python官方都会针 ...