Java JDK目录下的jmap和jhat工具的使用方式

2020-05-07
阅读 3 分钟
1.5k
Suppose you have a running Java process and you would like to inspect its running status, for example how many object instance are created or memory consumption status, you can use some standard tool provided by JDK.This blog is written based on JDK 1.8.The sample code I am using to simulate a en...

Java实现的有道云笔记图片批量下载工具

2018-12-13
阅读 2 分钟
1.4k
有朋友问我每天哪里找时间写这么多文章。 作为一个程序员,当然要善于利用各种工具提高自己做事情的效率了。如果没有现成的工具,就得自己造。 我写文章一般是在云笔记里编辑,完成之后直接复制粘贴到自媒体平台。我有一个需求,能够把云笔记里包含的所有图片批量下载到本地某个文件夹里,这样我就可以批量上传文件到自...

用代码判断当前系统是否支持某个版本的feature

2018-10-29
阅读 2 分钟
1.8k
JDK9已经出来有一段时间了,因此很多流行的Java应用纷纷增添了对JDK9乃至JDK10的支持,比如Tomcat。 我们通过这个链接下载最新的Tomcat源文件包,总共7MB: [链接] 解压之后,在文件夹apache-tomcat-9.0.10-srcjavaorgapachecatalinacore里找到文件JreMemoryLeakPreventionListener.java: 可以看到大量调用工具类JreCom...

自己开发的在线视频下载工具,基于Java多线程

2018-10-28
阅读 3 分钟
3.7k
比如这个在线视频: 我们可以正常播放,但是找不到下载按钮。 打开Chrome开发者工具,在Network标签页里能看到很多网络传输请求: 随便看一个请求的响应,发现类型为video,大小为500多k。因此,这个在线视频被拆分成了若干500多k的小片段,然后通过浏览器下载到本地进行播放。 这个片段的url: [链接]:event/18/36/06/3...

深入理解Java的整型类型:如何实现2+2=5?

2018-10-23
阅读 2 分钟
1.8k
先看下这段神奇的Java代码: {代码...} 执行结果:2 + 2 = 5 那么doSomethingMagic到底做了什么神奇的事情呢?先看代码: {代码...} 所以这个例子其实包含了Java中整型类型Integer的一个知识点。 可能有的朋友对于doSomethingMagic里面的代码有点摸不着头脑,让我们先查看上图第17行 2 + 2反编译出来的代码: 编辑器将2+...

使用JDK自带的工具jstack找出造成运行程序死锁的原因

2018-10-23
阅读 3 分钟
2.5k
Java多线程编程也是Java面试中经常考察的内容。刚接触Java多线程编程的朋友们,可能会不慎写出一些会导致死锁(deadlock)的应用出来。如何分析造成Java多线程的原因呢?很多时候我们在怀疑造成死锁的语句设置断点,单步调试,反而又不能重现了。这种现象很正常,因为咱们单步调试和直接运行程序,代码执行的时序是不同的...

Java代理设计模式(Proxy)的四种具体实现:静态代理和动态代理

2018-10-22
阅读 6 分钟
2k
面试问题:Java里的代理设计模式(Proxy Design Pattern)一共有几种实现方式?这个题目很像孔乙己问“茴香豆的茴字有哪几种写法?”

什么是Java Marker Interface(标记接口)

2018-10-22
阅读 3 分钟
2.8k
先看看什么是标记接口?标记接口有时也叫标签接口(Tag interface),即接口不包含任何方法。在Java里很容易找到标记接口的例子,比如JDK里的Serializable接口就是一个标记接口。

使用javap深入理解Java整型常量和整型变量的区别

2018-10-22
阅读 3 分钟
2.1k
我下图代码第五行和第九行分别定义了一个整型变量和一个整型常量: static final int number1 = 512; static int number3 = 545; Java程序员都知道两者的区别。 下面我们就用javap将.class文件反编译出来然后深入研究Java里整型变量和整型常量的区别。 使用命令行javap -c constant.ConstantFolding查看.class文件反编译...

使用JDK自带的jmap和jhat监控处于运行状态的Java进程

2018-10-22
阅读 3 分钟
3.8k
对于处于运行状态中的Java进程,JDK自带了很多工具,允许Java开发人员监控运行进程中的各种状态,比如该进程内部创建了多少个对象实例,消耗了多少内存,等等。

使用JDK自带的VisualVM进行Java程序的性能分析

2018-10-18
阅读 3 分钟
6.7k
VisualVM是JDK自带的一个用于Java程序性能分析的工具,JDK安装完毕后就有啦,在JDK安装目录的bin文件夹下能找到名称为jvisualvm.exe。