上一页 1 ··· 3 4 5 6 7 8 9 10 下一页

2018年8月29日

摘要: Class的装载分了三个阶段,loading,linking和initializing。 Class.forName(className) 实际上是调用Class.forName(className, true, this.getClass().getClassLoader())。 注意第二个参数, 阅读全文
posted @ 2018-08-29 15:08 xiaowater 阅读(70) 评论(0) 推荐(0)
摘要: Map接口: | + -- WeakHashMap: 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条 | 目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终 | 止,然后被回收。丢弃某 阅读全文
posted @ 2018-08-29 15:08 xiaowater 阅读(131) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-08-29 15:07 xiaowater 阅读(88) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-08-29 15:06 xiaowater 阅读(75) 评论(0) 推荐(0)
摘要: CyclicBarrier 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它 阅读全文
posted @ 2018-08-29 15:03 xiaowater 阅读(81) 评论(0) 推荐(0)
摘要: 自定义线程池 //创建等待队列 BlockingQueue<Runnable> bqueue = new ArrayBlockingQueue<Runnable>(20); //创建一个单线程执行程序,它可安排在给定延迟后运行命令或者定期地执行。 ThreadPoolExecutor pool =  阅读全文
posted @ 2018-08-29 15:03 xiaowater 阅读(93) 评论(0) 推荐(0)
摘要: 常识: 1、JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个对象,一个线程获取这个引用指向的对象,那么他们之间不会发生ConcurrentModificationException,他们是在虚拟机层面阻塞的,而且速度非常快,几乎不需要CPU时间。 2、JAVA中两个 阅读全文
posted @ 2018-08-29 15:03 xiaowater 阅读(79) 评论(0) 推荐(0)
摘要: VM运行时数据区域: 1.程序计数器(Program Counter Register) 每一个Java线程都有一个程序计数器来用于保存程序执行到当前方法的哪一个指令,对于非Native方法,这个区域记录的是正在执行的VM原语的地址,如果正在执行的是Natvie方法,这个区域则为空(undefine 阅读全文
posted @ 2018-08-29 11:19 xiaowater 阅读(154) 评论(0) 推荐(0)
摘要: ReadWriteLock接口的核心方法是readLock(),writeLock()。实现了并发读、互斥写。但读锁会阻塞写锁,是悲观锁的策略。 公平性 非公平锁(默认),为了防止写线程饿死,规则是:当等待队列头部结点是独占模式(即要获取写锁的线程)时,只有获取独占锁线程可以抢占,而试图获取共享锁的 阅读全文
posted @ 2018-08-29 11:18 xiaowater 阅读(102) 评论(0) 推荐(0)
摘要: 磁盘 I/O 优化: 性能检测 而磁盘 I/O 通常都很耗时,我们要判断 I/O 是否是一个瓶颈,我们有一些参数指标可以参考: 如我们可以压力测试应用程序看系统的 I/O wait 指标是否正常,例如测试机器有 4 个 CPU,那么理想的 I/O wait 参数不应该超过 25%,如果超过 25% 阅读全文
posted @ 2018-08-29 11:18 xiaowater 阅读(163) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页

导航