- 博客(25)
- 资源 (27)
- 收藏
- 关注
原创 小师妹学JVM之:JIT中的PrintAssembly
想不想了解JVM最最底层的运行机制?想不想从本质上理解java代码的执行过程?想不想对你的代码进行进一步的优化和性能提升?如果你的回答是yes。那么这篇文章非常适合你,因为本文将会站在离机器码最近的地方来观看JVM的运行原理:Assembly。
2020-06-29 07:27:38 7094 2
原创 揭秘!中国人一定要知道的北斗卫星系统
北斗系统到底是什么?北斗一号,二号三号有什么区别?它的主要作用和它是怎么工作的呢?是时候了解中国自己的高科技了!
2020-06-28 06:45:10 11229 4
原创 小师妹学JVM之:java的字节码byte code简介
Byte Code也叫做字节码,是连接java源代码和JVM的桥梁,源代码编译成为字节码,而字节码又被加载进JVM中运行。字节码怎么生成,怎么查看字节码,隐藏在Byte Code背后的秘密是什么呢?快跟小师妹一起来看看吧。
2020-06-25 10:10:08 7817 2
原创 小师妹学JVM之:JIT中的PrintCompilation
上篇文章我们讲到了JIT中的LogCompilation,将编译的日志都收集起来,存到日志文件里面,并且详细的解释了LogCompilation日志文件中的内容定义。今天我们再和小师妹一起学习LogCompilation的姊妹篇PrintCompilation,看看都有什么妙用吧。
2020-06-24 08:58:07 10559 2
原创 八张图彻底了解JDK8 GC调优秘籍-附PDF下载
你和GC调试专家之间就差一张PDF! 为了更好的让大家理解JDK8中 GC的调优的秘籍,这里特意准备了八张图。在本文的最后,还附带了一个总结的PDF all in one文档,大家把PDF下载回去,遇到问题就看两眼,不美吗?
2020-06-23 07:14:22 7600 3
原创 从印度兵力分布聊聊Mybatis中#和$的区别
文章目录简介举个例子查询举例#{id}的特点${id}的特点总结简介大家在使用Mybatis的过程中可能都会自己去写SQL语句,并且需要向SQL语句传入参数。但是在Mybatis中,传参的语法有两种,#{name} 和 ${name},两者有什么区别呢?一起来看看吧。举个例子最近印度比较嚣张,频繁挑起边境冲突,那么印度是不是这么有底气呢?我们看一下印度的兵力分布表:其实印度军队还是挺强大的,是南亚的顶级军事强国。他拥有世界第三规模的现役部队,并且其陆军规模是世界第二。印度是世界最大的武器进
2020-06-21 11:17:47 9792 4
原创 小师妹学JVM之:JIT中的LogCompilation
我们知道在JVM中为了加快编译速度,引入了JIT即时编译的功能。那么JIT什么时候开始编译的,又是怎么编译的,作为一个高傲的程序员,有没有办法去探究JIT编译的秘密呢?答案是有的,今天和小师妹一起带大家来看一看这个编译背后的秘密。
2020-06-19 07:04:05 5592 4
原创 小师妹学JVM之:JDK14中JVM的性能优化
上一篇文章我们讲到了JVM为了提升解释的性能,引入了JIT编译器,今天我们再来从整体的角度,带小师妹看看JDK14中的JVM有哪些优化的方面,并且能够从中间得到那些启发。
2020-06-18 06:51:14 6567 4
原创 小师妹学JVM之:深入理解JIT和编译优化-你看不懂系列
小师妹已经学完JVM的简单部分了,接下来要进入的是JVM中比较晦涩难懂的概念,这些概念是那么的枯燥乏味,甚至还有点惹人讨厌,但是要想深入理解JVM,这些概念是必须的,我将会尽量尝试用简单的例子来解释它们,但一定会有人看不懂,没关系,这个系列本不是给所有人看的。
2020-06-17 06:45:17 12620 6
原创 小师妹学JVM之:GC的垃圾回收算法
JVM的重要性不言而喻了,如果把java的应用程序比作一辆跑车,那么JVM就是这辆车的发动机,没有它,java程序就成了空中楼阁,无根浮萍。而在JVM中有一块内存区域叫做运行时数据区域,存储了运行时所需要的所有对象,而Heap Area则是其中最大的一块。内存毕竟不是无限的,所以就需要一种机制来将不再使用的对象进行回收,这种机制就是今天我们要讲的GC。
2020-06-16 07:10:36 14657 6
原创 小师妹学JVM之:JVM的架构和执行过程
JVM也叫Java Virtual Machine,它是java程序运行的基础,负责将java bytecode转换成为适合在各个不同操作系统中运行的机器代码并运行。今天我们和小师妹一起走进java的核心JVM,领略java在设计上的哲学。
2020-06-15 08:53:17 12335 12
原创 小师妹学JavaIO之:用Selector来发好人卡
文章目录简介Selector介绍创建Selector注册Selector到Channel中SelectionKeyselector 和 SelectionKey总的例子总结简介NIO有三宝:Buffer,Channel,Selector少不了。本文将会介绍NIO三件套中的最后一套Selector,并在理解Selector的基础上,协助小师妹发一张好人卡。我们开始吧。Selector介绍小师妹:F师兄,最近我的桃花有点旺,好几个师兄莫名其妙的跟我打招呼,可是我一心向着工作,不想谈论这些事情。毕竟先有
2020-06-14 08:52:00 12070 4
原创 小师妹学JavaIO之:MappedByteBuffer多大的文件我都装得下
文章目录简介虚拟地址空间详解MappedByteBufferMapModeMappedByteBuffer的最大值MappedByteBuffer的使用MappedByteBuffer要注意的事项总结简介大大大,我要大!小师妹要读取的文件越来越大,该怎么帮帮她,让程序在性能和速度上面得到平衡呢?快来跟F师兄一起看看吧。虚拟地址空间小师妹:F师兄,你有没有发现,最近硬盘的价格真的是好便宜好便宜,1T的硬盘大概要500块,平均1M五毛钱。现在下个电影都1G起步,这是不是意味着我们买入了大数据时代?没错
2020-06-12 09:04:00 13011 4
原创 小师妹学JavaIO之:NIO中Channel的妙用
小师妹,你还记得我们使用IO和NIO的初心吗?小师妹:F师兄,使用IO和NIO不就是为了让生活更美好,世界充满爱吗?让我等程序员可以优雅的将数据从一个地方搬运到另外一个地方。利其器,善其事,才有更多的时间去享受生活呀。善,如果将数据比做人,IO,NIO的目的就是把人运到美国。小师妹:F师兄,为什么要运到美国呀,美国现在新冠太严重了,还是待在中国吧。中国是世界上最安全的国家!
2020-06-11 06:23:25 7020 4
原创 小师妹学JavaIO之:Buffer和Buff
小师妹在学习NIO的路上越走越远,唯一能够帮到她的就是在她需要的时候给她以全力的支持。什么都不说了,今天介绍的是NIO的基础Buffer。老铁给我上个Buff。
2020-06-10 06:01:44 16247 3
原创 小师妹学JavaIO之:文件File和路径Path
文件和路径有什么关系?文件和路径又隐藏了什么秘密?在文件系统的管理下,创建路径的方式又有哪些?今天F师兄带小师妹再给大家来一场精彩的表演。
2020-06-09 06:34:09 12769 2
原创 小师妹学JavaIO之:文件系统和WatchService
小师妹这次遇到了监控文件变化的问题,F师兄给小师妹介绍了JDK7 nio中引入的WatchService,没想到又顺道普及了一下文件系统的概念,万万没想到。
2020-06-08 07:09:50 12718 3
原创 小师妹学JavaIO之:目录还是文件
目录和文件傻傻分不清楚,目录和文件的本质到底是什么?在java中怎么操纵目录,怎么遍历目录。本文F师兄会为大家一一讲述。
2020-06-07 07:34:16 13408 3
原创 终于我用JOL打破了你对java对象的所有想象
使用面向对象的编程语言的好处就是,虽然没有女朋友,但是仍然可以new对象出来。Java是面向对象的编程语言,我们天天都在使用java来new对象,但估计很少有人知道new出来的对象到底长的什么样子,是美是丑到底符不符合我们的要去?对于普通的java程序员来说,可能从来没有考虑过java中对象的问题,不懂这些也可以写好代码。但是对于一个有钻研精神的极客来说,肯定会想多一些,再多一些,java中的对象到底是什么样的。
2020-06-06 08:51:26 13414 9
原创 并发和Read-copy update(RCU)
在上一篇文章中的并发和ABA问题的介绍中,我们提到了要解决ABA中的memory reclamation问题,有一个办法就是使用RCU。今天本文将会深入的探讨一下RCU是什么,RCU和COW(Copy-On-Write)之间的关系。RCU(Read-copy update)是一种同步机制,并在2002年被加入了Linux内核中。它的优点就是可以在更新的过程中,运行多个reader进行读
2020-06-04 06:20:48 13463 7
原创 你不知道的java对象序列化的秘密
你知道序列化可以使用代理吗?你知道序列化的安全性吗?每个java程序员都听说过序列化,要存储对象需要序列化,要在网络上传输对象要序列化,看起来很简单的序列化其实里面还隐藏着很多小秘密,今天本文将会为大家一一揭秘。
2020-06-03 06:16:00 13932 6
原创 JDK14性能管理工具:jmap和jhat使用介绍
我们在写代码的过程中,经常会遇到内存泄露的问题,比如某个集合中的对象没有被回收,或者内存出现不明原因的增长。这些都是需要我们来定位的问题,我们可以使用jmap和jhat来对java程序中的内存对象进行分析。jmap(Java Memory Map)是JDK自带的工具,用来将某个java程序的内存中的信息打印或者输出到文件中,然后通过jhat(Java Heap Analysis Tool)工具对输出的文件进行分析,从而找到可能出现的问题。
2020-06-02 07:05:22 7815 7
原创 ABA问题的本质及其解决办法
CAS的全称是compare and swap,它是java同步类的基础,java.util.concurrent中的同步类基本上都是使用CAS来实现其原子性的。CAS的原理其实很简单,为了保证在多线程环境下我们的更新是符合预期的,或者说一个线程在更新某个对象的时候,没有其他的线程对该对象进行修改。在线程更新某个对象(或值)之前,先保存更新前的值,然后在实际更新的时候传入之前保存的值,进行比较,如果一致的话就进行更新,否则失败。
2020-06-01 07:00:17 8526 5
Stream和Lambda表达式最佳实践
2024-04-24
JAVA IO-NIO 详解
2024-04-24
JAVA高质量并发详解,多线程并发深入讲解
2024-04-24
java-collection-all-in-one.pdf
2020-10-26
JDK14GC-cheatsheet.pdf
2020-07-24
JDK13GC-cheatsheet.pdf
2020-07-24
JDK12GC-cheatsheet.pdf
2020-07-24
JDK11GC-cheatsheet.pdf
2020-07-22
JDK10GC-cheatsheet.pdf
2020-07-16
JDK9GC-cheatsheet.pdf
2020-06-26
JDK8GC-cheatsheet.pdf
2020-06-22
Spring5.1中文参考指南.pdf
2019-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人