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