早在出生前,我就已经在很多家用电器上生活了,更准确地说,是我的前世Oak(橡木)。最早可以追溯到1990年代初,被一个叫做詹姆斯·高斯林的人在沙丘路旁的一间工作室里创造出来,门外就是一颗大橡树。
在我们程序的世界里,他就是上帝般的存在。
搭上互联网的快车
起初,人们并不知道将我用在哪里,据说我的前世在家用电器上的表现平平,不能给人们带来多少用处。因此,我也对未来非常迷茫。
我和外界的第一次交流是在一个叫做浏览器的应用上,人们让我和浏览器合作,用来提供交互性的动画。但一个来自Adobe公司的Flash小家伙居然表现得比我好,在浏览器上把我比了下去。果然有一个好爹很重要啊。
祸不单行,一家叫做微软的公司也反对我的存在,说将不在它们的浏览器和电脑里安装我。这让我有种被世界遗弃的感觉。
我的疯狂成长期
互联网让我开始被人们使用,但广泛的应用还多亏了我的一个特点:跨平台。
当我在微软的系统上驻足后,我已经能够同时存在于Linux和Windows上了。这个是我的设计者们乐意看到的,因为我的一个特点便是跨越平台。当时有一个特别流行的口号:Write Once, Run Everywhere!(一次编译,到处运行)。
我(Java)是跨平台的,位于系统层次的最顶端,通过虚拟机JVM与操作系统或者硬件(JNI)互动。
JDK不是跨平台的,Linux上的JVM和Windows上的JVM就完全不同。
通过依赖平台的JVM,我得以“一次编译,到处运行”,可以这么说,我站在了巨人的肩膀上。
我在服务器的本领越来越受欢迎,截至1998年2月,我的JDK1.1版本已经被下载超过两百万次。每一天都有新的设备会安装我,我已经开始“无处不在了”。
我是个工作狂
我能没日没夜地工作。
我喜欢喝咖啡,桌上经常放着一杯摩卡。每次有新程序来的时候,就到了我孜孜不倦的时候。
JVM的工作过程如下:
1)一份Java的源代码经过Linux或者Windows的编译器,会生成一个跨平台的字节码文件.class;
2)字节码文件会被类加载器加载到运行时数据区,包括堆、栈、本地方法栈、程序计数器和方法区;
3)运行时数据区的数据通过执行引擎调用执行,或直接调用JNI执行。
虽然说class文件是跨平台的,但它的来源不一定是Java文件哦!因为能使用Java虚拟机的编程语言,除了我之外,还有我的兄弟们:
颠沛流离的日子
三分天下
换金主
期间还发生了一件糟糕的事情。有个叫安卓的操作系统是基于我开发的,拥有我商标的O公司想从中捞一大笔钱,于是和G公司发起了官司。这场旷日持久的官司让我身心俱疲,很多曾经爱我的人都对我的未来充满了怀疑。
大家对我的批评
我的感情
我是1995年出生的,今年已经26岁了,可是还没有找到对象。有人跟我说,你new一个啊!对此我无话可说。
不过现在她也能以NodeJS的形式存在于服务器端,我们的共同点越来越多了。只是我不知道她对我的感觉如何,而我也不知道自己喜不喜欢她。
但有一个人是我一直心心念念的,就是Python小姐。我有点喜欢她,但是我们交集并不多。
还有温柔的C妹妹,小不点的Shell,高冷的C佳佳,不费脑子的PHP姑娘。天啊,怎么我都想要,却谁也得不到。想到这里,我默默留下了泪水。
内容来自公众号:小谢backup
全部评论
(4) 回帖