- 博客(8)
- 资源 (1)
- 收藏
- 关注
转载 Java中各种锁的机制原理以及使用介绍
转自:https://blog.csdn.net/axiaoboge/article/details/84335452 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录: .
2020-05-16 00:11:49 439
转载 Java内存模型 CAS
网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。 本文中,有很多定义和说法,都是笔者自己理解后定义出来的。希望能够让读者可以对Java内存模型有更加清晰的认识。当然,如有偏颇,欢迎指正。 为什么要有内存
2020-05-13 00:39:41 271
原创 深入理解JVM(四)—垃圾回收算法和垃圾回收器
一、垃圾回收简介 1.1 什么是垃圾回收 JVM中自动检测并移除不再使用的数据对象的这种机制称为:垃圾回收(Garbage Collection ),简称GC 1.2 为什么要垃圾回收 由于不同JAVA对象存活时间是不一定的,因此,在程序运行一段时间以后,如果不进行垃圾回收,整个程序会因内存耗尽导致整个程序崩溃。垃圾回收还会整理那些零散的内存碎片,碎片过多最直接的问题就是会导致无法分配大块的内存空间以及降低程序的运行效率 二、垃圾对象的判定 2.1 引用计数法 给所有的对象添加一个引用计数器,每当有一个
2020-05-12 22:35:23 237
转载 深入理解JVM(三)—JVM内存划分
一、JVM运行时数据区域 二、程序计数器 线程私有 当前线程所执行字节码的行号指示器,控制程序执行顺序,分支,循环,跳转。 三、虚拟机栈 线程私有 JVM栈是程序运行时单位,决定了程序如何执行,或者说数据如何处理。 Java栈内存,以帧的形式存放本地方法的调用状态,包括方法调用的参数、局部变量、中间结果等(方法都是以方法帧的形式存放在方法区的),每调用一个方法就将对应该方法的方法帧压入Java 栈,成为当前方法帧。当调用结束(返回)时,就弹出该帧。活动线程中,只有栈顶的栈帧是有效的,称为当前栈帧
2020-05-12 22:29:35 125
转载 深入理解JVM(二)—类加载机制
一、JVM类加载机制 加载 链接(验证 准备 解析) 初始化 使用 卸载 类加载器: 启动类加载器(Bootstrap ClassLoader): 负责加载JAVA_HOME\lib 目录中的,或通过-Xbootclasspath参数指定路径中的,且被虚拟机认可(按文件名识别,如rt.jar)的类。 扩展类加载器(Extension ClassLoader): 负责加载JAVA_HOME\lib\ext 目录中的,或通过java.ext.dirs系统变量指定路径中的类库。 应用程序类加载器(App
2020-05-12 22:27:03 142
转载 深入理解JVM(一)—Java与JVM的关联关系
一、JVM简介 英文:JAVA Virtual Machine JVM是一个虚拟出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM有自己完善的虚拟硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统 JVM屏蔽了与具体操作系统平台相关的信息,使得JAVA程序只需生成在JAVA虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行 三大主流虚拟机: SUN HotSopt: 使用最广泛的虚拟机,兼容性好,开源,我们日常使用这个 Bea JRockit: 执行效
2020-05-12 22:23:57 1159 1
转载 Ubuntu 16.04上安装Jenkins
介绍 Jenkins是一款开源自动化服务器,旨在自动化连续集成和交付软件所涉及的重复技术任务。 Jenkins是基于Java的,可以从Ubuntu软件包安装,也可以通过下载和运行其Web应用程序ARchive(WAR)文件进行安装 - 构成一个完整的Web应用程序的集合,该文件旨在在服务器上运行。 在本教程中,我们将通过添加其Debian软件包存储库来安装Jenkins,然后使用该存储库使用apt-get安装软件包。 先决条件 要遵循本教程,您将需要: 一个Ubuntu 16.04 或者 Ubun
2020-05-09 14:40:49 251
原创 Ubuntu Server 16.04安装GitLab服务器笔记
<a href="http://space.mvbox.cn/473027958/info/">http://space.mvbox.cn/473027958/info/</a> <a href="http://jz.docin.com/aqj926">http://jz.docin.com/aqj926</a> <a href="http://my.oschina.net/zg4dvk5h/fellow">http://my.oschina.net/zg4dvk5h/fellow</a> <a hr
2020-05-08 18:26:26 166
harbor.txt
2020-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人