Java并发容器之ConcurrentHashMap精讲

Java并发容器之ConcurrentHashMap精讲
ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get操作的时候,它是否也使用了锁来保护?)。 ConcurrentMap 提供其他原子 put...

并发编程之可见性、有序性和原子性的理解

并发编程之可见性、有序性和原子性的理解
并发处理的广泛应用使得Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器。 在学习并发编程,很多概念需要理解透彻,理解清楚。 其中有三个基本的关注点: 安全性,也就是正确性,指的是程序灾并发情况下执行的结果和预期一致 活跃性,比如死锁,活锁 性能,减少上下文切换,家少内核调用,较少一致性流量等等 安全性问题是首要解决的问题,保证程...

class文件常量池和运行时常量池比对

class文件常量池和运行时常量池比对
在学习JVM过程中,接触到常量池这个概念,后来发现不仅仅有一个运行时常量池概念,还有一个class文件常量池概念,使得本来不懂的我更加迷惑了。要想理解,那么就得对这两者进行比较理解,加深记忆。 那么,我们先看一下JVM运行时数据区: 其中, 程序计数器(PC计数器):是JVM执行程序的流水线,存放一些跳转指令。 本地方法栈:是JVM调用操作系统方法所使用的栈。 虚拟机栈:是JVM调用Java代码所使用的...

基于Java的BFS和DFS的简单实现

基于Java的BFS和DFS的简单实现
说在前面的话 读研期间研究的方向为社区发现,现阶段社区发现都是基于图来进行划分。所以讲复杂网络学习中的一些知识点进行笔记记录。同时,图在算法世界中的重要地位是不言而喻的,面试官问的问题中有很多的问题都可以用图的方法去解决。由此也可以看出图确实适用范围确实很广。 图的表示 邻接矩阵 ,对于N个点的图,需要N×N的矩阵表示点与点之间是否有边的存在。这种表示法的缺点是浪费空间,尤其是对于...

Java虚拟机之辨清Java堆

Java虚拟机之辨清Java堆
Java堆是和Java应用程序关系最为密切的内存空间,几乎所有的对象都放在堆中。并且Java堆是完全自动化管理的,通过垃圾回收机制,垃圾对象会被自动清理,而不需要显式地释放,c/c++中的free()等为显示地释放内存。 根据垃圾回收机制的不同,Java堆有可能拥有不同的结构。最为常见的一种构成是将整个Java堆分为新生代和老年代。其中,新生代存放新生对象或者年龄不大的对象,老年代则存放老年对象。新生代有...

初识Java虚拟机的基本结构

初识Java虚拟机的基本结构
Java虚拟机是什么?是做什么的?可能这些问题在我们学习Java之初就伴随这我们。 一般来说我们使用IDE将我们编写好的Java程序,点击运行,在不出错的情况下,就会得到我们想要的结果。那么这期间到底发生了什么?先看下图: 知道的是Java程序通过编译器编译成class文件,那么后面到底发生了什么,就是Java虚拟机的工作。现在我们先要认识Java虚拟机的基本结构。 类加载子系统 类加载子系统负责从文件系统...

Java工程师成神之路[转]

Java工程师成神之路[转]
一、基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133 http://ifeve.com/jmm-faq/ 1.1.2. 了解JVM各种参数及调优 1.1.3. 学习使用Java工具 jps, jstack, jmap, jconsole, jinfo, jhat, javap, … http://kenai.com/projects/btrace http://www.crashub.org/ https://github.com/taobao/TProfiler https://github.com/CSUG/HouseMD http:/...

走进Java-深入理解Java虚拟机

走进Java-深入理解Java虚拟机
世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。 Java技术体系 功能划分 Java程序设计语言 各种硬件平台上的Java虚拟机 Class文件格式 Java API类库 来自商业机构和开源社区的第三方Java类库 其中,我们可以把Java程序设计语言、Java虚拟机和Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境(在某种程度上可...

Effective Java读书笔记之引言

Effective Java读书笔记之引言
说在前面的话 《Effective Java》到底多么牛逼,我现在我无法从我的角度来评判,我现在只是一个初读者,通过读书笔记的形式来记录学习过程中一些重要的知识点。 本书目标 帮助读者最有效的使用Java程序设计语言及其基本类库:java.lang、java.util,在某种程度上还包括了java.util.concurrent和java.io。当然还有其它内容,详情请阅读原书。 Java语言的四种类型 接口(interface) 类(class) 数组(arra...
Copyright © If Coding 保留所有权利.   Theme  Ality   

用户登录