线程池 线程池为什么要用线程池?池化技术想必大家已经屡见不鲜了,线程池、数据库连接池、HTTP 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资源(包括执行一个任务)的方式。 每个线程池还维护一些基本统计信息,例如已完成任务的数量 这里借用《Java 并发编程的艺术》提到的来说一下使用线程池的好处: 降低资源消耗。通过重复 2023-05-13 Java > Java多并发 #Java
Array,Arrays Array属于object类,用来存放一组数据的数据结构,数组是最基本的一种数据结构但不是基本数据类型,数组是相同数据类型组成的集合,数组中的元素按线性顺序排序 12345678910111213 //省略格式静态初始化 int[] a = {6,2,6,8};//静态初始化标准格式 int[] a = new int[]{1,2,3,4 2023-05-13 Java > Java集合 #Java
AQS原理 AQS原理AQS队列同步器,用来构建锁的基础框架,Lock实现类都是基于AQS实现的 AQS是基于模板方法模式进行设计的,所以锁的实现需要继承AQS并重写它指定的方法 AQS内部定义了一个FIFO的队列来实现线程的同步,同时还定义了同步状态来记录锁的信息 AQS的模板方法,将管理同步状态的逻辑提炼出来形成标准流程,这些方法主要包括:独占式获取同步状态、独占式释放同步状态、共享式获取同步状态、共享式 2023-05-13 Java > Java多并发 #Java
Set Set接口java.util.Set接口 extends Collection接口 Set接口的特点: 不可重复性:不允许存储重复的元素。不可重复性是指添加的元素按照 equals() 判断时 ,返回 false,需要同时重写 equals() 方法和 hashCode() 方法。 无序性:没有索引,没有带索引的方法,也不能使用普通的for循环遍历。无序性不等于随机性 ,无序性是指存储的数据在 2023-05-13 Java > Java集合 #Java
List List接口java.util.List extends Collection接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。 List接 2023-05-13 Java > Java集合 #Java
Queue Queue接口Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。 Deque接口Deque 2023-05-13 Java > Java集合 #Java
Date,Calendar Date类表示特定的瞬间,精确到毫秒。 **public Date()**:分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 **public Date(long date)**:分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。 tips: 由于我们处于东八区,所以我们的基准时间为 2023-05-13 Java > Java常用类 #Java
Object Object类java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object 如果一个类没有特别指定父类,那么默认则继承自Object类。 123public class MyClass /*extends Object*/ { // ...} toString**public 2023-05-13 Java > Java常用类 #Java
Pattern,Matcher 正则表达式正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串 Pattern类Pattern类表示一个正则表达式对象,Pattern类没有公共的构造方法,要创建一个Pattern对象,调用其公共的静态方法,返回一个Pattern对象 12345678//编译正则表达式,这样子可以重用模式。Pattern p = Pattern.compile("a*b");// 2023-05-13 Java > Java常用类 #Java
Scanner,Random Scanner类Scanner类的功能:可以实现键盘输入数据到程序当中。 常用方法 int num = sc.nextInt():获取键盘输入的一个int数字 String str = sc.next():获取键盘输入的一个字符串 next():会自动消去有效字符前的空格和\n,只返回输入的字符。只有在读取到有效字符之后,才将其后的空格键、Tab键或Enter等消除。 next 2023-05-13 Java > Java常用类 #Java