Java是什么

计算机语言

在了解 Java 语言是什么的时候,我们可以先了解一下什么是计算机语言。计算机语言就是人与计算机通信的语言。它是由一些指令组成,这些指令包括数字、符号和语法等等,程序员可以通过这些指令来指挥计算机工作。计算机语言的种类非常多,总体的分为机器语言、汇编语言和高级语言三大类。

机器语言

它主要是由 0 和 1 组成的编码,它不便于记忆也不便于理解,所以在实际编程中很少有人直接使用机器语言。

汇编语言

汇编语言采用了英文缩写的标识符,容易识别和记忆,但是和人们平时的语言还是有差别的,有不同的地方。

高级语言

和人类的自然语言比较接近,它更符合人类的语言习惯,简化了程序的编写过程。它是目前绝大多数软件编程者选择的语言,而 Java 就属于高级语言。让人类和计算机更方便的进行交互。

Java诞生

1990 年末,Sun 公司成立了一个有 James Gosling 领导的 “Green计划”,准备为下一代智能家电编写一个控制系统。

团队很多成员发现 C++ 在嵌入式平台方面有很大的局限性,例如:太复杂、系统资源有限、缺少垃圾回收机制、可移植性、分布式、多线程等。Sun 团队决定开发一种新的语言,取名 Oak。1992年,Green 团队完成了新平台的部分功能,同年 11 月,Green 计划被转化成 “ FirstPerson 有限公司”

FirstPerson 团队在华纳公司发布电视机顶盒发布会被有限电视界认为给用户太多权利而争标失败,与 3DO 公司另一笔机顶盒交易也没有成功。Green 项目夭折,FirstPerson 团队一半成员被调。

1994 年夏天,互联网和浏览器出现,Gosling 意识到这是个机会,将 Oka 进行小规模改造,94 年秋,团队中 Naughton 与 Jonathan 完成了第一个 Java 语言网页浏览器,因 Oka 被注册,改名为 Java。Java 是爪哇岛咖啡名字,据说是程序员在苦思冥想该起什么名字比较好的时候,下楼点了一杯咖啡,感觉味道很不错,就命名为 Java。

1995 年初,Sun 公司发布 Java 语言,想互联网所有用户公开,包括源代码。几个月后,Java 大火。

Java技术平台

Java 简单易用,安全可靠,它主要是面向 Internet 编程的。它有三个平台:Java SE,Java EE,Java ME。

Java SE

全称

Java Platform Standard Edition,即 Java 标准版。

说明

Java 技术的核心和基础,它是 Java ME 和 Java EE 的编程基础。它里面包含了 Java EE 和 Java ME 开发需要用到的基础类库。

Java EE

全称

Java Platform Enterprise Edition,即 Java 企业版。

说明

为开发企业级应用程序提供的解决方案,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的 Java 应用程序。

Java ME

全称

Java Platform Micro Edition,即 Java 小型版。

说明

为机顶盒、移动电话和 PDA 之类嵌入式消费电子设备提供的 Java 语言平台,包括虚拟机和一系列标准化的 Java API。

Java使用领域

大型网站

主要使用的是 Java EE。由于 Java 高性能,安全可靠,所以一些大型的网站都使用 Java EE 来开发,比如我们熟知的 淘宝、京东、携程等等。

嵌入式设备

嵌入式设备及消费类电子产品,主要是用 Java ME 开发的,无线手持设备,通信终端,医疗设备,信息家电(数字电视,机顶盒,电冰箱)、汽车电子设备等等都是 Java 应用领域。

电子政务

现在政府部门的绝大多数信息化系统使用 Java 语言开发的,它主要使用的是 Java EE。

游戏

在智能手机出现之前,很多优秀的游戏是通过 Java 语言开发的,不过现在很多优秀的大型网游的后台数据的统计都是由 Java 语言编写的。

桌面应用程序

Java 语言可以用来开发桌面应用程序,它可以跨平台。

Java发展历程

时间 版本
1995 1995 年发布第一版 Java。
1996 年 1 月 Sun 公司发布 JDK1.0。
1997 年 2 月 JDK 1.1 面试。
1998 年 12 月 8 发布 JDK1.2。将 Java 分成:J2EE 企业级 、J2SE 桌面级、 J2ME 移动端三个版本,将 API 分成核心 API 可选 API 特殊 API。
1999 年 4 月 27 HotSpot 虚拟机发布。HotSpot 虚拟机发布是作为 JDK 1.2 的附加程序提供的,后来它成为了 JDK 1.3 及之后所有版本的 Sun JDK 的默认虚拟机。
2002 年 2 月 发布 JDK1.4 涌现众多基于Java语言开发框架大量企业级应用服务器。
2004 年 10 月 发布 JDK1.5,改名为 JavaSE 5.0。 Java EE,Java ME 推出了自己的 MVC 框架规范。
2005 年 6 月 Sun 公司发布了 Java SE 6。此时 Java 的各种版本已经更名,已取消其中的数字 2,如 J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME。
2009 年 4 月 20 Oracle 公司每股 7.5 美元收购 Sun 总价值 74 亿美元。
2017 年 9 月 22 Oracle 公司发布了 Java SE 9。
2018 年 3 月 Java SE 10。
2018 年 9 月 Java SE 11。
2019 年 3 月 Java SE 12。
2019 年 9 月 Java SE 13。

从 JDK9 之后,Oracle 采用了新的发布周期:每 6 个月发布一个版本,每 3 年发布一个 LTS(Long Term Support 长期支持) 版本。JDK14 是继 JDK9 之后发布的第四个版本, 该版本为非 LTS 版本,最新的 LTS 版本为 JDK11。

Java语言特点

简单性

Java 看起来的设计很像 c++ ,但是为了使语言小和容易熟悉,设计者们把 c++ 语言中的需要可用的特征都去掉了。Java 中没有指针。Java 能够自动处理对象的引用和间接引用,实现自动的无用单元收集,用户不管关心存储管理问题,能够更多的时间和精力都花在研发上面。

面向对象

Java 是一个面向对象的语言。使得代码调用更加清晰,不需要用过程来思考编程。

分布性

Java 语言支持网络通信,它可以让多个应用单独部署,互相之间进行调用。

编译和解释性

Java 编译程序生产字节码 (byte-code),而不是通常的机器码。Java 代码编译后不能直接运行,它是解释运行在 JVM 的。

稳健性

Java 是一个强类型语言,它允许扩展编译时检查潜在的类型不匹配问题的功能。它不支持指针,消除重写存储数据的可能性。异常处理也是它稳健性的另一个特征。

安全性

Java 的存储分配模型是它防御恶意代码的主要方法之一。Java 没有指针,所以程序员无法对存储器里面的数据进行直接操作。

可移植性

只要是安装了 jre 的环境,都可以运行相应的 Java 程序。

高性能

Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java 设计者制作了“及时”编译程序,它能在运行时把 Java 字节码翻译成特定 CPU(中央处理器)的机器代码,也就是实现全编译了。

多线程性

Java 是支持多线程的,在某些场景下合理使用多线程的方法会让程序处理效果变快。

动态性

Java 语言是一个动态的语言,它的类加载只要格式正确,可以通过网络获取也可以在文件中获取。

Java与其他语言对比

Java与C++比较

Java 语言是一种完全的面对对象语言,虽然他的底层(运行时库)是用 C 语言 开发的,可是并不依赖于 C。因为 Java 的运行是在运行时库的支持下运行的,所以运行的效率比起可以更接近底层的 C/C++ 来说效率会有所影响,不过 Java 的类库采用很好的设计理念,非常好用,也非常实用,已经成为业界的一种标准开发语言。

它的跨平台的特性受到开发者的青睐,只需要开发一次就能在所有安装了 Java 运行时库的环境上运行。

Java与C#比较

C# 是微软开发的一种编程语言,语法类似 Java,几乎就是 Java 的翻版。运行原理和 Java 也类似,也是通过运行时库的支持运行。不过支持额平台还很有限。

Java 几乎被所有平台支持,而 C# 目前只被 Windows 和 Linux 支持,Windows 下的支持当然是由微软自己开发的,而 linux下的支持则有 mono 支持。实际上,mono 也是把 C# 应用转化为 Java 应用而已,所以本质上,C# 仍然只是被微软自己的操作系统支持。应用平台受到限制,是他最大的缺点。

Java与Python比较

Pyhton 的强大在于库,为什么 python 的库强大,原因是 python 的库可以用 python,c 语言,c++ 等设计,再提供给 python 使用,所以无论 gpu 运行,神经网络,智能算法,数据分析,图像处理,科学计算,各式各样的库在等着你用。

而 Java 没有 python 那么多的开源库,很多库是商业公司内部使用,或发布出来只是一个 jar 包,看不到原始代码。python 虚拟机因为编译性没有 java 的支持的好(或者说故意这么设计的),一般直接使用源码(linux),或源码简单打个包(如pyexe)。

python 用途最多的是脚本,java 用途最多的是 web,pyhotn 是胶水,可以把各类不相关的东西粘在一起用,java 是基佬,可以通过软件工程组成几百个人的团队和你 pk,商业化气息重。不过我认为还是 python 强大,因为可以方便调用 c 或 c++ 的库,但软件工程和商业化运作没有 java 好,适合快捷开发。

Python 的应用领域主要在游戏开发、搜索引擎、图形图像处理、脚本开发等。Java 的应用领域主要是服务器开发,Web 开发和安卓开发等。

Java是什么总结

1994 年夏天,互联网和浏览器出现,Gosling 意识到这是个机会,将 Oka 进行小规模改造,94 年秋,团队中 Naughton 与 Jonathan 完成了第一个 Java 语言网页浏览器,因 Oka 被注册,改名为 Java。Java 是爪哇岛咖啡名字,据说是程序员在苦思冥想该起什么名字比较好的时候,下楼点了一杯咖啡,感觉味道很不错,就命名为 Java。

1995 年初,Sun 公司发布 Java 语言,想互联网所有用户公开,包括源代码。几个月后,Java 大火。

Java 简单易用,安全可靠,它主要是面向 Internet 编程的。它有三个平台:Java SE,Java EE,Java ME。

Java 具有简单性、面向对象、分布性、编译和解释性、稳健性、安全性、可移植性、高性能、多线程性和动态性等特点。