android视频教程

android视频教程

5 (13人评价)
  • 课时:(26)

  • 学员:(409)

  • 浏览:(15203)

  • 加入课程

android视频教程15的笔记

相关课时: 笔记详情:

另外的老师讲解。

虚拟机概念,JVM,JIT

虚拟机带来的好处

C++和Java编译上的区别

应用层代码不修改,为何有时候可以编译过,有时候编译不过?

 

什么是虚拟机

虚拟机分两种:

1 System virtual machine:一个系统的仿真和抽象,可供一个或多个操作系统在上面运行。eg,VM Ware,OEMU,KVM

虚拟机指令集可与硬件cpu指令不同

提供隔离isolation

2 Process virtual machine:只供一个进程的仿真执行。eg,JVM,Microsoft.NET,Android的Dalvik

 

什么是JVM

java code (.java)

JAVAC compiler

byte code (.class 类汇编语言,和硬件无关,和os无关)

不同系统的JVM 

Windows,Linux,Mac

 

WORA:Write Once,Compile once,run anywhere

应用程序和bytecode编译器独立于硬件(machine-independent)

虚拟机软件仿真要实现指令集转换,虚拟地址物理地址的转换,代价:慢!Java刚问世时比C/C++慢20*+

 

什么是JTI

改进(慢):实时编译JIT(Just in Time) compiler

只有新的bytecode指令需要编译

10*faster using JIT

需要存储空间,占内存(memory footprint)

啥叫实时?编译什么?

 

汇编器,链接器,加载器

汇编器Assembler,转换标签(Tag)为偏移量(offset),汇编语言的IDE

链接器Linker,多个目标文件和库变为一个可执行文件或者新的库

lib obj

《linker》

lib dll exe

动态链接vs静态链接

动态,编译过的常用库二进制码只存一处,更新方便,but...Dll Hell-如缺少函数,函数名变了。

加载器loader,加载到内存,execve()

 

 

0 0

你感兴趣的课程

8万+浏览/ 916学员/ 4.5评分
免费
6万+浏览/ 177学员/ 5评分
免费
6万+浏览/ 973学员/ 4.8评分
免费