java多线程编程实战指南 笔记

线程简介 进程是程序的运行实例,是动态的,运行一个java程序实际上就是一个java虚拟机进程 进程是程序向操作系统申请资源(内存空间、文件句柄等)的基本单位,线程是cpu调度的最小单位 一个进程可以包含多个线程,这些线程贡献进程申请的资源 Thread的start方法是启动一个线程,但该方法的调用并不一定立即启动线程,得看系统的线程调度器决定。线程是一次性 …

java内部类

一般内部非静态类 class Outer { public Integer data = 1; class Inner{ void print() { System.out.println(data); } } } public static void main(String[] args) { Outer outer = new Outer(); …

java中匿名内部类和lambda的区别

对于只有一个抽象方法的接口,可以使用匿名内部类创建引用对象,也能使用lambda表达式来创建对象: interface I { void p(); } // 使用匿名内部类创建对象 I imp = new I() { @Override public void p() { System.out.println("aaaa"); } }; // 使用 …

Spring笔记

什么是Spring? 应该从容器和生态方面作答 什么是开闭原则: 给系统做功能扩展时,不应该修改已经写好的代码。即对扩展开放,对修改关闭 为什么要使用容器? 容器的核心功能是用于统一规范,只要符合规范的对象都可以放在容器中统一管理 Autowired和Resource的区别? 两者类似于JDBC和JPA的关系,Autowired是spring提供的注解,默 …

Lambda表达式相关的Consumer、Function、Predicate与Supplier的区别

这是参考地址,在此基础上做了整理 区别总览 名称 参数 返回值 实例 Consumer 有 无 Iterable上的forEach方法 Function 有 有 Optional的map方法 Predicate 有 有(bool) Optional的filter方法 Supplier 无 有 懒加载、惰性求值、Stream的generate(静态) 详细解释 …