首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
ffffkkk
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
60
文章 60
沸点 0
赞
60
返回
|
搜索文章
最新
热门
Javaweb项目打包路径
1. 绝对路径/相对路径 相对路径:相对路径就是相对于当前文件的路径。网页中一般表示路径使用这个方法 ./:代表目前所在的目录(可以省略)。 ../:代表上一层目录。 以/开头:代表根目录。 2. classpath与classpath* classpath:只会到你的clas…
JVM扩展-类文件结构
常量池主要存储了字面量以及符号引用,其中字面量主要包括字符串,final常量的值或者某个属性的初始值等,而符号引用主要存储类和接口的全限定名称,字段的名称以及描述符,方法的名称以及描述符。 在常量池中每一个常量都是个常量表。 在JDK1.7之前共有11中不同结构的常量表,在JD…
JVM 8-方法区
方法区(Method Area)与 Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息(包括类的名称、方法信息、字段信息)、常量、静态变量、即时编译器编译后的代码(比如spring 使用IOC或者AOP创建bean时,或者使用cglib,反射的形式动态…
JVM 7-对象存活与引用
1. 引用计数法 给对象添加一个引用计数器,每次引用这个对象时计数器加一,引用失效时减一,计数器等于0时就是不会再次使用的。 不过这个方法有一种情况就是出现对象的循环引用时GC没法回收。 2. 可达性分析法 这是一种类似于二叉树的实现,将一系列的GC ROOTS作为起始的存活对…
JVM 6-对象的创建、布局、访问定位
1. 类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 2. 分配内存 在类加载检查通过后,接下来虚拟机将为新生对象分配…
JVM 5-堆和垃圾回收算法
1. 堆 对于大多数应用来说,Java 堆(Java Heap)是 Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。 堆是垃圾收集器管理的主要区域…
JVM 4-本地方法栈
0. 前置知识 native关键字修饰的方法即为JNI(Java Native Interface),类似接口方法。 不同在于 虽然JNI也看不到实现体,但实际上是由jvm在加载时调用底层实现的,JNI的实现体不是由java代码写的,而可能由别的语言(如:C/C++)实现,JN…
JVM 3-方法调用
方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法)。 这部分方法,在程序真正运行之前就有一个可确定的调用版本,并且这个方法的调用版本在运行期是不可改变的(“编译期可知,运行期不可变”)。所有使用解析调用; 虚方法:被invokevirtual调用的所有方法(除了…
JVM 2-虚拟机栈
与程序计数器一样,Java 虚拟机栈(Java Virtual Machine Stacks)也是线程私有的,它的生命周期与线程相同(线程结束,栈回收,不存在垃圾回收问题)。 虚拟机栈描述的是 Java 方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(Stack Fr…
JVM 1-程序计数器
程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。 …
下一页
个人成就
文章被点赞
2
文章被阅读
5,690
掘力值
210
关注了
3
关注者
0
收藏集
24
关注标签
1
加入于
2020-05-28