JVM

JVM

阿里Arthas的使用

Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?

2020-07-27
253 0

JVM垃圾收集机制

1.为什么需要了解GC跟内存分配机制当需要排查各种内存溢出,内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。2.垃圾收集的区域垃圾收集主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命

2020-04-14
113 0

i == i + 1 什么时候返回true?

i==i+1;这个一般来说是返回false吧,一个数字永远不会等于它自己加1,这是正常的思维,但是我们知道无穷大加一还是无穷大。这也验证了上述的小总结。事实上,你不必将i初始化为无穷大以确保返回true。任何足够大的浮点数都可以实现这一目的,代码实验:doublei=1.0e40;System.ou

2020-03-04
161 0

表达式1.0 / 0.0将返回什么?它会抛出异常吗?任何编译时错误?

这个问题,我还之前没想过,刚才实验了下...我们来分析下:我们知道,在整型运算中,除数是不能为0的,否则直接运行异常。但是在浮点数运算中,引入了无限这个概念,我们来看一下Double和Float中的定义。Double:publicstaticfinaldoublePOSITIVE_INFINITY=

2020-03-04
153 0

Java 四种线程池的用法分析

1、newThread的弊端执行一个异步任务你还只是如下newThread吗?newThread(newRunnable(){@Overridepublicvoidrun(){//TODOAuto-generatedmethodstub}}).start();那你就out太多了,newThread的

2020-03-03
162 0

ThreadLocal(二)-内存泄漏问题

一、原因实际上ThreadLocalMap中使用的key为ThreadLocal的弱引用,弱引用的特点是,如果这个对象只存在弱引用,那么在下一次垃圾回收的时候必然会被清理掉。所以如果ThreadLocal没有被外部强引用的情况下,在垃圾回收的时候会被清理掉的,这样一来ThreadLocalMap中使

2020-03-02
137 0

JVM 常见十大配置参数

1.-Xms:初始堆大小。只要启动,就占用的堆大小。2.-Xmx:最大堆大小。java.lang.OutOfMemoryError:Javaheap这个错误可以通过配置-Xms和-Xmx参数来设置。3.-Xss:栈大小分配。栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量

2020-02-17
92 0