漠然

Nothing is impossible to a willing heart!

HotSpot 虚拟机的算法实现

一、概述 HotSpot 虚拟机通过 GC Roots 枚举判定待回收的对象,通过安全点和安全区域确定 GC 的触发点,最后通过各种不同的回收算法完成垃圾回收。 二、GC Roots 枚举过程 GC Roots 枚举最大的困难点在于:检查范围比较大,并且必须在内存快照中进行,保证一致性,而且时间要求比较敏感。 在生产环境中,即使不考虑其它部分内存,仅仅 Java 堆内存就可达几百...

JVM 对象判定和可回收算法

一、可回收对象判定方法 1、引用计数算法 基本原理: 给对象添加一个引用计数器,当有新的地方引用他的时候就将其+1,引用失效则对其-1,知道为0时,说明该对象不被任何引用,可被 GC 回收,如下图所示: 但是这种算法是有缺陷的,比如当 A、B 对象都没有使用时,其应该被 GC 回收,然后根据引用计数器算法,A、B 对象互相持有对方引用,导致两者引用计数器都为1,所以不会被 G...

Java 内存之直接内存

一、概念和特征 直接内存并非 JVMS 定义的标准 Java 运行时内存。 JDK1.4 加入了新的 NIO 机制,目的是防止 Java 堆 和 Native 堆之间往复的数据复制带来的性能损耗,此后 NIO 可以使用 Native 的方式直接在 Native 堆分配内存。 直接内存区域是全局共享的内存区域。 直接内存区域可以进行自动内存管理(GC),但机制并不...

Java 内存之方法区和运行时常量池

一、相关特征 1、方法区特征 同 Java 堆一样,方法区也是全局共享的一块内存区域 方法区的作用是存储 Java 类的结构信息,当我们创建对象实例后,对象的类型信息存储在方法堆之中,实例数据存放在堆中;实例数据指的是在 Java 中创建的各种实例对象以及它们的值,类型信息指的是定义在 Java 代码中的常量、静态变量、以及在类中声明的各种方法、方法字段等等;同事可能包括即时编...

Java 内存自动管理-虚拟机和内存区域概述

本文参考 JVM自动内存管理:内存区域基础概念 一、虚拟机及其定义 1、虚拟机概述 虚拟机: 模拟某种计算机体系结构,执行特定指令的软件;虚拟机一般分为 系统虚拟机、进程虚拟机。 系统虚拟机:如 Virtual Box、VMware 等,完整的模拟整个操作系统。 进程虚拟机:如 JVM、Adobe Flash Player、FC模拟器 等,进程虚拟机不会完整的模拟系统,而只...

Java 内存之 Java 堆

一、基本概念和特性 Java 堆内存是全局共享的 Java 堆通常是 JVM 中最大的一块内存区域 Java 堆得主要作用是用于存放创建的对象实例 JVMS 明确要求,此区域必须实现内存自动管理,即 GC;但不要求具体的 GC 实现,包括实现算法和技术 Java 堆可以在物理上不连续空间分配,只要逻辑上连续即可 Java 堆可能出现 OutOfMemoryErro...

Java 多线程-可见性问题

一、相关定义 1、可见性 在多线程中,如果一个线程对某一 共享变量 的修改,能及时被其他线程所感知,这个特性或者说过程称之为线程可见性。 2、共享变量 当多线程同时操作一个变量时,该变量在多线程的 工作内存(私有内存) 中都存在一个副本,那么这个变量称之为这几个线程的共享变量。 3、工作内存 多线程工作时,每个线程都会复制主内存中的变量副本到自己的私有内存,这个私有内存称之为...

SQL中 OR 关键字优先级问题

今天群里哥们偶尔问道一个问题,顺便查查找到了答案,记录一下。 问题 问题大致如下: SQL1 SELECT * FROM TABLE WHERE NAME='ZHANGSAN' OR 1=1 OR '1'='1' AND AGE=10; SQL2 SELECT * FROM TABLE WHERE NAME='ZAHNGSAN' OR 1=1 AND AGE=10;...

Java 内置命令-jps

jps 命令 本文参考自 HollisChuang’s Blog 简介 jps 命令用于查看当前 java 进程及其 pid 等相关信息,同 ps -aux | grep java 这种命令不同的是,jps 并不依赖于应用程序名来搜索进程(比如 grep java ); 这使得它可以显示出没有执行体的 java 进程;该命令 1.5+ 可用。 原理 在 Java 程序运...

程序猿的自我修养

最近在看到很多人问一些基本的东西,或者说一些资源、一些简单问题等,其实很好找到答案,在这里总结一下自己1年工作经验的学习经历。 一、善用搜索引擎 搜索引擎对于程序猿屌丝来说最熟悉不过了;但在实际使用中,你会发现经常出现 “我擦,我怎么没搜到” 这种问题,以下做了几点建议: 1、摒弃百度 对于习惯了从小从教科书开始学习的我们来说,”有问题找度娘” 这似乎是铁律;...