![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java核心
文章平均质量分 74
grefr2
这个作者很懒,什么都没留下…
展开
-
博客已转移至 http://blog.yemou.net/
我所有的博客都已经转移至 http://blog.yemou.net/ ,该网站是一家更加专业的博客网站。欢迎大家一起过去交流原创 2015-07-27 17:57:40 · 167 阅读 · 0 评论 -
[转]Java7中的ForkJoin并发框架初探(下)—— ForkJoin的应用
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp86 前两篇文章已经对Fork Join的设计和JDK中源码的简要分析。这篇文章,我们来简单地看看我们在开发中怎么对JDK提供的工具类进行应用,以提高我们的需求处理效率。Fork Join这东西确实用好了能给我们的任务处理提高效率,也为开发带来方便。但For...原创 2014-03-19 15:47:36 · 97 阅读 · 0 评论 -
[转]Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp85 根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给出了Fork Join的实现。在Java SE 7的API中,多了ForkJoinTask、ForkJoinPool、ForkJoinWorkerThread、RecursiveAction、...原创 2014-03-19 15:46:17 · 101 阅读 · 0 评论 -
[转]Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp83这篇我们来简要了解一下JavaSE7中提供的一个新特性 —— Fork Join 框架。0. 处理器发展和需求背景回想一下并发开发的初衷,其实可以说是有两点,或者说可以从两个方面看。对于单核的处理器来说,在进行IO操作等比较费时的操作进行时,如果执...原创 2014-03-19 15:44:54 · 76 阅读 · 0 评论 -
[转] Java se 7新特性研究(二)
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp82 今天主要研究Java se 7中异常处理的新功能.从今天开始正在将jdk7的说法改为java se 7跟oracle官网的一致一、新增了try-with-resource 异常声明在JDK7中只要实现了AutoCloseable或Closeable...原创 2014-03-19 11:38:50 · 58 阅读 · 0 评论 -
[转]Java se 7 最新特性研究(一)
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp81 从2006到现在等待了多年的jdk7终于发布了.这里将对它的一些新特做一些初步的研究:jdk7 相对于jdk6主要在以一几个方面有了非常显著的改进的提升:首先分析其对java语言本身的改进:二进制表示的支持(Binary Literals)的支...原创 2014-03-19 11:37:21 · 61 阅读 · 0 评论 -
jvm 常用内存分析命令
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt121 // 打印出内存占用情况./jstat -gcutil 12564 1000 5 // 打印出内存占用情况./jmap -heap 12564 // 打印出jvm中各个资源占用情况,比较合适细节查找./jmap -histo 1...原创 2015-02-06 15:32:37 · 107 阅读 · 0 评论 -
CountDownLatch和CyclicBarrier 特点比较
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp79 并发编程中的CountDownLatch和CyclicBarrier 继上篇文章 http://grefr.iteye.com/admin/blogs/2020812(CyclicBarrier介绍)CountDownLatch和CyclicBar...原创 2014-03-09 17:20:57 · 71 阅读 · 0 评论 -
聊聊并发-Java中的Copy-On-Write容器
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp78 聊聊并发-Java中的Copy-On-Write容器 Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后...原创 2014-03-08 12:20:45 · 142 阅读 · 0 评论 -
java 读写锁详解
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt124 在java多线程中,为了提高效率有些共享资源允许同时进行多个读的操作,但只允许一个写的操作,比如一个文件,只要其内容不变可以让多个线程同时读,不必做排他的锁定,排他的锁定只有在写的时候需要,以保证别的线程不会看到数据不完整的文件。 下面是个关于多线...原创 2015-02-26 17:46:23 · 92 阅读 · 0 评论 -
[转]Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp84Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandomQ:...原创 2014-03-25 22:08:02 · 79 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需...原创 2014-03-25 22:28:58 · 68 阅读 · 0 评论 -
java对象 深度克隆(不实现Cloneable接口)和浅度克隆
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt128为什么需要克隆:在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在J...原创 2015-06-08 15:45:29 · 257 阅读 · 0 评论 -
深入理解Java HashMap实现原理
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp95原创 2014-04-10 18:05:32 · 108 阅读 · 0 评论 -
【转】Java HashMap的死循环问题
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp94在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的Has...原创 2014-04-10 17:12:18 · 76 阅读 · 0 评论 -
HashMap和ConcurrentHashMap对null的不同处理
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp93 HashMap的键值对都可以为nullConcurrentHashMap的键值对都不可以为null原创 2014-04-10 15:45:29 · 124 阅读 · 0 评论 -
探索 ConcurrentHashMap 高并发性的实现机制
很不错的一篇文章,值得一看http://www.ibm.com/developerworks/cn/java/java-lo-concurrenthashmap/原创 2014-03-31 17:54:49 · 53 阅读 · 0 评论 -
探索 Java 热部署
在 JAVA 开发领域,热部署一直是一个难以解决的问题,目前的 JAVA 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。对于某些大型的应用来说,每次的重启都需要花费大量的时间成本。虽然 OSGI 架构的出现,让模块重启成为可能,但是如果模块之间有调用关系的话,这样的操作依然会让应用出现短暂的功能性休克。本文将探索如何在不破坏 JAV...原创 2013-10-17 15:00:14 · 76 阅读 · 0 评论 -
【转】Java虚拟机的JVM垃圾回收机制
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp43 1.JVM内存空间 JVM堆(Heap)= 新生代(Young) + 旧生代(Tenured) 分区作用: 新创建的对象通常先将其分配在新生代中,在新生代中经过若干次GC之后仍未释放的对象,再将它移动到...原创 2013-10-17 14:13:14 · 40 阅读 · 0 评论 -
java 多线程Callable和Runable执行顺序问题详解
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt125 毫无疑问 Runnable会进行异步执行,此处不多数,主要说明Callable的使用,看实例:1、public class ThreadTest { public static void main(String[] args) throw...原创 2015-02-28 16:25:25 · 195 阅读 · 0 评论 -
Spring AOP 详解
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt117 此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。本文...原创 2015-01-15 15:03:47 · 75 阅读 · 0 评论 -
HashMap 底层算法分析
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp72Hash算法HashMap使用Hash算法,所以在解剖HashMap之间,需要先简单的了解Hash算法,Hash算法一般也成为散列算法,通过散列算法将任意的值转化成固定的长度输出,该输出就是散列值,这是一种压缩映射,也就是,散列值的空间远远小于输入的值空间。简...原创 2014-02-26 16:30:33 · 69 阅读 · 0 评论 -
Java 类的热替换 —— 概念、设计与实现
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp71 Java 类的热替换 —— 概念、设计与实现构建基于 Java 的在线升级系统对于许多关键性业务或者庞大的 Java 系统来说,如果必须暂停系统服务才能进行系统升级,既会大大影响到系统的可用性,同时也增加了系统的管理和维护成本。因此...原创 2014-02-26 14:26:21 · 84 阅读 · 0 评论 -
Java对象序列化
详见:[url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp19[/url]序列化概述: 简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进...原创 2013-05-23 18:25:58 · 62 阅读 · 0 评论 -
Hashtable、synchronizedMap、ConcurrentHashMap 比较
详见:[url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp18[/url]Hashtable、synchronizedMap、ConcurrentHashMap 比较2011-08-29 17:13:16util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型Lis...原创 2013-05-23 18:24:32 · 68 阅读 · 0 评论 -
java并发之原子性
详见:[url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp17[/url]1、原子性操作:不能被线程调度机制中断的操作;--对原子性变量的赋值和返回操作通常都是原子性的原子性可以用于除了long和double之外的所有基本类型上的简单操作(当做不可分的原子),但是JVM将64位的 (long 和doubl...原创 2013-05-22 09:39:50 · 60 阅读 · 0 评论 -
多线程常用方法以及对锁的控制
详见:[url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp16[/url]1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Synchronized同步块,其他线程仍然不同访问共享数据。注意该方法要捕获异常 比如有两个...原创 2013-05-22 09:37:59 · 67 阅读 · 0 评论 -
ReentrantLock和synchronized的性能对比
详见:[url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo8[/url]ReentrantLock和内部锁的性能对比 ReentrantLock是jdk5引入的新的锁机制,它与内部锁(synchronize) 相同的并发性和内存语义,比如可重入加锁语义。在中等或者更高负荷下,ReentrantLock有...原创 2013-05-22 09:36:43 · 88 阅读 · 0 评论 -
java锁机制
2.4 锁机制 临界区是指,使用同一个锁控制的同一段代码区或多段代码区之间,在同一时间内最多只能有一个线程在执行操作。这个概念与传统的临界区有略微的差别,这里不想强调这些概念上的差别,临界区的这样定义有利于我们对后面内容的理解。几乎所有设计到多线程的语言都会涉及到临界区和锁的概念,java也不例外,在java中可以有多种方式实现临界区语义,最常使用的是锁机制和Synchronize...原创 2013-05-22 09:35:01 · 74 阅读 · 0 评论 -
Class.forName和ClassLoader.loadClass的比较
详见:[url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo7[/url]Class的装载分了三个阶段,loading(加载),linking(链接)和initializing(初始化),分别定义在The Java Language Specification的12.2,12.3和12.4。 Class.forNa...原创 2013-05-22 09:30:36 · 47 阅读 · 0 评论 -
JVM类加载过程
详见: [url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo5[/url]JVM:加载、链接和初始化JVM要解释Java字节码,就必须对所需的类和接口执行如下3步操作:(1) 加载:JVM在加载类时,会查找该类或该接口的二进制表示,并根据找到的二进制表示(通常是由Java编译器创建的类文件)创建一个Class...原创 2013-05-21 17:04:04 · 113 阅读 · 0 评论 -
java程序的内存分配
java程序的内存分配JAVA 文件编译执行与虚拟机(JVM)介绍Java 虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明。 一.Java源文件的编译、下载、解释和执行 Java应...原创 2013-05-23 18:27:52 · 106 阅读 · 0 评论 -
垃圾回收机制
详见:[url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp39[/url]Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不...原创 2013-06-09 14:41:24 · 65 阅读 · 0 评论 -
Arrays和Collections 对于sort的不同实现原理
详见:[url]http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp46[/url]1、Arrays.sort()该算法是一个经过调优的快速排序,此算法在很多数据集上提供N*log(N)的性能,这导致其他快速排序会降低二次型性能。2、Collections.sort()该算法是一个经过修改的合并排序算法(其中,如...原创 2013-11-28 18:06:00 · 130 阅读 · 0 评论 -
CyclicBarrier和CountDownLatch介绍
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp70CyclicBarrier介绍 (一)一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用...原创 2014-02-24 00:25:23 · 90 阅读 · 0 评论 -
正确理解ThreadLocal
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt107 首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLoc...原创 2014-06-17 16:54:23 · 49 阅读 · 0 评论 -
探秘Java虚拟机——内存管理与垃圾回收
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt106本文主要是基于Sun JDK 1.6 Garbage Collector(作者:毕玄)的整理与总结,原文请读者在网上搜索。1、Java虚拟机运行时的数据区2、常用的内存区域调节参数-Xms:初始堆大小,默认为物理内存的1/64(<...原创 2014-06-16 23:29:33 · 69 阅读 · 0 评论 -
Java GC 日志详解
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt105 Java GC日志可以通过 +PrintGCDetails开启以ParallelGC为例YoungGC日志解释如下(图片源地址:这里) : FullGC(图片源地址:这里):...原创 2014-06-16 23:11:55 · 81 阅读 · 0 评论 -
垃圾回收调优及JVM参数详解
http://hi.baidu.com/jiangyangw3r/item/402dc1abec3b859e15107383原创 2014-06-13 09:09:12 · 64 阅读 · 0 评论 -
java 静态方法分析
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp65 1、大家都以为“实例方法需要先创建实例才可以调用,比较麻烦,静态方法不用,比较简单” 事实上如果一个方法与他所在类的实例对象无关,那么它就应该是静态的,而不应该把它写成实例方法。所以所有的实例方法都与实例有关,既然与实例有关,那么创建实例就是必然的步骤,没...原创 2014-01-22 16:46:17 · 91 阅读 · 0 评论