我的世界多了盒子?
对于这个问题,我必须要先讲一讲盒子是什么,以及其为什么存在。 所谓的盒子,指的就是一个运行了Java虚拟机、可以运行各种Java应用的软件包。而之所以需要这样的东西,是因为JAVA没有提供开发人员与用户之间的交互接口(就是那个Swing和AWT),所以如果直接让JVM去直接和用户进行数据交换是不合理的(毕竟你不可能在命令行输入你的姓名年龄和性别然后把结果输出到控制台),因此就诞生了个个盒子这种工具。
说白了,盒子就是个外壳,是个让JVM能够与外界交流的外壳,你可以把自己的思想通过它传递到JVM中,也可以把它当成是连接主程序与JVM的纽带。 那么现在回到正题,在我的世界中有了盒子究竟意味着什么?
首先,这意味着我的世界的代码不需要再像以前那样直接读写本地资源文件(比如读地图和数据),而是可以通过盒子来间接的读取这些数据。当然,这样做会带来一些性能的损失(每次都需要加载盒子本身所耗的资源),但是带来的好处是能使用不同来源的数据(不管是远程服务器还是本地硬盘)。
第二,这为我的世界增加了更多的可能性。比如,如果我创建了这样一个盒子:在里面运行一个游戏服务端,然后提供一个登录界面给玩家,这样我就能实现在线服务器的功能了。又比如,如果我创建这样一个盒子:里面是一个视频播放器,当我上传了一个视频后能自动放到盒子里并播放出来,这样我就能让我的世界具备视频播放的功能。更厉害的是,如果我创建了无数个大小不一的盒子,并且把它们都连接到一起,那我就相当于拥有了一台超级电脑!这样就可以实现类似VRML或者WebGL的东西!
第三,这会让我的世界更容易移植到别的平台上。因为只需要把盒子迁移过去就可以轻松完成大部分工作。甚至可以直接把盒子放到虚拟机上用模拟器来测试(比如QEMU),而不需要担心硬件平台的问题。