自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Java反射的底层原理,以及Java反射的性能分析及优化

java的反射技术,号称是编程界的九阳神功,也可以说是框架的灵魂。也正是这种反射机制使静态语言的java具备了动态语言的某些特质。就是有了反射,才让java动态,编程的时候更加灵活。补充:动态语言 和 静态语言(1)动态语言 动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要动态语言: Object-C.C#、JavaScript, PHP,Pyth...

2022-02-24 00:04:19 4913 2

原创 对象的分配过程以及创建过程,单例模式DCL就一定没有问题吗,如果发生指令重排了会导致什么问题?

上篇文章主要讲了对象的定位,以及jdk的优化技术逃逸分析和标量替换,这样的新技术出现,就导致java对象实例都分配在堆内存里面也变得不是那么的绝对了。对象的分配过程如下:方法里面开始new一个对象,即时编译器会对这个对象的动态作用域进行分析,如果满足逃逸分析和标量替换的条件,并启用了标量替换,那么就在当前栈帧里面去分配对象,等待方法执行完毕,随着方法的出栈,此对象也就消失了。如果不满足要求,那么会分配到堆内存里面,分配之前会判断,如果对象的大小太大了(jvm调优里面有个参数XX:PretenureS

2022-02-23 13:24:44 339 1

原创 Java对象的定位与分配,对象一定会创建在堆内存里面吗

首先讲下对象的定位。啥叫对象的定位呢?比如:T t = new T(); 定位的意思就是说如何通过引用变量t 去 找到T的实例。咋找呢?通俗点就是:t 的指针不就是指向T对象实例,cpu通过指针里面存放的地址,找到T对象实例的首地址,然后通过对象的大小在内存里面截取呗,比如对象大小是24个字节,那么就从首地址开始截取24个字节呗。没错,是这么干的。但是jvm的执行过程,其实是有两种方式的。先说结果,再说细节,最后分析比较。java对象的定位主要会分为两种方式:直接和间接。直接方式,也就是直接指针

2022-02-22 21:46:15 2771

原创 Java对象在jvm堆内存中的存储布局

这次说的是64bit的jvm,暂不谈32bit的jvm,两者的对象大小是不一样的。java对象的存储布局分为两种情况:普通对象 和 数据。先说普通对象吧:如下图那为啥对齐单元的大小是8个字节呢?因为是64bit位的jvm,8个字节刚好是64个比特位,这样读取的效率高。那这个东西我们在代码里面看得到吗? 可以看到的。我们在pom.xml里面引入依赖:<dependency> <groupId>org.openjdk.jol...

2022-02-20 18:26:21 1425

原创 打开jvm的黑盒子,梳理下jvm的垃圾回收以及选用对应的垃圾回收算法的原因

梳理下jvm的大体脉络,后续再更新

2022-02-12 23:48:35 585 1

原创 用大白话掰饬下https如何保证数据传输的安全性

关于https加密解密的一些分享,如有问题,欢迎业内大佬们批评指正

2022-02-11 20:44:51 1575 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除