- 博客(10)
- 资源 (5)
- 收藏
- 关注
转载 全面了解java中的CAS机制
什么是CAS在jdk 1.5中增加的一个最主要的支持是Atomic类,比如说AtomicInteger, AtomicLong,这些类可帮助最大限度地减少在多线程中对于一些基本操作(例如,增加或减少多个线程之间共享的值)的复杂性。而这些类的实现都依赖于CAS(compare and swap)的算法。 乐观锁和悲观锁cpu是时分复用的,也就是把cpu的时间片,分配给不同的threa...
2018-07-27 16:57:08 274
原创 4. 虚拟机类加载机制(二)
1.类加载器把加载阶段的 “通过一个类的全限定名来获取一个类的二进制字节流”这个动作放到java虚拟机外部去实现,实现这个动作的代码模块为“类加载器”三种不同的类加载器:启动类加载器、扩展类加载器、应用程序类加载器除此之外,还有自定义的类加载器,它们之间的层次关系被称为类加载器的双亲委派模型。该模型要求除了顶层的启动类加载器外,其余的类加载器都应该有自己的父类加载器,而这种父子关系一般...
2018-07-20 16:58:28 219
原创 4. 虚拟机类加载机制 (一)
1.概述上节讲到虚拟机要加载Class文件,那是如何加载这些Class文件呢?Class文件中的信息进入到虚拟机会发生哪些变化?都是这节要讨论的。2. 什么是虚拟机的类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。3. 在java语言中类的加载、连接和初始化过程都是在...
2018-07-19 17:04:42 287
原创 3.类文件结构
1. 代码编译结果从本地机器码转变为字节码,是构成平台无关性的基石。实现平台无关性的基础是虚拟机和字节码存储格式。 java虚拟机不与java等任何语言绑定,java虚拟机只认识.class文件,任何语言只要编译成了.class文件(字节码),java虚拟机都能运行。即虚拟机不关心Class的来源是何种语言。2. 那Class文件包含哪些东西呢?包含有类的版本、字段、方法、接口等...
2018-07-19 11:46:49 230
原创 2. 垃圾收集器与内存分配策略(二)
上一篇我们已经讨论了内存回收的内容,我们再来说一下,对象的内存分配策略往大方向讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启用了本地线程分配缓冲,将按线程优先在TLAB上分配。普遍的内存分配规则:(1)对象优先在Eden分配 大多数情况下,对象在Eden区中分配。当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC(2)大对象直接进入老年代 所谓的大对象是指,需要...
2018-07-16 16:09:47 201
原创 2.垃圾收集器与内存分配策略(一)
1. 垃圾收集需要完成的三件事情:(1)哪些内存需要回收?(2)什么时候回收?(3)如何回收?哪些内存需要回收? 程序计数器、虚拟机栈、本地方法栈3个区域都是随着线程而生或死,当线程结束时,内存自然跟着回收了。但java堆和方法区则不一样,我们只有在程序运行期间才会知道创建哪些对象,这部分的内存分配与回收是动态的,所以,垃圾收集器主要关注堆和方法区的回收。什么时候回收?当然是对象死的时候回收。那如...
2018-07-15 17:40:17 227
原创 1.Java内存区域
1.对象的创建过程 (1)当遇到一个new指令的时候,首先去检查这个指令参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已经被加载、解析和初始化,若没有,则先执行类的加载过程. (2)在类加载检查通过后,虚拟机为新生对象在堆上分配内存。对象所需内存大小在类加载完后便可确定。那分配方案有两种:1.在java堆中内存是绝对规整的情况下,就把指针向空闲内存中移动...
2018-07-14 18:35:15 289
原创 面试准备:基于JDK1.8的 hashMap源码
在jdk1.8中hashMap进行了较大优化,具体可以回答以下几点:1. hashMap内部由 数组+链表转变为数组+链表+红黑树实现,当链表节点大于8时,存储结构由链表转为红黑树。...
2018-07-12 16:20:50 790
原创 Mybatis语法解释
在使用Mybatis的时候,我们将查询语句写入.xml文件中,那具体的xml文件赢如何写呢?我们可以拿一个例子来解释:1. 前提:我们首先定义了java Bean:Color类public class Color { private Integer id; private String name; private Integer parentId; private...
2018-07-06 11:12:39 497
转载 全面了解java中的CAS机制
什么是CAS在jdk 1.5中增加的一个最主要的支持是Atomic类,比如说AtomicInteger, AtomicLong,这些类可帮助最大限度地减少在多线程中对于一些基本操作(例如,增加或减少多个线程之间共享的值)的复杂性。而这些类的实现都依赖于CAS(compare and swap)的算法。乐观锁和悲观锁cpu是时分复用的,也就是把cpu的时间片,分配给不同的thread/process...
2018-07-02 15:43:03 217
Activemq所需的动静态链接库文件
2017-05-03
大二数据结构迷宫问题(文档+源代码)
2012-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人