笔者语:
在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()函数,但是不接受任何参数,也不能有返回值。