Java的动态绑定和静态绑定

引言在Java方法调用的过程中,JVM是如何知道调用的是哪个类的方法源代码呢?这就涉及到程序绑定这个概念。程序绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对Java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定。静态绑定在程...

阅读全文



JVM知识点汇总

JVMClass文件结构魔数:唯一作用是用于确定这个文件是否为一个能被虚拟机接受的Class文件。版本号:确定Class文件编译器版本,低版本的虚拟机不能运行高版本编译器编译的Class文件。常量池:字面量符号引用访问标志:用于识别一些类或接口层次的访问...

阅读全文



Java Object.hashCode()返回的是对象内存地址?

基于OpenJDK 8一直以为Java Object.hashCode()的结果就是通过对象的内存地址做相关运算得到的,但是无意在网上看到有相应的意见争论,故抽时间从源码层面验证了剖析了hashCode的默认计算方法。先说结论:OpenJDK8 默认ha...

阅读全文



ThreadLocal的内存泄露?什么原因?如何避免?

前言在分析ThreadLocal导致的内存泄露前,需要普及了解一下内存泄露、强引用与弱引用以及GC回收机制,这样才能更好的分析为什么ThreadLocal会导致内存泄露呢?更重要的是知道该如何避免这样情况发生,增强系统的健壮性。内存泄露内存泄露为程序在申...

阅读全文



关于高并发,我想告诉你这些!

高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。在过往的面试中,如果候选人做过高并发的项目,我通...

阅读全文