摘要: public class Test04 { public static void main(String[] args) throws InterruptedException { CountDownLatch cd = new CountDownLatch(6);//总长度 for (int i 阅读全文
posted @ 2020-03-14 23:53 常温的冰 阅读(372) 评论(0) 推荐(0)
摘要: Callable与Runnable的不同区别在于: 1、Callable有返回值 Runnable没有返回值 2、Callable需要实现的方法是call方法 Runnable需要实现的方法是run方法 3、Callable的call方法会抛异常 Runnable的run方法不会抛异常 Callab 阅读全文
posted @ 2020-03-14 23:13 常温的冰 阅读(172) 评论(0) 推荐(0)
摘要: HashMap 对应 ConcurrentHashMap HashSet 对应 CopyOnWriteArraySet HashList 对应 CopyOnWriteArrayList public class NotSafeDemo { public static void main(String 阅读全文
posted @ 2020-03-14 22:34 常温的冰 阅读(324) 评论(0) 推荐(0)
摘要: 线程通信中要预防虚假唤醒 注意(在哪里停就在哪里启动) class shareDataOne{ private int number = 0; public synchronized void incr() throws InterruptedException { if(number != 0){ 阅读全文
posted @ 2020-03-14 18:59 常温的冰 阅读(89) 评论(0) 推荐(0)
摘要: Lock 的挂起 await() 唤醒signal() Lock 简单示例 public class LockDemo { public static void main(String[] args) { SaleTicket saleTicket = new SaleTicket(); new T 阅读全文
posted @ 2020-03-14 15:47 常温的冰 阅读(93) 评论(0) 推荐(0)
摘要: 相同: 暂停线程,哪里停哪里开始 不同: wait 释放锁等待 sleep 不释放锁等待 wait 、notfy、 notfyAll 都是属于Object sleep 属于Thread 阅读全文
posted @ 2020-03-14 14:39 常温的冰 阅读(167) 评论(0) 推荐(0)
摘要: 线程的6种状态:创建、就绪、阻塞、等待、限制时间等待、终结 /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in 阅读全文
posted @ 2020-03-14 14:32 常温的冰 阅读(100) 评论(0) 推荐(0)
摘要: public class Test { /* * Optional实际上是个容器,它是一个装一个对象的容器。这个对象可能是个空,可能是非空。 * 数组和集合是装多个对象的容器。 * * 1、创建Optional对象的方法: * (1)Optional.of(xx); 只能装非空对象 * (2)Opt 阅读全文
posted @ 2020-03-14 13:30 常温的冰 阅读(466) 评论(0) 推荐(0)
摘要: public class Test { /* * 创建:一步 * 中间:0~n步 * 终结:一步 * * 三、终结操作 * 1、void forEach(Consumer ):遍历流中的数据 * 2、long count():统计个数 * 3、boolean allMatch(Predicate p 阅读全文
posted @ 2020-03-14 13:11 常温的冰 阅读(135) 评论(0) 推荐(0)
摘要: public class Test08 { /* * 二、中间的加工操作 * (1)filter(Predicate p):过滤 * (2)distinct():去重 * (3)limit(long maxSize):取有限的几个 * (4)skip(long n):跳过n个 * (5)peek(C 阅读全文
posted @ 2020-03-14 12:53 常温的冰 阅读(199) 评论(0) 推荐(0)
摘要: public class Test { /* * Stream接口: * 实现类 * IntStream * DoubleStream * LongStream * * 一、创建Stream * 1、方式一:通过集合创建 * 集合对象.stream() * 2、方式二:通过数组工具类Arrays * 阅读全文
posted @ 2020-03-14 12:09 常温的冰 阅读(112) 评论(0) 推荐(0)
摘要: public class Test06 { /* * StreamAPI: * StreamAPI是用来处理数据,处理集合等容器中的数据,处理操作有:查询、筛选、删除、过滤、统计、映射等。 * 希望能够用类似于SQL语法的形式对Java内存中的数据进行处理。 * * SQL是对数据库中的数据进行处理 阅读全文
posted @ 2020-03-14 11:50 常温的冰 阅读(114) 评论(0) 推荐(0)
摘要: public class Test05 { /* * lambda表达式是用来简化匿名内部类的一种函数式编程的语法。 * 只有SAM接口才能使用lambda表达式 * 方法引用和构造器引用是用来简化lambda表达式。 * 只有当lambda表达式满足一些特殊情况时,才能使用方法引用和构造器引用。 阅读全文
posted @ 2020-03-14 11:30 常温的冰 阅读(516) 评论(0) 推荐(0)
摘要: /* * 自定义函数式接口: * 1、声明一个接口,只能包含一个抽象方法 * 2、给这个接口加@FunctionalInterface */ public class Test { public static void main(String[] args) { //IntCalc tools形参, 阅读全文
posted @ 2020-03-14 11:09 常温的冰 阅读(148) 评论(0) 推荐(0)
摘要: public class Test04 { public static void main(String[] args) { /* * Java8中,有一个新的类:Stream类型,它代表一个数据加工流 * java.util.stream.Stream<T>接口 * static <T> Stre 阅读全文
posted @ 2020-03-14 10:11 常温的冰 阅读(212) 评论(0) 推荐(0)
摘要: Lambda表达式是给函数式接口(SAM接口)的变量或形参赋值的表达式。Lambda表达式替代了原来使用匿名内部类的对象给函数式接口(SAM接口)的变量或形参赋值的形式。 匿名内部类:实现了这个接口,重写了接口的抽象方法,同时创建了对象。Lambda表达式也要实现这个接口,重写接口的抽象方法,隐含的 阅读全文
posted @ 2020-03-14 01:20 常温的冰 阅读(128) 评论(0) 推荐(0)