文章为小编在javatpoint等网站整理的资料,想要详学的可以慢慢学,想要迅速学完的可以直接看总结
什么是java?
Java 是一种编程语言和平台。 再具体一点:Java 是一种高级、健壮、面向对象且安全的编程语言。 Java是解释型语言
为什么说java是平台?
平台:程序在其中运行的任何硬件或软件环境都称为平台。由于 Java 具有运行时环境 (JRE) 和 API,因此称为平台。
为什么说java是解释性语言?
Java先由编译器编译成以class为扩展名的文件,后通过java虚拟机(JVM)解释运行。
JDK,JRE和JVM
JDK
JDK 是 Java Development Kit 的缩写,是一种软件开发环境,用于开发 Java 应用程序和小程序,它包含JRE和开发工具。
JRE
JRE是 Java Runtime Environment 的缩写,它是运行已编译的 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。
JVM
JVM是 Java Virtual Machine 的缩写,是一个抽象的机器,被称为虚拟机(因为它在物理意义上不存在),它提供了一个可以在其中执行 Java 字节码的运行时环境的规格,它可以运行那些用其他语言编写并编译为 Java 字节码的程序。 JVM 执行以下主要任务:加载代码,验证代码,执行代码,提供运行环境。
JDK和JRE
JDK是功能齐全的 Java SDK,它拥有JRE所拥有的一切,还有编译器(javac)和工具(如 javadoc 和 jdb),它能够创建和编译程序。 JRE 是 Java 运行时环境,它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件,但是,它不能用于创建新程序,由于JRE不包含编译器,所以无法编译程序,只能运行程序。 综上所述,JDK包含JRE。JDK可以创建新程序,JRE不可以;JDK可以编译程序,JRE不行,JRE只能运行已编译的程序。
Java历史(可以不用细读)
Java 最初是为交互式电视设计的,但对于当时的数字有线电视行业来说,它是太先进的技术。 Java 的历史始于绿队。 Java 团队成员(也称为 Green Team)发起了这个项目,旨在为机顶盒、电视等数字设备开发一种语言。然而,它最适合互联网编程。后来,Java 技术被 Netscape 纳入。
创建 Java 编程的原则是“简单、健壮、可移植、独立于平台、安全、高性能、多线程、架构中立、面向对象、可解释和动态”。 Java 是由被誉为 Java 之父的 James Gosling 于 1995 年开发的。James Gosling 和他的团队成员在 90 年代初开始了该项目。
目前,Java 用于互联网编程、移动设备、游戏、电子商务解决方案等。以下是描述 Java 历史的重要观点。
- James Gosling、Mike Sheridan 和 Patrick Naughton 于 1991 年 6 月发起了 Java 语言项目。这个由 Sun 工程师组成的小团队称为 Green Team。
- 最初它是为机顶盒等电子设备中的小型嵌入式系统而设计的。
- 首先,它被 James Gosling 称为“Greentalk”,文件扩展名为 .gt。
- 之后,它被称为橡树,并作为绿色项目的一部分开发。
为什么 Java 被命名为“Oak”? 为什么是橡树?橡木是力量的象征,被美国、法国、德国、罗马尼亚等国选为国树。
- 1995年,Oak更名为“Java”,因为它已经是Oak Technologies的商标。
为什么Java编程命名为“Java”? 为什么他们为 Java 语言选择 Java 名称?团队聚集在一起选择一个新名字。建议的词是“动态”、“革命性”、“丝绸”、“颠簸”、“DNA”等。他们想要反映技术本质的东西:革命性的、动态的、活泼的、酷的、独特的、易于使用的。拼写,说起来很有趣。 根据 James Gosling 的说法,“Java 和 Silk 是首选之一”。由于 Java 是如此独特,大多数团队成员更喜欢 Java,而不是其他名称。
- 爪哇岛是印度尼西亚的一个岛屿,在那里生产了第一批咖啡(称为爪哇咖啡)。它是一种浓缩咖啡豆。詹姆斯·高斯林在办公室附近喝咖啡时选择了 Java 名称。
- 请注意,Java 只是一个名称,而不是首字母缩略词。
- 最初由 Sun Microsystems(现在是 Oracle Corporation 的子公司)的 James Gosling 开发并于 1995 年发布。
- 1995 年,《时代》杂志将 Java 评为 1995 年十大最佳产品之一。
- JDK 1.0 于 1996 年 1 月 23 日发布。在 Java 的第一个版本之后,该语言添加了许多附加功能。现在 Java 被用于 Windows 应用程序、Web 应用程序、企业应用程序、移动应用程序、卡片等。每个新版本都添加了 Java 中的新功能。
Java 版本历史
到目前为止,已经发布了许多Java版本。 Java 的当前稳定版本是 Java SE 10。 JDK Alpha 和 Beta(1995) JDK 1.0(1996 年 1 月 23 日) JDK 1.1(1997 年 2 月 19 日) J2SE 1.2(1998 年 12 月 8 日) J2SE 1.3(2000 年 5 月 8 日) J2SE 1.4(2002 年 2 月 6 日) J2SE 5.0(2004 年 9 月 30 日) Java SE 6(2006 年 12 月 11 日) Java SE 7(2011 年 7 月 28 日) Java SE 8(2014 年 3 月 18 日) Java SE 9(2017 年 9 月 21 日) Java SE 10(2018 年 3 月 20 日) Java SE 11(2018 年 9 月) Java SE 12(2019 年 3 月) Java SE 13(2019 年 9 月) Java SE 14(2020 年 3 月) Java SE 15(2020 年 9 月) Java SE 16(2021 年 3 月) Java SE 17(2021 年 9 月) Java SE 18(将于 2022 年 3 月发布) 自 Java SE 8 发布以来,Oracle 公司遵循的模式是,每个偶数版本都在 3 月发布,而奇数版本在 9 月发布。
简而言之
Java 由 Sun Microsystems(现为 Oracle 的子公司)于 1995 年开发。James Gosling 被称为 Java 之父。在 Java 之前,它的名字是 Oak。由于 Oak 已经是一家注册公司,因此 James Gosling 和他的团队将 Oak 名称更改为 Java。
Java能做什么?
主要分为:
- 独立应用:独立应用程序也称为桌面应用程序或基于窗口的应用程序,这些是我们需要在每台机器上安装的传统软件。独立应用程序的示例有媒体播放器、防病毒软件等。
- 网页应用:在服务器端运行并创建动态页面的应用程序称为 Web 应用程序。
- 企业应用:本质上是分布式的应用程序,例如银行应用程序等,称为企业应用程序,它具有高级别的安全性、负载均衡和集群的优点。
- 移动应用:为移动设备创建的应用程序称为移动应用程序。
Java版本
- JavaSE(标准版)
- JavaEE(企业版)
- JavaME(微型版)
- JavaFX:用于开发丰富的互联网应用程序,它使用轻量级的用户界面 API(JavaFX不常用)
Java特点(建议详学,最后一项面试官会考)
简单性
Java 非常容易学习,它的语法简单、干净且易于理解。
面向对象
面向对象 Java 是一种面向对象的编程语言。 Java 中的一切都是对象。面向对象意味着我们将我们的软件组织为包含数据和行为的不同类型对象的组合。面向对象编程 (OOP) 是一种通过提供一些规则来简化软件开发和维护的方法。
平台独立
Java 是一种编写一次,随处运行的语言。 平台:程序运行的硬件或软件环境。平台类型有两种:基于软件的平台和基于硬件的平台,java提供了一个基于软件的平台。
安全性
Java以其安全性而闻名,使用Java,我们可以开发无病毒系统。 Java是安全的,因为:
健壮的
- Java使用强大的内存管理
- 缺少避免安全问题的指针
- Java 提供在 Java 虚拟机上运行的自动垃圾收集,以清除 Java 应用程序不再使用的对象
- Java 中有异常处理和类型检查机制。所有这些都使 Java 变得健壮
架构中立
Java 是架构中立的,因为它没有依赖于实现的特性,例如,基本类型的大小是固定的。 举个例子:int数据类型对于 Java 中的 32 位和 64 位体系结构,它都占用 4 字节的内存。
平台无关性
Java 是可移植的,因为它便于我们将 Java 字节码携带到任何平台。
高性能
Java 比其他传统的解释型编程语言更快,因为 Java 字节码“接近”本机代码。
分布式
Java 是分布式的,因为它方便用户用 Java 创建分布式应用程序。 Java 的这一特性使我们能够通过从 Internet 上的任何机器调用方法来访问文件。
多线程
线程就像一个单独的程序,并发执行。我们可以通过定义多个线程来编写同时处理多个任务的 Java 程序。多线程的主要优点是它不会为每个线程占用内存。它共享一个公共内存区域。线程对于多媒体、Web 应用程序等很重要。
动态的
Java 是一种动态语言,它支持类的动态加载,这意味着类是根据需要去加载资源的,它还支持来自其本地语言(即 C 和 C++)的函数。Java 支持动态编译和自动内存管理(垃圾收集)。
编译与解释并存(原因面试官可能会考)
Java 程序要经过先编译,后解释两个步骤:由 java 编写的程序需要先经过编译步骤,生成字节码(以class为扩展名的文件),最后,这种字节码由 java 解释器来解释执行。
C++ vs java
我们是来学java的,和C++并没太大关系,但是面试官喜欢考阿
- 主要用途不同:C++主要用于系统编程,java主要用于应用程序编程。
- 设计初衷不同:C++ 是为系统和应用程序编程而设计的, Java 被设计和创建为打印系统的解释器,但后来扩展为支持网络计算,它被设计为易于使用且可供更广泛的受众(信息传播的接受者,也就是指我们)访问。
- C++支持多重继承,java不支持通过类进行多重继承(但可以通过在java中使用接口来实现)
- C++ 支持运算符重载,Java 不支持运算符重载
- 我们可以使用C++编写指针程序,但不能用java编写指针程序 等
总结
- Java是一种编辑语言和平台,是解释型语言。
- JDK是一种软件开发环境,包含JRE,编译器(javac)和工具(如 javadoc 和 jdb);JRE是 java 运行时环境,它是运行已编译的 java 程序所需的所有内容的集合;JVM是运行 java 字节码的虚拟机。它是功能齐全的 Java SDK。
- Java能做的:应用程序,嵌入式系统,智能卡,机器人,游戏等。
- Java版本:JavaSE(标准版),JavaEE(企业版),JavaME(微型版),JavaFX(不太常用,可以不记)。
- Java特点(特性):简单易学,面向对象,平台独立,安全,健壮,架构独立,平台无关性,高性能,分布式,多线程,动态的,编译与解释并存。
- C++ vs java:主要用途不同(C++主要用于系统编程,java主要用于应用程序编程),设计初衷不同(C++ 是为系统和应用程序编程而设计的, Java 被设计和创建为打印系统的解释器,但后来扩展为支持网络计算,它被设计为易于使用且可供更广泛的受众(信息传播的接受者,也就是指我们)访问),C++支持多重继承,java不支持通过类进行多重继承(但可以通过在java中使用接口来实现),C++ 支持运算符重载,Java 不支持运算符重载,我们可以使用C++编写指针程序,但不能用java编写指针程序等。
|