JVM系列(二)-- Java内存管理

运行时数据区域

tmAiTO.md.png

程序计数器

程序计数器就是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器,和计组中学到的大致一样。

阅读全文

JVM系列(一)-- Java类的加载机制

类的加载定义

类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。

image

类的最终加载产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并向Java程序提供访问接口。

与C语言的类比:C语言 --> 二进制文件 --> 计算机硬件;Java --> 字节码文件 --> JVM

**注意事项:**类加载器并不需要等到某个类被“首次主动使用”时再加载,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,但是如果这个类在加载中遇到错误,只有在主动使用此类时才会报错(LinkageError)。

阅读全文

汇编语言学习总结

CALL和RET指令

ret和retf

ret 指令用栈中的数据,修改IP的内容,从而实现近转移;
retf 指令用栈中的数据,修改CS和IP的内容,从而实现远转移。

ret 指令相当于

pop IP

retf 指令相当于

pop IP
pop CS

阅读全文

Github入门教学

GitHub入门教学(Git,界面介绍,搜索)

前提:Git使用

GitHub是基于Git开发得到,学习Git是了解GitHub的前提,在这里我推荐一个特别喜欢的学习教程。

廖雪峰Git教学

简单示例

1
2
3
4
5
6
7
8
9
10
mkdir learngit #创建一个空白目录
cd learngit

git init #把这个目录变成Git可以管理的仓库

git add readme.txt #把文件添加到仓库

git commit -m "wrote a readme file" #把文件提交给仓库

git push -u origin master #把本地仓库中的所有内容上传到远程库

t8gefS.png

阅读全文