Java泛型有什么卵用?

一,什么是java泛型 java泛型是指,在类和方法调用时,指定具体的类型参数(type Parameter),从而实现编译时类型检测,保证运行时类型安全的机制。 支持类型参数调用的类和方法定义方式如下: 类 将泛型参数声明放在类名后的尖括号中,多个类型参数以逗号分隔。调用时在类名后传具体的类型 声明 public class TestClass<K,V> { K key; V value; »

Java序列化(Serializable)

什么是序列化 在java中,将一个对象变成字节称为序列化。反之称为反序列。 为什么需要序列化 方便网络传输 方便存储 方便跨平台 不可能直接存储并还原一个对象,在计算机世界,存储通信都是以字节流形式进行的。 Java对象序列化生成的字节流并不一定要通过java来进行反序列,它完全可以跨平台使用.net甚或其他程序处理。 序列化后的字节流由于更精简,所以其通信成本更小,优于xml,所以许多RPC框架会使用字节流通信。 如何序列化 java原生方式 hessian Kryo java原生方式:通过java的ObjectInputStream和ObjectOutputStream,可以将实现了Serializable接口的对象进行反序列化和序列化。 由于序列化的过程本身需要耗时, »

Java Thread Pool

一,线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控 二,线程池使用方式 java中使用ThreadPoolExecutor来创建一个线程池。其基本用法如下: //创建一个线程池 ThreadPoolExecutor threadPool = new ThreadPoolExecutor(3, 5, 60, »

Java Clone

一,关于Java中的Clone 只要实现了Cloneable接口的类,其对象都可以调用clone()方法进行对象复制,如果没有实现Cloneable接口便掉clone方法会报CloneNotSupportedException。 值得注意的是,Cloneable接口并没有提供任何需要实现的方法,所以实现了Cloneable接口的类其意义只是声明了自己具有clone的功能。具体的clone实现是jdk底层实现了,对某对象调用clone方法后,向上遍历最终使用的是Object类的clone方法。示例: public class Test implements Cloneable { private String name; public String getName() { return name; »

ConcurrentModificationException

一,ConcurrentModificationException Iterator在迭代时,检测(对List内部的modCount进行检测)到并发修改则会快速失败(fail-fast),抛出该异常。值得注意的是,这里指的并发修改并不一定是多线程。单线程情况下也可能抛出该异常。 二,单线程下抛出ConcurrentModificationException 单线程下,以下代码会导致collection快速失败抛出异常: Iterator iterator = collection.iterator(); while (iterator.hasNext()) { Item item = (Item) iterator. »

Java并发

一,初衷 一直以来,对java并发的认识,仅仅停留在多线程的使用,以及synchronized等宏观层面上,但对于底层实现却毫无认识,这使得在使用并发解决问题时,不能游刃有余知根知底。于是花了点时间研究这个专题,并梳理成文,以求更为深刻的认识。 二,并发和并行 并发(Concurrency) 并发是指,多个任务的启动,执行,停止在时间周期上是重叠交叉而不是线性的,比如A任务执行期间,B任务可能已经进入结束周期。并发并不意味着这两个任务就一定是在同一瞬间执行着,比如在单核cpu机器上的两个任务在某个时间片内,只能有一个任务执行。 并行( »