- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 Java finalize函数与软引用、弱引用、虚引用
一、finalize函数的作用 它不是C/C++中的析构函数,而是Java刚诞生时为了使C/C++程序员更容易接受它所做出的一个妥协”。也就是说,finalize函数最初被设计的用途是类似于C/C++的析构函数,用于在对象被销毁前最后的内存回收。Java与C/C++的相似性和不同之处在于:在C++中,对象的内存在哪个时刻被回收,是可以明确确定的(假设程序没有缺陷),一旦C++的对象...
2019-06-29 16:05:33 924
原创 Java volatile修饰符的用法及作用详解版
要深刻理解volatile这个关键字的用法及作用,需要补充以下知识:1、 内存访问操作/指令执行操作的乱序:假设每个CPU都分别运行着一个会触发内存访问操作的程序。那么对于这样一个CPU,其内存访问顺序是非常松散的,在保证程序上下文逻辑关系的前提下,CPU可以按它所喜欢的顺序来执行内存操作。类似地,编译器也可以将它输出的指令安排成任何它喜欢的顺序,只要保证不影响程序...
2019-06-29 08:30:21 2406
原创 MySQL中InnoDB引擎的辅助索引扩展
不少的书或博客,在介绍InnoDB引擎索引原理的时候,都会给出如下类似的两幅图(比如参考博客2和3):由图可知,主键索引和辅助索引(二级索引)分别是一棵B-树和B+树。其中主键索引的非叶子节点只存储主键信息,只有叶子节点会存储完整的数据行记录。整个数据表就是按照主键索引的大小顺序存储的,因而主键索引又叫聚簇索引。而对于辅助索引,非叶子节点只存储辅助索引对应的索引字段,而叶子节点的data字...
2019-06-08 16:44:42 2628 2
原创 MySQL常见的七种锁详细介绍
一、死锁示例考虑下面一个MySQL死锁的示例:有如下一张表:CREATE TABLE `test` ( `id` int(20) NOT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8表中有如下数据:mysql> ...
2019-06-08 07:11:04 62248 34
转载 JDK8 Metaspace元数据区介绍
Java 启动参数分为三类:1. 标准选项:这类选项的功能是很稳定的,在后续版本中也不太会发生变化,即使有变化也必须保证向后兼容。运行java或java -help可以看到所有的标准选项。所有的标准选项都是以“-”开头,比如-version,-server等。2. X选项:比如-Xms。这类选项以“-X”开头,它们也被称为X选项。运行java -X命令可以看到所有的X选项。这类选项的功能还...
2019-06-07 14:18:52 5857
原创 Object类中的registerNatives方法的作用深入介绍
一直以来,对Object类中的registerNatives()方法感到十分好奇,想知道它的作用到底是什么。但查阅了不少博客,目前还没找到全面彻底且浅显易懂地介绍该方法作用的博客。于是就有了写本文的想法。本文不会直接给出结论,而是按照探索的过程为线索,娓娓道来。 其实,细心的你可能会发现,不光是Object类,甚至System类、Class类、ClassLoade...
2019-06-06 19:03:18 14770 21
原创 Hotspot JVM常用选项
一、选项的分类Hotspot JVM提供以下三大类选项:1. 标准选项:这类选项的功能是很稳定的,在后续版本中也不太会发生变化,即使有变化也必须保证向后兼容。运行java或java -help可以看到所有的标准选项。所有的标准选项都是以“-”开头,比如-version,-server等。2. X选项:比如-Xms。这类选项以“-X”开头,它们也被称为X选项。运行java -X命令可以看...
2019-06-03 23:02:06 525
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人