**
今天的话题**
今天看到了一个话题非常的有意思 我决定分享出来仅供你们参考
java虚拟机:什么?你开玩笑吧?这位大婶,我可是java啊。只有我才能让程序运行起来。你只是产生文件而已。做个文件有什么了不起的,没有我,文件没用!!**
编译器:请你放尊重点不然我要叫了。**
java虚拟机:还有,你得理不饶人,每天老是警告人。小小一点语法错误也不放水…**
编译器:对不起,没有我你能运行什么?java会设计成这样也是有原因的。如果java只是个直译语言,要一边运行一遍解释纯文字的程序,我就不相信,你能够运行的多块!**
java虚拟机:抗议啦,我又没说你一点用处都没有。但是说真的,我根本搞不懂你在做什么。程序员可以直接编写二进制代码给我运行,那你就失业了,哇哈哈哈**
编译器:我实在懒得理你。没错,虽然说只要是合格的二进制代码就可以运行,不一定要编译器编译出来的,但实际上不会有人傻成这样的,让程序员直接写二进制代码就好像要组装计算机的人自己作的出cpu一样。**
java虚拟机:你还没回答我你到底有什么用?**
编译器:java是个强类型语言 这代表编译器不能容许变量保存类型的数据,这是很关键的类型安全性功能,编译器能让很大部分的错误在到虚拟机之前就被抓到。还有…
java虚拟机:又不是全部抓光光!我还是会因为遇到将错误的数据塞进数组中而不得不抛出异常,并且…**
编译器:没礼貌别打断我说话…,是有些数据类型的错误会在运行时发生,但这也是为了容许动态绑定这样的功能。java可以在执行期引用连程序员也没有预期会碰到的类型,所有我得留一些运用性。我得工作就是得确保铁定不能跑的东西不会过关。通常我会抓得到错误,列如文字字符串以某个数字这种问题就会被我发现。**
ava虚拟机:==OK,当然。但是存取权限的安全问题呢?还不是得靠我把关,而你只不过是作这些标点符号罢了。还真谢谢你把这些问题留给我呢。
编译器:对不起,大家都知道我才是安全第一线。我刚刚说的数据类型错误如果没有处理好可是一个漏洞呢,像是违反调用private方法的程序也是由我检查的。我能够防止人们动到不可以碰的程序代码与其他类的重要数据。如果要把我的功能说完可能要说到天亮。**
java虚拟机:随你这么说。我也做的相同的事情,确保不会有人在执行前修改而进行代码。**
编译器:是啦,如果没有我挡住上诉问题,你老早就挂掉了,没时间了下回再说吧。