随笔分类 -  Java

摘要:1.Runnable Runnable是个接口,使用很简单: 1. 实现该接口并重写run方法 2. 利用该类的对象创建线程 3. 线程启动时就会自动调用该对象的run方法 通常在开发中结合ExecutorService使用,将任务的提交与任务的执行解耦开,同时也能更好地利用Executor提供的各 阅读全文
posted @ 2016-12-16 00:20 MOBIN 阅读(16972) 评论(2) 推荐(13)
摘要:摘要 相比于静态代理,动态代理避免了开发人员编写各个繁锁的静态代理类,只需简单地指定一组接口及目标类对象就能动态的获得代理对象。 代理模式 使用代理模式必须要让代理类和目标类实现相同的接口,客户端通过代理类来调用目标方法,代理类会将所有的方法调用分派到目标对象上反射执行,还可以在分派过程中添加"前置 阅读全文
posted @ 2016-06-19 00:10 MOBIN 阅读(37343) 评论(5) 推荐(53)
摘要:摘要: 为了保证线程安全,在迭代器迭代的过程中,线程是不能对集合本身进行操作(修改,删除,增加)的,否则会抛出ConcurrentModificationException的异常。 示例: 1 public static void main(String[] args) { 2 Collection 阅读全文
posted @ 2016-03-31 12:41 MOBIN 阅读(1386) 评论(0) 推荐(0)
摘要:当你通过new语句创建一个java对象时,JVM就会为这个对象分配一块内存空间,只要这个对象被引用变量引用了,那么这个对象就会一直驻留在内存中,否则,它就会结束生命周期,JVM会在合适的时候回收它所占用的内存。下面通过伪代码来解释java对象在JVM中的生命周期: 1 class Teache... 阅读全文
posted @ 2015-10-03 21:49 MOBIN 阅读(9869) 评论(3) 推荐(1)
摘要:泛型是提供给javac编译器使用的,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入,编译器编译带类型说明的集合进会去掉“类型”信息,使程序运行效率不受影响。由于编译生成的字节码会去掉泛型的类型信息,只要能跳过编译器,就可以往某个泛型集合虽加入其它类型的数据。所以我们可以用反射为泛型集合添加... 阅读全文
posted @ 2015-08-31 17:28 MOBIN 阅读(2895) 评论(0) 推荐(2)