摘要:
1、前言 Java容器里只能放对象,对于基本类型(int, long, float, double等),需要将其包装成对象类型后(Integer, Long, Float, Double等)才能放到容器里。很多时候拆包装和解包装能够自动完成。但是会导致额外的性能和空间开。 2、泛型 Java容器能够 阅读全文
摘要:
1、前言 单例模式是限制了一个类只能有一个实例,对象池模式则是限制一个类实例的个数。对象池类就像是一个对象管理员,它以Static列表(也就是装对象的池子)的形式存存储某个实例数受限的类的实例,每一个实例还要加一个标记,标记该实例是否被占用。当类初始化的时候,这个对象池就被初始化了,实例就被创建出来 阅读全文
摘要:
1、单例模式实现 单例模式中类的构造函数是私有,外部类无法调用该构造函数,也就无法生成多个实例,该类自身必须定义一个静态私有实例,并向外提供一个静态的公有函数用于创建或者获取该静态私有实例。 单例模式这个题目可以关系到很多知识点。比如线程安全、类加载机制、synchronized的原理、volati 阅读全文
摘要:
1、IO 大多数的应用程序都要与外部设备进行数据交换,最常见的外部设备包含磁盘和网络。IO就是指应用程序对这些设备的数据输入与输出,Java语言定义了许多类专门负责各种方式的输入、输出,这些类都被放在java.io包中。 2、File类 File类是IO包中唯一代表磁盘文件本身的对象,File类定义 阅读全文
摘要:
1、前言 动态代理的测试类中使用了Proxy类的静态方法newProxyInstance方法去生成一个代理类,这个静态方法接收三个参数,分别是目标类的类加载器,目标类实现的接口集合,InvocationHandler实例(也就是实现了InvocationHandler接口的动态代理类),最后返回一个 阅读全文
摘要:
1、流类 Java的流式输入/输出是建立在四个抽象类的基础上的:InputStream、OutputStream、Reader、Writer。它们用来创建具体的流式子类。尽管程序通过具体子类执行输入/输出操作,但顶层类定义了所有流类的基本通用功能。 InputStream和OutputStream为 阅读全文
摘要:
1、字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为一个Unicode字符占用2个字节,而字节流一次只能操作一个字节。既然Java的口号就是"一次编写、处处运行",那么包含直接的字 阅读全文
摘要:
前言 天各一方的两台计算机是如何通信的呢?在成千上万的计算机中,为什么一台计算机能够准确着寻找到另外一台计算机,并且把数据发送给它呢? 可能很多人都听说过网络通信的 5 层模型,但是可能并不是很清楚为什么需要五层模型,五层模型负责的任务也有可能经常混淆。下面是网络通信的五层模型: 说实话,五层模型的 阅读全文
摘要:
1、前言 Jvm垃圾收集中,非要判断对象是否可回收,无论是通过引用计数法判断对象引用数量,还是通过可达性分析法判断对象的引用链是否可达,判定对象的存活都与“引用”有关。JDK1.2之前,Java中引用的定义很传统:如果reference类型的数据存储的数值代表的是另一块内存的起始地址,就称这块内存代 阅读全文
摘要:
1. http请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。大致结构是这样的: <request-line> //请求行 <headers> //首部行 <blank line> //空行 <request-body> // 阅读全文