随笔分类 - Java基础内容
随笔内容来自于课堂,《Java核心技术》以及互联网
摘要:Future设计模式提供一种异步执行方式。提供这样一个场景,我们进行一个查询调用,该调用耗时时间长,因此当前线程不得不一直阻塞,直到拿到结果。这种情况下,就可以使用异步执行的方式,它会在进行调用时直接返回一个“凭证”,当前线程可以在后续某个时刻通过该“凭证”拿到查询结果。 一、Future设计模式实
阅读全文
摘要:NIO最大的亮点就是选择器和非阻塞I/O操作的使用,这一点在SelectableChannel上尤为重要(Pipe也可使用选择器),先看一个传统的连接方式: 1 public class TCPServer { 2 public static void main(String[] args) thr
阅读全文
摘要:在我的理解里,通道是对I/O服务进一步的包装。Channel提供与 I/O 服务的直接连接,并且通过通道,多路复用和非阻塞I/O得以实现。Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据。 Channel类提供维持平台独立性所需的抽象过程,不过仍然会模
阅读全文
摘要:整个java.nio由Buffer、Channels、Selector、字符集和正则表达式组成,本节我们对Buffer进行展开。 一个Buffer对象是固定数量的数据的容器。对于每个非布尔原始数据类型都有一个缓冲区类。尽管缓冲区作用于它们存储的原始数据类型,但缓冲区十分倾向于处理字节。非字节缓冲区可
阅读全文
摘要:一、 缓冲区 缓冲区,以及缓冲区如何工作,是所有 I/O 的基础。“输入/输出”也就是把数据移进或移出缓冲区。 进程执行I/O操作,归结起来,也就是向操作系统发出请求,让它要么把缓冲区里的数据排干(写),要么用数据把缓冲区填满(读)。进程使用这一机制处理所有数据进出操作。如图1.1描述了数据从外部磁
阅读全文
摘要:一、ReentrantLock功能详解 1.1 ReentrantLock是可重入且互斥的 1 public class Test3 { 2 static class RunnableTest implements Runnable{ 3 private ReentrantLock lock = n
阅读全文
摘要:一、synchronized的使用 官方文档对其解释是,synchronized关键字可以实现一个简单的策略来防止线程干扰和内存一致性错误,如果一个对象对多个线程是可见的,那么对该对象的所有读或者写都将通过同步的方式来进行。 synchronized的使用方式有三种: 修饰静态方法,对class进行
阅读全文
摘要:一、概述 本章将详细介绍任务在线程池中的执行情况、空闲线程的回收过程、默认提供的四种拒绝策略、线程池关闭以及个人觉得比较有意思的地方。 二、任务在线程池中的执行过程 线程池的一个重要作用是管理线程,实现线程的复用,避免反复创建和销毁线程所带来的资源消耗,我们通过new方法创建线程,start( )方
阅读全文
摘要:一、对象与序列化 Java对象在创建后,只要程序还需要,它就会存在,但随着程序的终结,它一定会消失。Java的对象序列化是将实现了Serializable接口的对象转化为一个字节序列,并在以后这个字节序列能完全恢复成原来的对象。这里Serializable只是一个标记接口,其中并没有方法,若一个类没
阅读全文
摘要:一、总述 String是字符串常量,StringBuffer和StringBuilder是字符串变量;StringBuffer线程安全而StringBuilder是不安全的 二、String与两者的区别 String: 1 public final class String 2 implements
阅读全文
摘要:一、概述 根据JavaAPI所述,Java 程序中的所有字符串字面值(如 "abc" )都是String类的实例实现;字符串是常量,它们的值在创建之后不能更改,因此它是可以共享的;字符串缓冲区支持可变的字符串;Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持;字符串串
阅读全文

浙公网安备 33010602011771号