摘要:
最详细HashMap源码剖析(基于JDK1.8分析),逐行分析HashMap源码 阅读全文
摘要:
String的创建分析,及String类型的比较,值传递 阅读全文
摘要:
mybatis的逆向工程生成 一、引入jar包 MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。 这减少 阅读全文
摘要:
HotSpot是基于c++实现,而c++是一门面向对象的语言,本身是具备面向对象基本特征的,所以Java中的对象表示,最简单的做法是为每个Java类生成一个c++类与之对应。但HotSpot JVM并没有这么做,而是设计了一个OOP-Klass模型,OOP(Ordinary Object Pointer)指的是普通对象指针,而Klass用来描述对象实例的具体类型。OPP就不在这里描述了,介绍一下位于方法区的Klass模型,加载到方法区的每个类都有一个与之对应的Klass类实例,这里的Klass类并不是Java语言层面的类,而是C++层面。 阅读全文
摘要:
常量池是字节码文件的一部分,主要存储了编译期间的各种字面量和符号引用(如下代码),这部分内容在类加载后会存放到运行时常量池中,常量池和运行时常量池一一对应。 阅读全文
摘要:
JVM虚拟机规范中虽然在逻辑上将方法区描述为堆区的一部分,但对于HotSpot虚拟机而言,还有一个别名Non-Heap(非堆),目的是与堆区分开。方法也是线程共享的区域,在JVM启动的时候被创建,并且,和堆区一样可以是逻辑上连续,物理上不连续的区域。 阅读全文
摘要:
逃逸分析是目前JVM前沿的优化分析技术,基本原理是分析对象的动态作用域,如果对象只能在方法内部被访问到,说明对象没有发生逃逸,反之,说明对象发生逃逸。 阅读全文
摘要:
堆中存对象,栈上存引用,JVM中有两种对象访问定位方式: 阅读全文
摘要:
JVM的垃圾收集并非同时对堆中三个区域(伊甸区、幸存区、老年代)进行收集,大部分时候都是回收年轻代,HotSpot虚拟机将垃圾收集分为部分收集(Partial GC)和整堆收集(Full GC)。 阅读全文
摘要:
堆区(Heap区)是JVM运行时数据区占用内存最大的一块区域,每一个JVM进程只存在一个堆区,它在JVM启动时被创建,JVM规范中规定堆区可以是物理上不连续的内存,但必须是逻辑上连续的内存。 阅读全文
摘要:
在JDK自带的方法库中常常看到被native修饰的方法,这些方法没有方法体实现,它们方法体通常是由C/C++语言实现,这种方法称为本地方法。 阅读全文
摘要:
Java项目中加载properties文件的方式 阅读全文
摘要:
基于zxing工具生成二维码 阅读全文