符号引用,动态链接,静态链接,直接引用的区别
在类加载的时候会有5部分:加载,验证,准备,解析,初始化
静态链接
在解析的时候将符号引用变为直接引用,该阶段会把一些静态方法比如mian方法 替换为指向数据所存内存的指针或者句柄等(直接引用)
动态链接
在程序运行期间完成的将符号引用替换成直接引用, 比如静态方法里面有个方法 ,在运行的时候,方法是存放在常量池中符号,运行到这个符号就就是找这个符号对应的方法区,因为代码的指令是加载到方法区里面去的,最后把方法对应代码的地址放到栈帧中的动态链接里
符号引用
符号引用以一组符号来描述所引用的目标,在编译的时候一个每个java类都会被编译成一个class文件,但在编译的时候虚拟机并不知道所引用类的地址,多以就用符号引用来代替,而在这个解析阶段就是为了把这个符号引用转化成为真正的地址的阶段。
直接引用
有具体引用地址的指针,被引用的类、方法或者变量已经被加载到内存中。以变量举个例子:
符号引用,动态链接,静态链接,直接引用的区别相关推荐
- 链接 动态链接 静态链接
要想了解底层,链接是一个不得不过的一关,我总结了下学习的心得,首先要了解链接器到底是如何工作的,链接器分为两类,一个是静态链接,一个是动态链接,先来讲解静态链接,静态链接要干两件事: 符号解析 目标文 ...
- 如何制作及链接静态链接库。
1.静态链接库的生成 在VC++6.0中新建项目的Project选项卡中选择Win32 Static Library,将原文件及头文件添加到相应的文件夹中,编译链接一下,如果没有错误就会自动生成.li ...
- c语言动态与静态分配内存空间的区别
所谓动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法.动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程 ...
- c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解
静态链接与动态链接的宏观概述及微观详解 第一部分 宏观概述 1. 静态链接 静态链接就是在程序运行前,链接器通过对象文件中包含的重定位表,完成所有重定位操作,并最终形成一个在运行时不需要再次进行依赖库 ...
- 动态连接库和静态链接库
文章出处:http://www.cnblogs.com/gaoyihan/p/4723332.html 本文参考了以下博客: 1. http://blog.csdn.net/gamecrea ...
- 静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件。
静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件. 一. 静态链接库(LIB,也简称"静态库")与动态链接库(DLL,也简称"动态库 ...
- 【计算机基础】静态链接与动态链接
文章目录 一.前言 二.编译 三.链接 1. 静态链接 2. 动态链接 3. 总结 四.库 参考链接 一.前言 一段代码从文本编辑器上产生到最终能够在机器上运行,经历了非常多的阶段,概括而言,至少包含 ...
- 深入浅出静态链接和动态链接
作为一名C/C++程序员,对于编译链接的过程要了然于胸.首先大概介绍一下,编译分为3步,首先对源文件进行预处理,这个过程主要是处理一些#号定义的命令或语句(如宏.#include.预编译指令#ifde ...
- 嵌入式学习笔记之二(静态链接与动态链接)
要了解静态链接与动态链接,首先要了解什么是静态链接和动态链接,这一部分这里不做讲解,可以去度娘查找. 1.静态链接 静态链接通过静态库进行链接,生成的目标程序中包含运行需要的所有库,可以直接运行,不过 ...
- 静态链接库、动态链接库和动态加载库
前言 静态库是obj文件的一个集合(目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来,将没有解析的函数和变量进行解析,通常引用的目标 ...
最新文章
- extjs中文字体在firefox和Adobe Air里显示偏小的问题
- 计算节点宕机了怎么办?- 每天5分钟玩转 OpenStack(43)
- java collections 用法_Java Collections unmodifiableCollection()用法及代码示例
- Euler:欧拉函数&素数筛
- centos 6.9 NTP基准时间服务器配置
- Lecture 19 Shortest Paths III
- C#通用类库--短信猫操作类1(原始AT命令)
- 转: React系统的入门系统
- (转)Android Studio Error:Failed to resolve: com.android.support:appcompat-v7:25.1.0解决方案
- python 序列列表区别_Python6序列和列表
- 小蚂蚁学习数据结构(16)——串的堆分配储存代码演示
- Android自定义printf/printk/ALOGE函数LOG_TAG
- 视频教程-汇编语言程序设计IV-其他
- pcb怎么画边框_PCB设计--PCB画图技巧
- 51nod 1299 监狱逃离
- 概率论与数理统计(5):大数定律与中心极限定律
- IDEAR 自动生成serialVersionUID
- SAS2x28扩展卡
- 递归查询数据库中树状数据
- R包中文文本挖掘chinese.misc的中文说明