随笔分类 - JVM
摘要:一、intern与字符串比较 前置知识 字符串常量池 在Java语言中有8种基本数据类型和一种比较特殊的类型String。这些类型为了使它们在运行过程中速度更快、更节省内存,都提供了一种常量池的概念。 常量池就类似一个Java系统级别提供的缓存。8种基本数据类型的常量池都是系统协调的,String类
阅读全文
摘要:java中的变量大体分为:类(静态)变量、成员变量、局部变量,在class文件被jvm的类加载器加载后,随后这些变量被分配至内存中。但是,它们何时被分配至内存的何处呢? jvm把自己运行时管理的内存称为运行时数据区。主要分为栈、堆、方法区,java变量就存在这3个区中。 下表为栈、堆、方法区内存分配
阅读全文
摘要:类加载器 JVM(java虚拟机)有3个子系统:类加载器子系统、执行引擎子系统、垃圾收集子系统。 类加载器就是JVM的一个子系统,类加载器用于加载已存在的class文件到内存中,以供JVM后续运行时使用。 自JDK1.2以来,Java一直保持着三层类加载器、双亲委派的类加载架构(当然JVM支持自定义
阅读全文
摘要:对 于cpu来说,直接访问内存是比较耗时的,为了提高访问性能,现代计算机在cpu模块都加上了缓存(一般有3级缓存),cpu访问缓存的速度比直接访问内存的速度提高了很多。cpu在计算时会先从缓存中查找数据,如果在缓存中没有找到(缓存未命中),则从内存中查找并加载到缓存中,然后再把数据从缓存加载到寄存器
阅读全文