摘要:
静态代理 动态代理 cglib代理 静态代理:代理类和委托类实现了相同的接口,代理类通过委托类实现了相同的方法;容易出现大量冗余代码,扩展麻烦,代码维护复杂 动态代理:实现InvocationHandler接口,通过统一的工厂类来获取代理对象;所有函数都会经过invoke方法,可以在这里做一些操作, 阅读全文
摘要:
Java反射 反射就是把Java类中的各个成分映射成一个个的Java对象,即在运行状态中,对于任意一个类,都能够知道这个类的所以属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性。 动态获取信息及动态调用对象方法的功能叫Java的反射机制。 主要由以下的类来实现反射机制(这些类都位于jav 阅读全文
摘要:
枚举类实现线程安全 单例模式: 单例模式是常用的设计模式,作用是确保某个类只有一个实例吗,自行实例化并向整个系统提供这个实例。线程池、缓存、日志对象、对话框对象等常被设计成单例,选择单例模式是为了避免不一致的状态 简单的实现可参考 单例模式 但是这样实现仍然存在缺点:序列化可能会破坏单例模式,每次反 阅读全文
摘要:
I/O流数据源包括,字节数组,string对象,文件,“管道”,流组成的序列,其它数据源(Internet连接等) 字节流:处理数据的基本单位是单个字节,用来处理二进制数据;默认不使用缓冲区 字符流:处理数据的基本单位是Unicode码元(大小2字节),用来处理文本数据;使用缓冲区 输入流(Inpu 阅读全文
摘要:
关于迭代器(Iterator)的两种迭代机制:fail-fast 和 fail-safe fail-fast 机制:遍历集合时,当集合结构被修改,会抛出Concurrent Modification Exception 触发条件:单线程在遍历过程修改,remove()不会触发;多线程中一个线程遍历时 阅读全文
摘要:
javap -c xx.class > [输出文件] 编译为汇编语言 阅读全文
摘要:
集合接口: Collection(interface):List,Set,Queue;继承 Iterator 接口; Map接口与Collection无关,键值对 List:ArrayList,LinkedList,Vector ArrayList,Vector,都是基于数组的存储模型,可以通过下标 阅读全文
摘要:
transient:修饰变量,指示变量为不需要进行序列化(持久化)的属性 序列化是使对象的状态持久化的过程。这意味着对象的状态被转换为字节流,用于持久化(例如,将文件存储在文件中)或传输(例如,通过网络发送字节)。以同样的方式,我们可以使用反序列化从字节中恢复对象的状态。序列化主要用于网络编程是Ja 阅读全文
摘要:
String不可变:在内存(堆)中创建了一个字符串之后,它不能被改变,对字符串的操作方法都是新创建了一个字符串,原字符串不变 需要可变字符串,一般使用StringBuffer(线程安全)、StringBuilder(速度快),减少系统垃圾回收的资源损耗 String方法: substring(int 阅读全文