Java
qq_42913304
这个作者很懒,什么都没留下…
展开
-
Java多线程编程核心技术阅读笔记(线程通信)
3.1 等待/通知机制public class WaitDemo { private List list = new ArrayList(); public void add() { list.add("demo"); } public int size() { System.out.println(list.size()); return list.size(); } public static cl原创 2020-10-18 11:43:11 · 102 阅读 · 2 评论 -
Java多线程编程核心技术阅读笔记(对象变量的并发访问)
2.1synchronized同步方法非线程安全 会在多个线程对同一个对象中的实例变量进行并发访问时发生 产生的后果就是脏读也就是读到的数据其实是被改过的。 而线程安全就是以获得的实例变量的值是经过同步处理的 不会出现脏读现象2.1.1 方法内的变量为线程安全...原创 2020-10-16 19:34:35 · 99 阅读 · 0 评论 -
Java多线程编程核心技术阅读笔记(Java多线程技能)
1.1 Java进程和多线程的概念及线程的优点线程可以理解成是在进程中独立运行的子任务 多线程可以最大限度地例用CPU的空闲时间来处理其它任务 比如一边让操作系统处理正在由打印机打印数据 一边使用WORD编辑文档 而CPU在这些任务之间不停地切换 由于切换速度非常快 给使用者的感受就是这些任务似乎在同时运行 单任务的特点就是排队执行 也就是同步 CPU利用率大幅度降低 在多任务的环境中 CPU可以完全在任务1和任务2之间来回切换 使任务2不必等到10秒再运行 系统的运行效率大大提升1.2 使用多线程原创 2020-10-14 20:56:21 · 99 阅读 · 0 评论 -
Java8实战阅读笔记(用Optional取代null)
public class Person { private Car car; public Car getCar() { return car; } public class Car { private Insurance insurance; public Insurance getInsurance() { return insurance; } } public class Insurance { private原创 2020-10-13 17:25:05 · 101 阅读 · 1 评论 -
Java8实战阅读笔记(默认方法)
简而言之,向接口添加方法是诸多问题的罪恶之源;一旦接口发生变化,实现这些接口的类往往也需要更新,提供新添方法的实现才能适配接口的变化。如果你对接口以及它所有相关的实现有完全的控制,这可能不是个大问题。但是这种情况是极少的。这就是引入默认方法的目的:它让类可以自动地继承接口的一个默认实现。 public interface Resizable extends Drawable{ int getWidth(); int getHeight(); } public原创 2020-10-13 17:15:35 · 68 阅读 · 0 评论 -
Java8实战阅读笔记(重构设计模式)
8.1 策略模式策略模式包含三部分内容一个代表某个算法的接口(它是策略模式的接口)一个或多个该接口的具体实现,它们代表了算法的多种实现(比如,实体类ConcreteStrategyA或者ConcreteStrategyB)一个或多个使用策略对象的客户 public interface ValidationStrategy{ boolean execute(String s); } // 不同得策略 public static class IsAllLowerCase原创 2020-10-13 13:36:37 · 117 阅读 · 0 评论 -
Java8实战阅读笔记(流操作)
4.4 流操作 List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4); // 去重 筛选流 numbers.stream().filter(i ->i % 2 == 0) .distinct(); // 截短流 List<Integer> collect = numbers.stream()原创 2020-10-13 13:25:04 · 67 阅读 · 0 评论 -
Java8实战阅读笔记(Lambda表达式)
3.1 Lambda 管中窥豹可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表利用Lambda表达式,可以更为简洁地自定义一个Comparator对象。// 先前 Comparator<Apple> byWeight = new Comparator<Apple>() { public int compare(Apple a1, Apple a2){原创 2020-10-13 13:06:23 · 211 阅读 · 0 评论 -
Java8实战阅读笔记(通过行为参数化传递代码)
2 通过行为参数化传递代码2.1 应对不断变化的需求2.1.1 实现一个从列表中筛选绿色苹果的功能 public static class Apple { private String color; private int weight; public int getWeight() { return weight; } public void setWeight(int weight) {原创 2020-10-12 09:12:57 · 111 阅读 · 0 评论