《自己动手写Java虚拟机》学习笔记(一)

作者代码github传送

笔者语:

在2017年11月份,有幸读到了张秀宏老师的《自己动手写Java虚拟机》。正巧看完了周志明老师的《深入理解java虚拟机》,所以决定自己动手实现一个。随着张老师的代码不断深入,自己写到第六章(类和对象)的时候卡住了(挂在了莫名奇妙的bug上)。这几天才腾出了时间,打算整理一下学习笔记。

全书一共十一章。分别为

第一章:命令行工具

第二章:搜索class文件

第三章:解析class文件

第四章:运行时数据池

第五章:指令集和解释器

第六章:类和对象

第七章:方法的调用和返回

第八章:数组和字符串

第九章:本地方法调用

第十章:异常处理

第十一章:结束

笔者打算每一篇博客对应其中一章。只探究jvm运行机制、go语言等笔者认为重要的东西。

 

第一章:命令行工具

1.1 准备工作

1.安装GoGo语言安装环境安装

2.项目的目录结构:

Go语言以包为单位住址源代码,包可以嵌套,形成层级关系。

1.2 java命令行

1.“java主类”

2.“java命令行”

java [-option] class [args]

java [-option] -jar jarfile [args]

javaw [-option] class [args]

javaw [-option] -jar jarfile [args]

3.java命令行选项

-Xms<size>    设置初始堆空间大小

-Xmx<size>    设置最大堆空间大小

-Xss<size>     设置线程栈空间大小

1.3 编写命令行工具

1.Go语言中,API以包的形式提供;也可以提供变量、常量、结构体、函数等

2.Go语言中,main.go包名应该为main。main是一个特殊的包,这个报所在的目录会被编译为可执行文件。Go程序的入口就是main()函数,但是不接受任何参数,也不能有返回值。

猜你喜欢

转载自blog.csdn.net/monkeydcoding/article/details/81288044