给大忙人看的Java核心技术笔记(3、接口和lambda表达式)

1、接口是面向对象的关键特性:他们让你在不提供实现的情况下,指定应该做什么

  近来,应为函数式编程非常适合并发和事件驱动编程,其重要性有所提升

  接口的所有方法默认为公有方法,不用特意声明为public

  实现类必须将接口方法声明为public,否则默认情况下,他们在包级别可访问。应为接口要求public级别访问,所以会报错

  如果一个类只实现接口的某些方法,必须用abstract修饰

2、转换为接口类型

  

IntSequence digits = new DigitSequence();

这句话创建的对象

时间: 2024-10-10 04:17:31

给大忙人看的Java核心技术笔记(3、接口和lambda表达式)的相关文章

给大忙人看的Java核心技术笔记(7、集合)

要点: 1.Collection接口为所有集合类提供了共同方法(映射除外,映射是通过Map接口描述的) 2.列表是一个有序集合,其中的每个元素都有一个整数索引 3.set针对高效包含测试进行过优化.Java提供了HashSet和TreeSet实现 4.对映射来说,可以选择HashMap或TreeMap实现.LinkedHashMap会记住元素插入的顺序. 5.Collection接口和Collections类提供了很多有用的算法:如设置操作,查询.排序.打乱原先顺序等 6.视图通过使用标准集合接

给大忙人看的Java核心技术笔记(4、继承与反射)

继承是在现有类的基础上创建新类的过程.(实例变量和静态变量统称为域,类中的域.方法.嵌套类.接口统称为类成员) 反射机制:在程序运行期间查找类及其成员的能力 abstract方法没有实现:abstract类不能被实例化. 子类不能直接访问父类的私有实例变量. 不同于this引用,super不是对象的引用,而是绕过动态查找方法并调用特定方法的指令. 覆盖一个方法时,可以将返回类型改成子类型(协变返回类型是允许的) 重载一个方法时,子类方法的可见性至少与父类方法一样.父类方法是公有的,子类方法也必须

给大忙人看的Java核心技术笔记(6、泛型编程)

要点: 泛型类是带有一个或多个类型参数的类 泛型方法是带有类型参数的方法 可以要求类型参数必须是一个或者多个类型的子类型 泛型类型是不变得:当S是T的子类型是,G<S>和G<T>没有关系 通过使用通配符G<? extends T>或者 G<? super T>,你可以指定一个方法接受一个带子类或父类参数的泛型类型的实例 当泛型类和方法被编译时,类型参数会被擦除 类型擦除对泛型有诸多限制.特别是,不能实例化泛型类或数组.不能转换成泛型类型,或者抛出一个泛型类型

给大忙人看的Java核心技术笔记(10、并发编程)

本章要点: Runnable表述一个可以异步执行的任务 Executor将Runnable实例列入执行计划 Callable描述一个会产生结果的任务 可以向ExecutorService提交一个或多个Callable实例,并且当这些Callable有执行结果后,合并这些结果 当多个线程在没有同步的情况下操作共享数据时,其结果是不可预知的 与使用锁机制编程相比,并行算法和线程安全的数据结构更好 并行Stream和数组操作可以自动并且安全地将计算并行化运行 ConcurrentHashMap是线程安

Java核心技术之Java8新特性-Lambda表达式

1 总体说明 Java8新特性概述 函数式接口 Lambda表达式(闭包) 2 Java8新特性概述 Oracle公司于2014年3月发布了Java8正式版,该版本是自JDK5.0以来最具革命性的版本. Java8为Java语言.编译器.类库和JVM带来了大量的新特性.接下来的内容将会详细说明Java8在Java语言方面的新特性以及它们的使用场景. 3 函数式接口 Java8引入的一个核心概念是函数式接口(Functional Interfaces):如果一个接口定义一个唯一的抽象方法,那么这个

《写给大忙人看的java》笔记--基本的编程结构

1.字符串是UTF-16编码中的Unicode编码点的序列 2.绑定System.in的Scanner可以读取终端输入: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Monaco } span.s1 { text-decoration: underline; color: #7e504f } span.s2 { color: #931a68 } span.s3 { color: #0326cc } Scanner sc = new S

《写给大忙人看的java se 8》笔记

现在才来了解java8,是不是后知后觉了点? 新的编程技术,个人不喜欢第一时间跟进. 待社区已有实践积淀再切入似乎更划算些? 一点点精明的考虑. 不多说,上代码. //读<写给大忙人看的java se 8>做的笔记代码 //希望对忙到连这书都没工夫看的你,匆匆一瞥,留下印象 //祝编程愉快 public class MainTest { //第一章,讲lambda表达式 //lambda表达式类似javascript的函数字面量,可用于替代java的匿名内部类 //基本型为 (形参列表)-&g

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

Java学习笔记_23_List接口实现类

23.List接口实现类: List接口继承了Collection接口,它是一个允许存在重复项的有序集合. 1>实现类ArrayList: ArrayList类支持可随需要而增长的动态数组.数组列表以一个原大小被创建,当超过了它的大小, 类集自动增大,当对象被删除后,数组就可以缩小. 优点:ArrayList类对于使用索引取出元素用较高的效率,他可以用索引快速定位对象. 缺点:ArrayList类对于元素的删除或插入速度较慢. 构造方法: · ArrayList(): 构造一个初始容量为10的空