重新来理解一下Java是什么(上)

简介: 阿粉?阿粉?阿粉?阿粉在哪里,项目经理今天发现阿粉没来,一时间很生气,心里盘算回来一定要让阿粉知道自己不是好惹的?可是阿粉去了哪里呢?阿粉受不鸟这个公司了,太 TM XXX了,阿粉出来面试了!!!阿粉心想一定要找到一个好工作!!!

JRE 和 JDK

Oracle 在 JavaSE 系列上提供了两种主要的软件产品他们分别是 JREJDK

Java SE Runtime Environment (JRE)

首先 JREJava Runtime Environment,是 Java 运行时环境实际上,JRE 是一种旨在运行在其他软件的软件。作为 Java 的运行时环境,JRE 包括了基本的 Java 类库,Java 类加载器和 Java 虚拟机。

在这个 Java 系统中

  • 类加载器负责正确加载类并将它们与核心 Java 类库进行连接。
  • JVM 负责确保 Java 应用程序在设备或者云环境中有足够的空间资源来运行 Java 程序。
  • JRE 主要的作用是为其他组建提供了一个容器(Container),负责协调安排他们的活动。

Java SE Development Kit (JDK)

JDK 是 Java 完整的 SDK,它包括任何 JRE 中拥有的东西,另外,它还包括 JRE 所没有的命令行工具例如 Java 编译器 javacjavadocjdb,它能够用来创建新的项目和编译程序,只靠 JRE 是无法创建新项目的

通常,如果只关心在计算机上运行 Java 程序,则只会安装 JRE,这就是你所需要的。另一方面,如果你打算进行一些 Java 编程,则需要安装JDK。

有时,即使你不打算在计算机上进行任何 Java 开发,你仍然要安装 JDK。比如说,如果你想用 JSP 开发一个 web 应用程序,从技术上来讲,你是在应用服务器中运行 Java 程序,那你为什么需要安装 JDK 呢?因为应用程序会将 JSP 转换为 Java Servlet,并且需要使用 JDK 来编译 servlet 等。

Java 编程语言

Java 编程语言作为当今异常火爆的编程语言,它崛起的因素是什么呢?

我想或许可以从下面这几个切入点进行了解

  • 简单,Java 会让你的工作变得更加轻松,使你把关注点放在主要业务逻辑上,而不必关心指针、运算符重载、内存回收等与主要业务无关的功能。
  • 便携性,Java 是平台无关性的,这意味着在一个平台上编写的任何应用程序都可以轻松移植到另一个平台上。
  • 安全性, 编译后会将所有的代码转换为字节码,人类无法读取。它使开发无病毒,无篡改的系统/应用成为可能。
  • 动态性,它具有适应不断变化的环境的能力,它能够支持动态内存分配,从而减少了内存浪费,提高了应用程序的性能。
  • 分布式,Java 提供的功能有助于创建分布式应用。使用远程方法调用(RMI),程序可以通过网络调用另一个程序的方法并获取输出。您可以通过从互联网上的任何计算机上调用方法来访问文件。这是革命性的一个特点,对于当今的互联网来说太重要了。
  • 健壮性,Java 有强大的内存管理功能,在编译和运行时检查代码,它有助于消除错误。
  • 高性能,Java 最黑的科技就是字节码编程,Java 代码编译成的字节码可以轻松转换为本地机器代码。通过 JIT 即时编译器来实现高性能。
  • 解释性,Java 被编译成字节码,由 Java 运行时环境解释。
  • 多线程性,Java支持多个执行线程(也称为轻量级进程),包括一组同步原语。这使得使用线程编程更加容易,Java 通过管程模型来实现线程安全性。

Java 虚拟机

JVM 有两个主要的功能: 允许 Java 程序在任何设备或者操作系统上运行,也就是 compile once,run anywhere,以及管理和优化动态内存分配。 Java 诞生在 1995 年(我诞生的这一年果然不同寻常),所有的计算机程序都会运行在一个特定的操作系统上,程序运行内存由开发人员手动管理,所以给 JVM 的开发带来了启示作用

43.jpg

  • 技术方面的启示: JVM 是一个特殊的软件程序,它能够执行代码和提供运行时代码环境
  • 日常运行的启示: JVM 是我们运行 Java 程序的方式,我们配置 Java 环境变量,然后在执行期间依靠它来管理程序资源。

Java 虚拟机可以移植到不同的平台,以提供与硬件和操作系统无关的功能。

Java 基础库

提供 Java 平台基本功能的类和接口(基于 JDK 1.8)

Java.applet

Java Applet 就是用 Java 语言编写的一些小应用程序,它们可以直接嵌入到网页中,并能够产生特殊的效果(小程序入门可以参考 https://blog.csdn.net/qq_26024867/article/details/82558385)例如下面

44.jpg

Java.applet 现在已经几乎不再使用,为什么不再使用了呢?你这个问题让鸭鸭陷入了沉思,为什么不用了?想不出来,求助百度和谷歌吧,我认为这个回答还是比较可靠的

45.jpg

Java.awt

java.awt 是一个软件包,包含用于创建用户界面和绘制图形图像的所有分类。Java.awt 包我们也几乎不再使用。

46.jpg

Java.beans

bean 这个词想必我们不是刚学 Java 的时候听到的吧,应该是接触 Spring 才认识到 bean 这个词吧,bean 在 Java 中就是 java 的类,或者说,就是 Java 语言的组件,充分体现了 Java 语言平台独立和面向对象编程的优势。

所有的 Swing 和 AWT 类都是 JavaBean。GUI 组件是理想的 JavaBean。Java.beans 包括属性、事件、方法和持久化组件。


相关文章
|
存储 SQL 缓存
JAVA问答17
JAVA问答17
83 0
|
算法 Java
棋盘覆盖问题(Java)
棋盘覆盖问题(Java)
176 0
棋盘覆盖问题(Java)
|
缓存 自然语言处理 监控
JAVA问答14
JAVA问答14
95 0
AbstractDemo.java
AbstractDemo.java
70 0
|
SQL 负载均衡 Oracle
[一起学Java]
一、批量添加品牌信息到数据表 一、业务实现类实现
165 0
|
Java
6、Java——常用小技巧总结
6、Java——常用小技巧总结
112 0
|
分布式计算 Java 关系型数据库
蓦然回首,Java 已经 24 岁了!
蓦然回首,Java 已经 24 岁了!
蓦然回首,Java 已经 24 岁了!