JVM学习(八)垃圾收集器 发表于 2018-08-18 | 分类于 编程学习 , Java 概述如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别。这里仅讨论HotSpot虚拟机中的垃圾收集器。 垃圾收集器组合HotSpot虚拟机的所有收集器 ... 阅读全文 »
JVM学习(七)垃圾回收算法 发表于 2018-08-18 | 分类于 编程学习 , Java 标记-清除算法算法思路标记-清除算法是最基础的收集算法,算法分为“标记”和“清除”两个阶段: 首先标记出所有需要回收的对象。 在标记完成之后统一回收所有被标记的对象。 标记-清除法的过程如下: 优缺点优点基于最基础的可达性分析算法,是最基础的收集算法,后续的算法都是基于这种思路并对其不足之处进行 ... 阅读全文 »
JVM学习(六)线程安全和锁优化 发表于 2018-08-15 | 分类于 编程学习 , Java 线程安全为了更深入的理解线程安全,可以Java语言中的线程安全按照“安全程度”由强至弱来排序,可以将Java中各种操作共享的数据分为以下5类: 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 不可变在Java语言中(特指JDK1.5以后,即Java内存模型被修正之后的Java语言),不可 ... 阅读全文 »
JVM学习(五)Java内存模型 发表于 2018-08-13 | 分类于 编程学习 , Java Java内存模型Java内存模型(Java Memory Model, JMM)屏蔽掉了各种硬件和操作系统的内存差异,以实现Java程序在各种平台下都达到一致的内存访问效果。 JMM的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和内存中取出变量这样的底层细节。 此处的变量包括 ... 阅读全文 »
JVM学习(四)垃圾回收之哪些内存需要回收 发表于 2018-08-08 | 分类于 编程学习 , Java 概述垃圾回收(Garbage Collection, GC)的立时比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。 垃圾回收需要了解的事情垃圾回收需要考虑的3件事情: 哪些内存需要回收?即如何判断对象死亡,需要进行回收 什么时候回收?即判定发生在什 ... 阅读全文 »
JVM学习(三)虚拟机类加载机制 发表于 2018-08-04 | 分类于 编程学习 , Java 概述与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化的过程都是在程序运行期间完成的。 类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析 ... 阅读全文 »
JVM学习(二)Java对象 发表于 2018-08-03 | 分类于 编程学习 , Java 对象的创建Java程序中new一个普通对象需要经过5个步骤: 相应检查和类加载 分配内存 初始化零值 对象头设置 执行方法 相应检查和类加载虚拟机遇到一条new指令时,首先检查这个指令的参数是否能够在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没 ... 阅读全文 »
JVM学习(一)Java内存区域 发表于 2018-08-03 | 分类于 编程学习 , Java 运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁时间,有的区域锁着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》,Java虚拟机所管理 ... 阅读全文 »
数据库初步之MySQL基本 发表于 2018-05-15 | 分类于 编程学习 , 数据库 本来打算三天内看完《MySQL必知必会》的,但是因为各种各样的原因耽误了一些时间,这本书讲的比较浅,没有涉及过多的数据库理论上的东西,大多是数据库甚至只是MySQL本身的一些具体操作,但是对接触数据库,了解数据库的基本操作和基本概念很有帮助,在这里对自己学习的内容进行整理。 数据过滤检索数据限制LI ... 阅读全文 »
Java错题记录(一) 发表于 2018-04-19 | 分类于 编程学习 , Java 看视频和书籍学习理论的时候,难免会有疏忽,或者自以为学明白了,其实有些地方不清楚甚至理解错误,通过做一些笔试题,能够明白自己的不足,也能加深印象,在此记录下来。 继承相关 子类父类代码执行先后顺序如下: 父类静态代码块 子类静态代码块 父类非静态代码块 父类构造器 子类非静态代码块 子类构造器 当 ... 阅读全文 »