- 博客(6)
- 收藏
- 关注
原创 JVM虚拟机-类加载子系统
Class文件类加载子系统运行时数据区:方法区,堆,程序计数器,虚拟机栈,本地方法栈执行引擎本地方法接口本地方法库如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。为什么要自定义类加载器?隔离加载类修改类加载的方式扩展加载源防止源码泄漏。
2024-05-10 11:23:58
758
1
原创 JVM虚拟机-堆(Heap)
堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。堆内存的大小是可以调节的。《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区。
2024-03-28 21:03:17
1226
原创 2024年K8S管理员认证(CKA)考题
限于 namespace app-team1 中,将新的 ClusterRole deployment-clusterrole 绑定到新的 ServiceAccount cicd-token。确保新的 NetworkPolicy 允许 namespace echo 中的 Pods 连接到 namespace my-app 中的 Pods 的 9000 端口。在现有的 namespace my-app 中创建一个名为 allow-port-from-namespace 的新 NetworkPolicy。
2024-03-26 11:25:49
1492
原创 helm模板入门编写指南
Helm 包含了很多可以在模板中利用的模板函数,详情:https://helm.sh/zh/docs/chart_template_guide/function_list/在实际的chart中,所有的静态默认值应该设置在 values.yaml 文件中,且不应该重复使用 default 命令 (否则会出现冗余)。在Helm的模板语言中,在一个集合中迭代的方式是使用range操作符。但是如果通过模板引擎运行时,我们将得到一个不幸的结果:空格导致生成了错误的YAML,mug的缩进是不对的。
2024-03-22 08:48:45
1133
1
原创 JVM虚拟机-本地方法接口和本地方法栈
简单地讲,一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C中,你可以用extern "c" 告知c编译器去调用一个c的函数。在定义一个native method时,并不提供实现体(有些像定义一个Java interface),因为其实现体是由非java语言在外面实现的。
2024-03-21 23:52:56
595
原创 JVM虚拟机-虚方法和非虚方法
如果方法在编译期就确定了具体的调用版本,这个版本在运行时是不可变的。这样的方法称为非虚方法。静态方法、私有方法、final方法、实例构造器、父类方法都是非虚方法。其他方法称为虚方法。
2024-03-20 16:02:13
454
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人