
On Java 8
chuixue24
这个作者很懒,什么都没留下…
展开
-
javaSE8学习之内部迭代与外部迭代本质剖析及流本源分析
关于Stream在Java8中是占非常主要的地位的,所以这次对它进行进一步探讨【这次基本上都是偏理论的东东,但是理解它很重要~】,其实流跟咱们数据库学习当中的sql语句的特点是非常非常之像的,为什么这么说,下面以这个sql语句举例说明:“select name from student where age > 20 and address = ‘beijing’ order by age desc;”该简单的sql所要表达的意思是:从student这张表中查询出年龄>20并且地址=北京的转载 2020-10-14 13:45:57 · 303 阅读 · 0 评论 -
lambda表达式和return
先看一段代码:Set<String> w = new HashSet<>(Arrays.asList("It's a wonderful day for pie!".split(" "))); w.stream() .map(x -> x + " ") .forEach(System.out::print); System.out.println();其中调用了Stream中的map方法:&l.原创 2020-10-13 16:31:18 · 3156 阅读 · 0 评论 -
作为闭包的内部类
我们可以使用匿名内部类重写之前的例子:// functional/AnonymousClosure.javaimport java.util.function.*;public class AnonymousClosure { IntSupplier makeFun(int x) { int i = 0; // 同样规则的应用: // i++; // 非等同 final 效果 // x++; // 同上 return new IntSupplier(原创 2020-08-28 19:59:03 · 182 阅读 · 0 评论 -
在Java8的foreach()中使用return
在使用jdb8的lambda表达式遍历集合时,如果想要跳过当次循环执行下个循环,可以使用return,使用continue会编辑报错。public class T { private static StateQueue<String> queue = new StateQueue<>(); /** * <p><b>Description:</b> </p> * @param args原创 2020-08-20 14:55:00 · 4249 阅读 · 0 评论 -
java8 IntStream.repeat() 替换简单的 for 循环
实用小功能repeat()可以用来替换简单的for循环。代码示例:// onjava/Repeat.javapackage onjava;import static java.util.stream.IntStream.*;public class Repeat { public static void repeat(int n, Runnable action) { range(0, n).forEach(i -> action.run()); }...原创 2020-07-30 16:00:26 · 1358 阅读 · 0 评论 -
《On Java 8》中文版笔记三:函数式接口
函数式接口方法引用和 Lambda 表达式都必须被赋值,同时赋值需要类型信息才能使编译器保证类型的正确性。尤其是Lambda 表达式,它引入了新的要求。 代码示例:x -> x.toString()复制ErrorOK!我们清楚这里返回类型必须是String,但x是什么类型呢?Lambda 表达式包含类型推导(编译器会自动推导出类型信息,避免了程序员显式地声明)。编译器必须能够以某种方式推导出x的类型。下面是第二个代码示例:(x, y) -> x + y复制E...原创 2020-07-30 14:36:12 · 286 阅读 · 0 评论 -
java.util.function 中的目标类型
下表描述了java.util.function中的目标类型(包括例外情况):特征 函数式方法名 示例 无参数; 无返回值 Runnable (java.lang)run() Runnable 无参数; 返回类型任意 Supplierget()getAs类型() Supplier<T> BooleanSupplier IntSupplier LongSupplier Doubl...原创 2020-07-29 08:43:50 · 204 阅读 · 0 评论 -
Lambda表达式与递归
整数 n 的阶乘将所有小于或等于 n 的正整数相乘。 阶乘函数是一个常见的递归示例:// functional/IntCall.javainterface IntCall { int call(int arg);}// functional/RecursiveFactorial.javapublic class RecursiveFactorial { static IntCall fact; public static void main(String[] args) {原创 2020-07-28 18:15:25 · 642 阅读 · 0 评论 -
《On Java 8》中文版笔记二:编译单元
编译单元:一个 Java 源代码文件称为一个编译单元(compilation unit)(有时也称翻译单元(translation unit))。每个编译单元的文件名后缀必须是.java。在编译单元中可以有一个public类,它的类名必须与文件名相同(包括大小写,但不包括后缀名.java)。每个编译单元中只能有一个public类,否则编译器不接受。如果这个编译单元中还有其他类,那么在包之外是无法访问到这些类的,因为它们不是public类,此时它们为主public类提供“支持”类 。...原创 2020-07-27 15:36:58 · 354 阅读 · 0 评论 -
《On Java 8》中文版笔记一:基本类型默认值
基本类型默认值如果类的成员变量(字段)是基本类型,那么在类初始化时,这些类型将会被赋予一个初始值。基本类型 初始值 boolean false char \u0000 (null) byte (byte) 0 short (short) 0 int 0 long 0L float 0.0f double 0.0d 这些默认值仅在 Java 初始化类的时候才会被赋予。这种方式确保了基本类型的字段始终能被初始化(在原创 2020-07-20 16:42:58 · 351 阅读 · 0 评论