对于下载跟阅读的建议
对于下载和阅读的建议
我开发这个Java虚拟机,是用来学习的。我在开发过程中自己学习,也提供给凡感兴趣的朋友学习和参考。目前这个虚拟机的实现还是很初级的。我甚至有意不做优化,或者在很少的地方优化,又或者,随着一个又一个版本慢慢地去优化,目的是让初学者能看到这个过程是怎样演进的。毕竟对初学者来说,去理解含在虚拟机中的概念和思想是首要的。经常我在某个地方“卡壳”了,就想:这个问题别人是怎样解决的?为了解一个细节,我不得不花费许多时间去阅读别人的源代码。经过相当努力之后,有时幸运地你找到了答案或者线索;但更多时候你没有找到答案,或者沿着线索寻找的过程中,最终不得不放弃,因为代价大大了。所以我渴望“直接明了”。我写这个虚拟机实现,希望它是容易阅读的,既经过一定的设计(在开发的过程中会改进设计),又保持简单性。倘若我要使用一些技巧,就通常在代码中利用注释给出说明。同样,实现中的一些要点概念或思路,我也在注释中给出说明。我希望别人拿到我的代码,如果他带着问题,不用费太大代价,就能够找到合适的地方。或者我的代码中没有他要的东西,但他能比较快地确定。我真希望这个虚拟机的设计和代码是清晰明了的,方便阅读或者调试。
对于下载和阅读源代码的朋友,我还是提醒一下,毕竟阅读别人的代码是要花费时间和精力的。首先这个虚拟机是写给初学者的,所以若找高性能的、功能完全的虚拟机,这个实现肯定不是你想要的。其次这个实现是用C++写的,因为面向对象方法比较好表达概念。所以阅读代码需要有C++基础。这个实现中,我尽量不用高级的C++语言技巧。比如尽量少用C/C++宏。
我开发这个Java虚拟机,是用来学习的。我在开发过程中自己学习,也提供给凡感兴趣的朋友学习和参考。目前这个虚拟机的实现还是很初级的。我甚至有意不做优化,或者在很少的地方优化,又或者,随着一个又一个版本慢慢地去优化,目的是让初学者能看到这个过程是怎样演进的。毕竟对初学者来说,去理解含在虚拟机中的概念和思想是首要的。经常我在某个地方“卡壳”了,就想:这个问题别人是怎样解决的?为了解一个细节,我不得不花费许多时间去阅读别人的源代码。经过相当努力之后,有时幸运地你找到了答案或者线索;但更多时候你没有找到答案,或者沿着线索寻找的过程中,最终不得不放弃,因为代价大大了。所以我渴望“直接明了”。我写这个虚拟机实现,希望它是容易阅读的,既经过一定的设计(在开发的过程中会改进设计),又保持简单性。倘若我要使用一些技巧,就通常在代码中利用注释给出说明。同样,实现中的一些要点概念或思路,我也在注释中给出说明。我希望别人拿到我的代码,如果他带着问题,不用费太大代价,就能够找到合适的地方。或者我的代码中没有他要的东西,但他能比较快地确定。我真希望这个虚拟机的设计和代码是清晰明了的,方便阅读或者调试。
对于下载和阅读源代码的朋友,我还是提醒一下,毕竟阅读别人的代码是要花费时间和精力的。首先这个虚拟机是写给初学者的,所以若找高性能的、功能完全的虚拟机,这个实现肯定不是你想要的。其次这个实现是用C++写的,因为面向对象方法比较好表达概念。所以阅读代码需要有C++基础。这个实现中,我尽量不用高级的C++语言技巧。比如尽量少用C/C++宏。