摘要:
线程池浅析 描述 线程的创建、启动、销毁等是一个非常消耗资源的过程。引出线程池。 线程池作用 1. 降低资源消耗,重复利用已创建好的线程。 2. 提高响应速度,通过已经创建好的线程直接执行到达的任务,无需等待。 3. 线程的统一管理,对线程统一分配、监控和调优(专人专职)。 线程池的创建一 一、创建 阅读全文
摘要:
创建线程的三种方式及其对比 1. 继承 Thread类 (1). 继承Thread类。并重写run()方法,该方法无参数,无返回值; (2). 创建子类实例,并实例化对象; (3). 通过start()方法启动,注意:不是通过run()方法启动。 2. 实现Runnable接口 (1). 实现Run 阅读全文
摘要:
定义线程池 第一步,先定义一个线程池,比如: @EnableAsync这个注解如果在启动类已经添加过,就无需再次添加. 上面我们通过使用ThreadPoolTaskExecutor创建了一个线程池,同时设置了以下这些参数: 核心线程数10:线程池创建时候初始化的线程数 最大线程数20:线程池最大的线 阅读全文
摘要:
前言 java8除了新增stream,还提供了parallel stream 多线程版的stream,parallel stream的优势是:充分利用多线程,提高程序运行效率,但是正确的使用并不简单,盲目使用可能导致以下后果 1. 效率不增反降 2. 增加额外的复杂度,程序更易出错 3. 运行结果不 阅读全文
摘要:
Java 8另一个新增的重要特性就是引入了新的时间和日期API,它们被包含在java.time包中。借助新的时间和日期API可以以更简洁的方法处理时间和日期。 在介绍本篇文章内容之前,我们先来讨论Java 8为什么要引入新的日期API,与之前的时间和日期处理方式有什么不同? 在Java 8之前,所有 阅读全文
摘要:
在上一篇介绍Stream流式数据处理的文章中提到了Optional类,这是Java 8新增的一个类,用以解决程序中常见的NullPointerException异常问题。本篇文章将详细介绍Optional类,以及如何用它消除代码中的null检查。 避免使用null检查 作为Java开发人员,几乎所有 阅读全文
摘要:
本篇文章继续介绍Java 8的另一个新特性——Stream API。新增的Stream API与InputStream和OutputStream是完全不同的概念,Stream API是对Java中集合操作的增强,可以利用它进行各种过滤、排序、分组、聚合等操作。Stream API配合Lambda表达 阅读全文
摘要:
2014年3月发布的Java 8,有可能是Java版本更新中变化最大的一次。新的Java 8为开发者带来了许多重量级的新特性,包括Lambda表达式,流式数据处理,新的Optional类,新的日期和时间API等。这些新特性给Java开发者带来了福音,特别是Lambda表达式的支持,使程序设计更加简化 阅读全文
摘要:
前段时间,在用ES时候,关于时间类型遇见点坑,ES版本是5.6.9,.但是在进行存储的时候"2019/01/01"或者是"2019/01/01 11:11:11"都有问题!错误信息是:"Invalid format: "2019/01/01" is malformed at "/01/01"" 发现 阅读全文
摘要:
一:StringBuffer的底层 (1)线程安全的字符串操作类 (2)通过synchronized关键字声明同步方法,保证多线程环境下数据安全 (3)底层存储数据的Char[]数组,初始化时,该数组的长度是16。如果构造函数有新传入字符转str,则16基础上加str.length. (4)添加字符 阅读全文