摘要: Executor Executor 管理多个异步任务的执行,而无需程序员显式地管理线程的生命周期。这里的异步是指多个任务的执行互不干扰,不需要进行同步操作。 主要有三种 Executor: CachedThreadPool: 一个任务创建一个线程; FixedThreadPool: 所有任务只能使用 阅读全文
posted @ 2023-04-22 20:45 cnetsa 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 有三种使用线程的方法: 实现 Runnable 接口; 实现 Callable 接口; 继承 Thread 类。 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以说任务是通过线程驱动从而执行 阅读全文
posted @ 2023-04-22 19:58 cnetsa 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 新建(New) 创建后尚未启动。 可运行(Runnable) 可能正在运行,也可能正在等待 CPU 时间片。 包含了操作系统线程状态中的 Running 和 Ready。 阻塞(Blocking) 等待获取一个排它锁,如果其线程释放了锁就会结束此状态。 无限期等待(Waiting) 等待其它线程显式 阅读全文
posted @ 2023-04-22 19:39 cnetsa 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 我们现在需要使用一个内容搜索接口,搜索的实现可能是基于文件系统的搜索,也可能是基于数据库的搜索。 可以看到输出结果:文件搜索 hello world 如果在com.cainiao.ys.spi.learn.Search文件里写上两个实现类,那最后的输出结果就是两行了。 这就是因为ServiceLoa 阅读全文
posted @ 2023-04-22 19:32 cnetsa 阅读(20) 评论(0) 推荐(0) 编辑
摘要: SPI(Service Provider Interface),是JDK内置的一种 服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,MySQL和PostgreSQL都有不同的实现提供给用 阅读全文
posted @ 2023-04-22 19:29 cnetsa 阅读(59) 评论(0) 推荐(0) 编辑
摘要: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 反射的使用? 在Java中,Class类与java.lang.reflect类库一起对反射 阅读全文
posted @ 2023-04-22 19:26 cnetsa 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 如果你的资源实现了 AutoCloseable 接口,你可以使用这个语法。大多数的 Java 标准资源都继承了这个接口。当你在 try 子句中打开资源,资源会在 try 代码块执行后或异常处理后自动关闭。 public void automaticallyCloseResource() { File 阅读全文
posted @ 2023-04-22 19:20 cnetsa 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 异常的申明(throws) 在Java中,当前执行的语句必属于某个方法,Java解释器调用main方法执行开始执行程序。若方法中存在检查异常,如果不对其捕获,那必须在方法头中显式声明该异常,以便于告知方法调用者此方法有异常,需要进行处理。 在方法中声明一个异常,方法头中使用关键字throws,后面接 阅读全文
posted @ 2023-04-22 19:19 cnetsa 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 可查异常(编译器要求必须处置的异常): 正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。 除了RuntimeException及其子类以外,其他的Exception类及其子类都属于 阅读全文
posted @ 2023-04-22 19:17 cnetsa 阅读(50) 评论(0) 推荐(0) 编辑
摘要: Throwable 是 Java 语言中所有错误与异常的超类。 Error 类及其子类:程序中无法处理的错误,表示运行应用程序中出现了严重的错误。 Exception 程序本身可以捕获并且可以处理的异常。Exception 这种异常又分为两类:运行时异常和编译时异常。 运行时异常 都是Runtime 阅读全文
posted @ 2023-04-22 19:16 cnetsa 阅读(11) 评论(0) 推荐(0) 编辑
摘要: Java自带的标准注解,包括@Override、@Deprecated和@SuppressWarnings,分别用于标明重写某个方法、标明某个类或方法过时、标明要忽略的警告,用这些注解标明后编译器就会进行检查。 元注解,元注解是用于定义注解的注解,包括@Retention、@Target、@Inhe 阅读全文
posted @ 2023-04-22 19:14 cnetsa 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 注解的作用? 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。它主要的作用有以下四方面: 生成文档,通过代码里标识的元数据生成javadoc文档。 编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证。 编译时动态处理, 阅读全文
posted @ 2023-04-22 19:13 cnetsa 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 第15篇:总结 阅读全文
posted @ 2023-04-22 17:31 cnetsa 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 第14篇:Set-LinkedHashSet 阅读全文
posted @ 2023-04-22 17:31 cnetsa 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 第12篇:Set-HashSet 属性 构造函数 序列化和反序列化 其他方法 阅读全文
posted @ 2023-04-22 17:31 cnetsa 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 第13篇:Set-TreeSet 阅读全文
posted @ 2023-04-22 17:30 cnetsa 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 第10篇:Map-WeakHashMap 阅读全文
posted @ 2023-04-22 17:30 cnetsa 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 第11篇:Map-TreeMap 属性 //TreeMap用来排序的比较器,如果为null,说明使用key的自然排序 private final Comparator<? super K> comparator; //TreeMap的根节点,类型是Entry键值对 private transient 阅读全文
posted @ 2023-04-22 17:30 cnetsa 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 第9篇:Map-LinkedHashMap 阅读全文
posted @ 2023-04-22 17:29 cnetsa 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 第8篇:Map-Hashtable put方法 addEntry方法 rehash方法 get方法 remove方法 contains方法 containsKey方法 containsValue方法 阅读全文
posted @ 2023-04-22 17:29 cnetsa 阅读(11) 评论(0) 推荐(0) 编辑