Java之父在Oracle收购Sun后加入谷歌

谷歌聘请了Java的创始人詹姆斯·高斯林(James Gosling),他在被甲骨文收购后离开了Sun Microsystems。

戈斯林(Gosling)写道,他周一将在Google“开始工作”,但他表示不清楚将以何种身份加入谷歌。

戈斯林在博客中写道:“我不知道我会做什么。”

Gosling是Sun Microsystems的副总裁兼研究员,在那里他创建了Java编程语言的原始设计并实现了其原始的编译器和虚拟机。 这项工作使高斯林被誉为Java之父。

业界的目光都集中在高斯林身上,他在2010年4月离开了甲骨文公司的职位。高斯林是在甲骨文以74亿美元收购Sun之后离职的。在他离开甲骨文的时候,高斯林在一篇博客中暗示,甲骨文的工作环境和他在Sun的经历有很大的不同。

戈斯林当时写道:“就我所说的准确和诚实而言,弊大于利。”

高斯林加入谷歌的同时,Oracle和谷歌也卷入了一场有争议的Java专利诉讼。同年8月,甲骨文起诉谷歌,称谷歌的Android移动操作系统侵犯了Java的专利和版权。谷歌在一份法庭文件中否认了甲骨文的指控,并试图宣布这些专利无效。在诉讼中,甲骨文称Java是“甲骨文从Sun收购的最重要的技术之一”,并指出Java已经吸引了650多万开发人员。

高斯林指出,他有很多机会,但谷歌“看起来是一个有很大魅力的公司。”

在高斯林之前,在甲骨文(Oracle)收购Sun之后,其他一些知名的前Sun员工也被谷歌收购。去年,谷歌邀请了前Sun高管、XML共同创始人蒂姆·布雷(Tim Bray)作为Android的倡导者。在甲骨文收购Sun之后,布雷也离开了Sun。

0

dalvik和Jvm的区别

一、Dalvik简述

在Android的体系框架中有一部分叫做Android Runtime,即Android运行时环境,Android Runtime环境包括了两个部分,第一部门是Android的核心类库,第二部分是Dalvik虚拟机。

Dalvik虚拟机对内存具有高效的使用,以及在低速CPU上运行具有高性能。依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例, 其代码在虚拟机的解释下得以执行。Dalvik虚拟机并不是按照Java虚拟机的规范来实现的,两者并不兼容。

二、Dalvik和Jvm区别

Dalvik虚拟机运行的专有的文件格式Dex(Dalvik Executable)文件。Android应用虽然也是使用Java语言进行编程,但是在编译成class文件后,还会通过一个工具(dx)将应用所有的 class文件转换成一个Dex文件,而后Dalvik虚拟机会从其中读取指令和数据。Dalvik虚拟机运行的是其专有的文件格式Dex,Dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。所有的Android应用的线程都对应一个Linux线程,虚拟机因此可以更多的依赖操作系统的线程调度和管理机制。

Java虚拟机运行java字节码。在Java SE程序中的Java类会被编译成一个或者多个字节码文件(.class)然后打包到jar文件,而后Java虚拟机会从相应的class文件和jar文件中获取相应的字节码

1.架构设计

Dalvik基于寄存器。寄存器是在cpu上的一块存储空间,cpu如果直接从寄存器上读取数据的话就会快很多。
JVM基于栈。所以每次访问数据cpu都要到内存中取到数据。

2.运行效率

Dalvik是基于寄存器效率高于基于栈的JVM。

3.编写语言

Dalvik是由C或C++编写,JVM是由C++或java编写。

4.运行环境

Dalvik在有限的内存,允许同时运行多个Dalvik实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。
JVM在有限的内存只能运行一个JVM实例,JVM因平台的不一样进程也不一样。

5.运行格式

Jvm一般是.class。jvm是把.java文本编译成.class字节码文件,在执行java程序的时候,类加载器把需要的类全部加载到内存当中去。
Dalvik是.dex 把.java文件编译成.class文件,又把.class文件转换成.dex文件,dalvik来执行.dex文件。

6.函数加载

Dalvik是Dexfile加载class类文件,JVM和KVM是ClassLoader。

7.版权归属

Dalvik归属google。
Jvm归属甲骨文。

0