提交 f26cfca0 编写于 作者: 沉默王二's avatar 沉默王二 💬

Java 概览

上级 950fbef5
......@@ -62,10 +62,11 @@ export const sidebarConfig = sidebar({
collapsable: true,
children: [
"what-is-java",
{
text: "编写第一个 Java 程序",
link: "hello-world",
},
"java-history",
"java-can-do-what",
"jdk-install-config",
"IDEA-install-config",
"hello-world",
],
},
{
......
......@@ -4,6 +4,7 @@ category:
tag:
- 辅助工具/轮子
title: Tabby:一款逼格更高的开源终端工具
shortTitle: Tabby:一款逼格更高的开源终端工具
---
作为一名 Java 后端开发,日常工作中免不了要和 Linux 服务器打交道,因为生产环境基本上都是部署在 Linux 环境下的。以前呢,我会选择 Xshell 来作为终端进行远程操作。
......
......@@ -14,12 +14,11 @@ headerDepth: 1
</p>
<p align="center">
<a href="https://github.com/itwanger/toBeBetterJavaer" target="_blank"><img src="https://img.shields.io/badge/Github-toBeBetterJavaer-red.svg"></a>
<a href="https://gitee.com/itwanger/toBeBetterJavaer" target="_blank"><img src="https://img.shields.io/badge/Gitee-toBeBetterJavaer-blue.svg"></a>
<a href="https://space.bilibili.com/513340480" target="_blank"><img src="https://img.shields.io/badge/bilibili-哔哩哔哩-critical"></a>
<a href="https://mp.weixin.qq.com/s/ExjM-xdqMFFY1NIZffz-Ng" target="_blank">
<img src="https://img.shields.io/badge/计算机经典电子书-下载-green.svg" alt="无套路下载">
</a>
<a href="https://tobebetterjavaer.com/blog.html" target="_blank"><img src="https://img.shields.io/badge/博客-在线阅读-green.svg?style=for-the-badge"></a>
<a href="#联系方式" target="_blank"><img src="https://img.shields.io/badge/公众号-沉默王二-brightgreen.svg?style=for-the-badge"></a>
<a href="https://space.bilibili.com/513340480" target="_blank"><img src="https://img.shields.io/badge/bilibili-哔哩哔哩-critical?style=for-the-badge"></a>
<a href="https://tobebetterjavaer.com/download/java.html" target="_blank"><img src="https://img.shields.io/badge/计算机经典电子书-下载-yellow.svg?style=for-the-badge" alt="无套路下载"></a>
<a href="https://github.com/itwanger/toBeBetterJavaer" target="_blank"><img alt="Java程序员进阶之路" src="https://img.shields.io/github/stars/itwanger/toBeBetterJavaer?style=for-the-badge"></a>
</p>
:::
......@@ -87,14 +86,18 @@ headerDepth: 1
- [面渣逆袭(操作系统)必看👍](sidebar/sanfene/os.md)
## Java核心
## Java 核心
**Java核心非常重要**!我将其分成了Java 基础篇(包括基础语法、面向对象、集合框架、异常处理、Java IO 等)、Java 并发篇和 Java 虚拟机篇。
**Java 核心非常重要**!我将其分成了Java 基础篇(包括基础语法、面向对象、集合框架、异常处理、Java IO 等)、Java 并发篇和 Java 虚拟机篇。
### Java概述
- [什么是Java?Java发展简史,Java的优势](overview/what-is-java.md)
- [第一个Java程序:Hello World](overview/hello-world.md)
- [Java简介](overview/what-is-java.md)
- [Java发展简史](overview/java-history.md)
- [Java的优势](overview/java-can-do-what.md)
- [安装Java开发工具包JDK](overview/jdk-install-config.md)
- [安装集成开发环境Intellij IDEA](overview/IDEA-install-config.md)
- [编写第一个Java程序:Hello World](overview/hello-world.md)
### Java基础语法
......
---
title: 安装集成开发环境Intellij IDEA
shortTitle: 安装集成开发环境IDEA
category:
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
- Intellij IDEA
- IDEA
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介,Intellij IDEA,IDEA
- name: description
content: Intellij IDEA的安装和配置
---
IntelliJ IDEA 简称 IDEA,是业界公认为最好的 Java 集成开发工具,尤其是在代码自动提示、代码重构、代码版本管理、单元测试、代码分析等方面有着亮眼的发挥。
IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主,分为社区版和付费版两个版本。如果只是学习 Java SE 社区版就足够用了。想要更多功能的话,比如说 Spring initializr 功能,需要下载付费版。
回想起我最初学 Java 的时候,老师要求我们在记事本上敲代码,在命令行中编译和执行 Java 代码,搞得全班三分之二的同学都做好了放弃学习 Java 的打算。
鉴于此,我强烈推荐大家使用集成开发工具,比如说 IntelliJ IDEA 来学习。
### 01、下载 IDEA
IntelliJ IDEA 的官方下载地址为:[https://www.jetbrains.com/idea/download/](https://www.jetbrains.com/idea/download)
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-1.png)
UItimate 为付费版,可以免费试用,主要针对的是 Web 和企业开发用户;Community 为免费版,可以免费使用,主要针对的是 Java 初学者和安卓开发用户。
功能上的差别如下图所示。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-2.png)
本篇教程主要针对的是 Java 初学者,所以选择免费版为例,点击「Download」进行下载。
稍等一分钟时间,大概 580M。
### 02、安装 IDEA
双击运行 IDEA 安装程序,一步步傻瓜式的下一步就行了。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-3.png)
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-4.png)
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-5.png)
为了方便启动 IDEA,可以勾选【64-bit launcher】复选框。为了关联 Java 源文件,可以勾选【.java】复选框。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-6.png)
点击【Install】后,需要静静地等待一会,大概一分钟的时间,趁机休息一下眼睛。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-7.png)
安装完成后的界面如下图所示。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-8.png)
### 03、启动 IDEA
回到桌面,双击运行 IDEA 的快捷方式,启动 IDEA。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-9.png)
假装阅读完条款后,勾选同意复选框,点击【Continue】
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-10.png)
如果想要帮助 IDEA 收集改进信息,可以点击【Send Usage Statistics】;否则点击【Don't send】。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-11.png)
到此,Intellij IDEA 的安装就完成了,很简单。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)
---
title: 编写第一个Java程序:Hello World
shortTitle: 编写第一个Java程序:Hello World
category:
- Java核心
- Java 核心
tag:
- Java
date: 2019-01-01
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介,Intellij IDEA,IDEA
- name: description
content: 编写第一个Java程序:Hello World
---
# 第一个Java程序:Hello World
## 一、安装集成开发环境Intellij IDEA
IntelliJ IDEA 简称 IDEA,是业界公认为最好的 Java 集成开发工具,尤其是在代码自动提示、代码重构、代码版本管理、单元测试、代码分析等方面有着亮眼的发挥。
IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主,分为社区版和付费版两个版本。我们在学习阶段,社区版就足够用了。
回想起我最初学 Java 的时候,老师要求我们在记事本上敲代码,在命令行中编译和执行 Java 代码,搞得全班三分之二的同学都做好了放弃学习 Java 的打算。
鉴于此,我强烈推荐大家使用集成开发工具,比如说 IntelliJ IDEA 来学习。
IDEA 分为社区版和付费版两个版本。
### 01、下载 IDEA
IntelliJ IDEA 的官方下载地址为:[https://www.jetbrains.com/idea/download/](https://www.jetbrains.com/idea/download)
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-1.png)
UItimate 为付费版,可以免费试用,主要针对的是 Web 和企业开发用户;Community 为免费版,可以免费使用,主要针对的是 Java 初学者和安卓开发用户。
功能上的差别如下图所示。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-2.png)
本篇教程主要针对的是 Java 初学者,所以选择免费版为例,点击「Download」进行下载。
稍等一分钟时间,大概 580M。
### 02、安装 IDEA
双击运行 IDEA 安装程序,一步步傻瓜式的下一步就行了。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-3.png)
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-4.png)
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-5.png)
为了方便启动 IDEA,可以勾选【64-bit launcher】复选框。为了关联 Java 源文件,可以勾选【.java】复选框。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-6.png)
点击【Install】后,需要静静地等待一会,大概一分钟的时间,趁机休息一下眼睛。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-7.png)
安装完成后的界面如下图所示。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-8.png)
### 03、启动 IDEA
回到桌面,双击运行 IDEA 的快捷方式,启动 IDEA。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-9.png)
假装阅读完条款后,勾选同意复选框,点击【Continue】
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-10.png)
如果想要帮助 IDEA 收集改进信息,可以点击【Send Usage Statistics】;否则点击【Don't send】。
![](https://cdn.jsdelivr.net/gh/itwanger/itwanger.github.io/assets/images/2019/11/java-idea-community-11.png)
到此,Intellij IDEA 的安装就完成了,很简单。
## 二、Hello World
第一个 Java 程序非常简单,代码如下:
```java
......@@ -121,107 +60,4 @@ IDEA 会自动保存,在代码编辑面板中右键,在弹出的菜单中选
- `System.out.println()`:一个 Java 语句,一般情况下是将传递的参数打印到控制台。System 是 java.lang 包中的一个 final 类,该类提供的设施包括标准输入,标准输出和错误输出流等等。out 是 System 类的静态成员字段,类型为 PrintStream,它与主机的标准输出控制台进行映射。println 是 PrintStream 类的一个方法,通过调用 print 方法并添加一个换行符实现的。
## 三、JDK和JRE有什么区别?
### 01、JDK
JDK 是 Java Development Kit 的首字母缩写,是提供给 Java 程序员的开发工具包,换句话说,没有 JDK,Java 程序员就无法使用 Java 语言编写 Java 程序。也就是说,JDK 是用于开发 Java 程序的最小环境。
想要成为一名 Java 程序员,首先就需要在电脑上安装 JDK。当然了,新版的 Intellij IDEA(公认最好用的集成开发环境)已经支持直接下载 JDK 了。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-01.png)
并且支持下载不同版本的 JDK,除了 Oracle 的 OpenJDK,还有社区维护版 AdoptOpenJDK,里面包含了目前使用范围最广的 HotSpot 虚拟机。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-02.png)
如果下载比较慢的话,可以直接在 AdoptOpenJDK 官网上下载。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-03.png)
如果还是比较慢的话,通过 Oracle 官网下载吧!
>https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
JDK 安装成功后,就可以编写 Java 代码了,小伙伴们可以参照上一篇文章《[Hello World](https://mp.weixin.qq.com/s/GYDFndO0Q1Nqzcc_Te61gw)》。
JDK 包含了 JRE,同时还包含了编译 Java 源码的编译器 javac,以及其他的一些重要工具:
- keytool:用于操作 keystore 密钥;
- javap:class 类文件的最基础的反编译器;
- jstack:用于打印 Java 线程栈踪迹的工具;
- jconsole:用于监视 Java 程序的工具;
- jhat:用于 Java 堆分析的工具
- jar:用于打包 Java 程序的工具;
- javadoc:用于生成 Java 文档的工具;
### 02、JRE
JRE 是 Java Runtime Environment 的首字母缩写,是提供给 Java 程序运行的最小环境,换句话说,没有 JRE,Java 程序就无法运行。
Java 程序运行的正式环境一般会选择 Linux 服务器,因为更安全、更高效、更稳定。我们只需要在 Linux 服务器上安装 JRE 就可以运行 Java 程序,而不必安装 JDK,因为我们不需要在服务器上编译和调试 Java 源代码。
刚好我有一台闲置的阿里云服务器,这里就给小伙伴们演示一下 JRE 的安装过程。
第一步:使用以下命令列出服务器上可以安装的 Java 环境:
>yum list java*
可以看到有这么一些(只列出 Java 11 的部分——最近一个 LTS 版本):
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-04.png)
其中 JRE 为 java-11-openjdk.x86_64,JDK 为 java-11-openjdk-devel.x86_64。
第二步,使用以下命令安装 JRE:
>yum install java-11-openjdk.x86_64
第三步,使用以下命令测试是否安装成功:
>java -version
如果出现以下结果,则表明安装成功:
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-05.png)
由于 JRE 中不包含 javac,所以 `javac -version` 的结果如下所示:
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-06.png)
那既然服务器上的 JRE 环境已经 OK 了,那我们就把之前的“Hello World”程序打成 jar 上传过去,让它跑起来。
第一步,Maven clean(对项目清理):
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-07.png)
第二步,Maven package(对项目打包):
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-08.png)
可以在 Run 面板中看到以下信息:
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-09.png)
说明项目打包成功了。
第三步,使用 FileZilla 工具将 jar 包上传到服务器指定目录。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-10.png)
第四步,使用 iTerm2 工具连接服务器。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-11.png)
第五步,执行以下命令:
>java -cp TechSister-1.0-SNAPSHOT.jar com.itwanger.five.HelloWorld
可以看到以下结果:
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/six-12.png)
“搞定了,三妹,今天我们就学到这吧。”转动了一下僵硬的脖子后,我对三妹说,“开发环境需要安装 JDK,因为既需要编写源代码,还需要打包和测试;生产环境只需要安装 JRE,因为只需要运行编译打包好的 jar 包即可。”
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)
\ No newline at end of file
---
title: Java的优势
shortTitle: Java的优势
category:
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介
- name: description
content: Java的优势
---
尽管 Java 已经 25 岁了,但仍然“宝刀未老”。在 Stack Overflow 2019 年流行编程语言调查报告中,Java 位居第 5 位,有 41% 的受调开发者认为 Java 仍然是一门受欢迎的编程语言。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/three-01.png)
很多大型的互联网公司都在使用 Java,国内最有名的当属阿里巴巴,国外最有名的当属谷歌。那为什么 Java 如此流行呢?
**1)简单性**
Java 为开发者提供了简单易用的用户体验,与其他面向对象编程语言相比,Java 的设计和生态库具有巨大的优势。Java 剔除了 C++ 中很少使用、难以理解、易混淆的特别,比如说指针运算、操作符重载,内存管理等。
Java 可以做到堆栈分配、垃圾回收和自动内存管理,在一定程度上为开发者减轻了入门的难度。
**2)可移植性**
如果 Java 直接编译成操作系统能识的二进制码,可能一个标识在 Windows 操作系统下是1100,而 Linux 下是 1001,这样的话,在 Windows 操作系统下可以运行的程序到了 Linux 环境下就无法运行。
为了解决这个问题,Java 先编译生成字节码,再由 JVM(Java 虚拟机)来解释执行,目的就是将统一的字节码转成操作系统可以识别的二进制码,然后执行。而针对不同的操作系统,都有相应版本的 JVM,所以 Java 就实现了可移植性。
**3)安全性**
Java 适用于网络/分布式环境,为了达到这个目标,在安全方面投入了巨大的精力。使用 Java 可以构建防病毒、防篡改的程序。
从一开始,Java 就设计了很多可以防范攻击的机制,比如说:
- 运行时堆栈溢出,这是蠕虫病毒常用的攻击手段。
- 字节码验证,可以确保代码符合 JVM 规范并防止恶意代码破坏运行时环境。
- 安全的类加载,可以防止不受信任的代码干扰 Java 程序的运行。
- 全面的 API 支持广泛的加密服务,包括数字签名、消息摘要、(对称、非对称)密码、密钥生成器。
- 安全通信,支持 HTTPS、SSL,保护传输的数据完整性和隐私性。
**4)并发性**
Java 在多线程方面做得非常突出,只要操作系统支持,Java 中的线程就可以利用多个处理器,带来了更好的交互响应和实时行为。
“二哥,那 Java 还会继续流行下去吗?”三妹眨了眨她的长睫毛,对我说。
“当然。”我斩钉截铁地回答到。
**大数据领域:**
与 Python 一样,Java 在大数据领域占据着主导地位,很多用于处理大规模数据的框架都是基于 Java 开发的。
- Apache Hadoop,用于在分布式环境中处理大规模数据集。Hadoop 采用了主副架构模式,其中主节点负责控制整个分布式计算栈。Hadoop 在需要处理和分析大规模数据的公司当中很流行。
- Apache Spark,大型的 ETL(数据仓库技术)、预测分析和报表程序经常使用到 Spark。
- Apache Mahout,用于机器学习,比如分类、聚类和推荐。
- JFreechart,用于可视化数据,可以用它制作各种图表,比如饼图、柱状图、线图、散点图、盒状图、直方图等等。
- Deeplearning4j,用于构建各种类型的神经网络,可以与 Spark 集成,运行在 GPU(图形处理器)上。
- Apache Storm,用于处理实时数据流,一个 Storm 节点可以在秒级处理数百万个作业。
**物联网(IoT)领域:**
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/three-02.png)
Oracle 表示,灵活性和流行度是 IoT 程序员选择 Java 的主要原因。Java 提供了大量的 API 库,可以很容易应用到嵌入式应用程序中。相比其他编程语言,比如 C 语言,Java 在切换平台时更加顺畅,不容易出错。
**金融服务领域:**
- 聊天机器人,由于可移植性、可维护性、可视化等诸多方面的因素,Java 成了开发聊天机器人最好的工具。
- 欺诈检测和管理,银行和金融公司使用 AI(人工智能)工具来进行金融欺诈和信用卡欺诈检测,而 Java 常用来开发这些 AI 工具。
- 交易系统,Java 虚拟机提供的动态运行时编译优化在很多情况下比编译型语言(如 C++)具有更好的性能,让交易系统运行得更顺畅。
- 移动钱包,基于 AI 和 Java 算法开发的移动钱包,可以帮助用户在花钱时做出更智能的决策。
**Web 领域:**
Java 技术对 Web 领域的发展注入了强大的动力,主流的 Java Web 开发框架有很多:
- Spring 框架,一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,渗透了 Java EE 技术的方方面面,绝大部分 Java 应用都可以从 Spring 框架中受益。
- Spring MVC 框架,是一种基于 Java 实现的 MVC(Model-View-Controller)设计模式的请求驱动类型的轻量级 Web 框架。
- MyBatis 框架,一个优秀的数据持久层框架,可在实体类和 SQL 语句之间建立映射关系,是一种半自动化的 ORM(Object Relational Mapping,对象关系映射)实现。
- JavaServer Faces 框架,由 Oracle 开发,能够将表示层与应用程序代码轻松连接,它提供了一个 API 集,用于表示和管理 UI 组件。
总之,Oracle 宣称,Java 正运行在 97% 的企业计算机上——有点厉害的样子。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)
\ No newline at end of file
---
title: Java发展简史
shortTitle: Java发展简史
category:
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介
- name: description
content: Java发展简史
---
20 世纪 90 年代,单片式计算机系统诞生。单片式计算机系统不仅廉价(之前的计算机非常庞大,并且昂贵),而且功能强大,可以大幅度提升消费性电子产品的智能化程度。
Sun 公司为了抢占市场先机,在 1991 年成立了一个由詹姆斯·高斯林(James Gosling)领导的,名为“Green”的项目组,目的是开发一种能够在各种消费性电子产品上运行的程序架构。
项目组首先考虑的是采用 C++ 来编写程序,但 C++ 过于复杂和庞大,再加上消费电子产品所采用的嵌入式处理器芯片的种类繁杂,需要让编写的程序能够跨平台运行并不容易——C++ 在跨平台方面做得并不好。
思前想后,项目组最后决定:在 C++ 的基础上创建一种新的编程语言,既能够剔除 C++ 复杂的指针和内存管理,还能够兼容各种设备。这语言最初的名字叫做 **Greentalk**,文件扩展名为 `.gt`。这个名字叫的比较随意,就因为项目组叫 Green,没什么特殊的寓意。
**Oak** 是“Java”的第二个名字,这次就有点意义了。Oak(橡树)是力量的象征,被美国、法国、德国等许多欧美国家选为国树。橡树长下面这样。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/two-01.png)
1992 年,Oak 的雏形有了,但项目组在向硬件生产商进行商演的时候,并没有获得认可,于是 Oak 就被搁置一旁了。
1994 年,项目组发现 Java 更适合进行 Internet 编程。随后,项目组用 Oak 语言研发了一种能将小程序嵌入到网页中执行的技术——Applet。Applet 不仅能嵌入网页,还能够随同网页在网络上进行传输。
不得不感慨一下,技术的更新迭代是真的快,Applet 拯救了 Oak,并使其蜕变成顶天立地的 Java,但很早之前就被无情地拍死在了沙滩上。是不是很残酷?
1995 年,Oak 被重新命名为“Java”,因为 Oak 被别的公司注册过了。新的名字最好能够表达出技术的本质:dynamic(动态的)、revolutionary(革命性的)、Silk(像丝绸一样柔软的)、Cool(炫酷的)等等。另外,名字一定要容易拼写,念起来也比较有趣。
选来选去,项目组最后选择了“Java”,中文叫“爪哇”。细心的小伙伴可能会发现,Java 这个单词里有一个敏感词,所以有段时间微信(文章专辑名这块)为了禁敏感词,竟然把 Java 都禁了,我当时就只能用爪哇来代替 Java,手动狗头。
“Java”是印度尼西亚爪哇岛的英文名,因生产咖啡而闻名,所以,小伙伴也看到了,Java 这个单词经常和一杯冒着热气的咖啡一起出现。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/two-02.png)
同年,Sun 公司在 SunWorld 大会上正式发布了 Java 1.0 版本,第一次提出了“Write Once, Run anywhere”的口号。《时代》杂志将 Java 评为 1995 年十大最佳产品之一。
1996 年 1 月 23 日,JDK 1.0 发布,Java 语言有了第一个正式版本的运行环境。JDK 1.0 是一个纯解释执行的 Java 虚拟机,代表技术有:Java 虚拟机、AWT(图形化界面)、Applet。
4 月,十个主要的操作系统和计算机供应商宣称将在产品中嵌入 Java 技术。9 月,已有大约 8.3 万网页应用采用了 Java 来制作。5 月底,第一届 JavaOne 大会在旧金山举行,从此,JavaOne 成为全世界数百万 Java 语言开发者的技术盛会。
1997 年 2 月 19 日,JDK 1.1 发布,代表技术有:JAR 文件格式、JDBC、JavaBeans、RMI(远程方法调用)。
1998 年 12 月 4 日,JDK 1.2 发布,这是一个里程碑式的版本。Sun 在这个版本中把 Java 拆分为三个方向:面向桌面开发的 J2SE、面向企业开发的 J2EE,面向移动开发的 J2ME。代表技术有:EJB、Swing。
2000 年 5 月 8 日,JDK 1.3 发布,对 Java 2D 做了大幅修改。
2002 年 2 月 13 日,JDK 1.4 发布,这是 Java 真正走向成熟的一个版本,IBM、富士通等著名公司都有参与。代表技术有:正则表达式、NIO。
2004 年 9 月 30 日,JDK 5 发布,注意 Sun 把“1.x”的命名方式抛弃了。JDK 5 在 Java 语法的易用性上做出了非常大的改进,比如说:自动装箱、泛型、动态注解、枚举、可变参数、foreach 循环。
2006 年 12 月 11 日,JDK 6 发布,J2SE 变成了 Java SE 6,J2EE 变成了 Java EE 6,J2ME 变成了 Java ME 6。JDK 6 恐怕是 Java 历史上使用寿命最长的一个版本了。主要的原因有:代码复杂性的增加、世界经济危机、Oracle 对 Sun 的收购。
JDK 6 的最后一个升级补丁为 Java SE 6 Update 211, 于 2018 年 10 月 18 日发布——12 年的跨度啊!
2009 年 2 月 19 日,JDK 7 发布,但功能是阉割。很多翘首以盼的功能都没有完成,比如说 Lambda 表达式。主要是因为 Sun 公司在商业上陷入了泥沼,已经无力推动 JDK 7 的研发工作。
2009 年 4 月 20 日,Oracle 以 74 亿美元的价格收购了市值曾超过 2000 亿美元的 Sun 公司——太阳终究还是落山了。对于 Java 语言这个孩子来说,可以说是好事,也可以说是坏事。好事是 Oracle 有钱,能够注入资金推动 Java 的发展;坏处就是 Oracle 是后爸,对 Java 肯定没有 Sun 那么亲,走的是极具商业化的道路。
2014 年 3 月 18 日,JDK 8 终于来了,步伐是那么蹒跚,但终究还是来了。带着最强有力的武器——Lambda 表达式而来。虽然 JDK 15 已经发布了,但“新版任你发,我用 Java 8”的梗至今还流传着。
2017 年 9 月 21 日,JDK 9 发布。从此以后,JDK 更新版本的速度令开发者应接不暇,半年一个版本,虽然 Oracle 的目的是好的,为了避免因功能增加而引发的跳票风险,但不得不承认,版本更新的节奏实在是有点过于频繁。
这就导致一个问题,好不容易更新一个版本,用了六个月后,Oracle 不维护了。针对这个问题,Oracle 给出的解决方案挺奇葩的,每六个 JDK 大版本才会被长期支持(Long Term Support,LTS)。
JDK 8 是 LTS 版,2018 年 9 月 25 日发布的 JDK 11 是 LTS 版, 2018 年 3 月 20 日发布的 JDK 10 就可以一笔带过了。按照这个节奏算下去的话,下一个 LTS 版就是 2021 年发布的 JDK 17 了。
JDK 12、JDK 13、JDK 14、JDK 15、JDK 16 都是过渡产品,就好像是试验品一样,不太受开发者待见。
Java 发展到今天已经 20 多年了,作为一个编程语言确实不简单,Java 代表的面向对象思想确实给工程领域带来了革命性的变化,关键是 Java 一直在拥抱变化。
大数据方面,有 Apache Kafka、Apache Samza、Apache Storm、Apache Spark、Apache Flink,除了 Spark 是基于 JVM 的函数语言 Scala 编写的,其余都是 Java 编写的。
Java 在云时代面临着以 Go 语言为主的容器(Docker 等技术)生态圈的挑战,但是,Java 的大型分布式系统越来越多,Java 在云计算与分布式系统中还是扮演着主要角色,并且形成了一个大型的生态圈。
虽然 Java 和 C++,C 一样,都“老”了,被其他语言不断地挑战,但只有强者才有机会接受挑战,对吧?我相信,Java 的未来依然很光明。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)
\ No newline at end of file
---
title: 安装Java开发工具包JDK
shortTitle: 安装Java开发工具包JDK
category:
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
head:
- - meta
- name: keywords
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介
- name: description
content: JDK的安装和配置
---
因为Java程序必须运行在JVM之上,所以我们 Java 程序员在学习 Java 之前,要做的第一件事情就是安装JDK。
什么?
又是 JVM 又是 JDK 的,能不能讲清楚一点。
要扯清楚这两者之间的关系,就必须得再扯出另外一个名词 JRE,哈哈哈。
它们之间的关系可以用这幅图来表示。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/jdk-install-config-6f6fdb4a-7a44-4e76-b4ea-71c070a5b220.png)
真的是人生无常,大肠包小肠啊。
## JVM、JRE、JDK 有什么关系
JDK(Java Development Kit)是用于开发 Java 应用程序的软件环境。里面包含运行时环境(JRE)和其他 Java 开发所需的工具,比如说解释器(java)、编译器(javac)、文档生成器(javadoc)等等。
JRE(Java Runtime Environment)是用于运行 Java 应用程序的软件环境。也就是说,如果只想运行 Java 程序而不需要开发 Java 程序的话,只需要安装 JRE 就可以了。
JVM (Java Virtual Machine) ,也就是 Java 虚拟机,由一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组成,屏蔽了不同操作系统(macOS、Windows、Linux)的差异性,使得Java能够“一次编译,到处运行”。
比如说我用 macOS 生成了一个 jar 包(里面是打包好的字节码——可以在Java虚拟机上运行的目标代码),可以丢给 Windows 用户直接运行,也可以直接上传到 Linux 服务器运行。
这是 Oracle 官方给出的 JDK、JRE、JVM 关系图。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/jdk-install-config-cbc87f87-6351-4356-936b-77850cc682d5.png)
那针对不同的操作系统,官方也提供了不同的 JDK 安装包。如果你用谷歌去搜“JDK”关键字,能搜到官方的下载链接。
>[https://www.oracle.com/java/technologies/downloads/](https://www.oracle.com/java/technologies/downloads/)
如果你用百度去搜,嗯。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/jdk-install-config-31e739ff-b69f-47b6-9db4-8843cd8a716a.png)
总之,是把官方给吃了。
好,如果你想安装 JDK ,到官方下载。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/jdk-install-config-e5b91a70-2a23-4ebd-896a-5ff19f0075b1.png)
最新版是 JDK 18(短期版本),上一个长期支持版本是 JDK 17,推荐安装 JDK 8,哈哈哈哈,它升任它升,我用 Java 8。往下翻就能找到了。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/jdk-install-config-a32db267-febe-4852-b528-deaacb43247d.png)
下载完双击安装,然后配置环境变量就OK 了。
这没啥技术含量,所以下面我给大家推荐两种高级的:
## Windows 用户
Windows 用户建议先安装 Chocolatey,这是一个Windows下的命令行软件管理器,可以方便开发者像在Linux下使用yum命令来安装软件,或者像在macOS下使用brew 命令来安装软件,非常酷炫。
[Chocolatey:Windows的命令行软件管理神器](https://tobebetterjavaer.com/gongju/choco.html)
安装完成后,直接执行 `choco install jdk8` 就可以安装 JDK 8 了,并且会自动将Java加入到环境变量中,不用再去「我的电脑」「环境变量」中新建 JAVA_HOME 并复制 JDK 安装路径配置 PATH 变量了
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongju/choco-80a6ced8-c25d-4371-8096-b95be48af768)
## macOS 用户
macOS 用户建议先安装 Homebrew,这是一个 macOS 下的命令行软件管理器,可以通过一行命令安装 Apple(或 Linux 系统)没有预装但你需要的软件。
[Homebrew:macOS的命令行软件管理神器](https://tobebetterjavaer.com/gongju/brew.html)
安装完成后,直接执行 `brew install openjdk@8` 就可以安装 JDK 8 了。
如果需要在 macOS 安装多个版本的 JDK ,比如说 JDK 17,多个版本的 JDK 怎么管理呢?可以安装一下 jEnv,一个帮助我们管理 JAVA_HOME 的命令行工具,在 GitHub 上已经收获 4.3k 的 star。
安装:
```
brew install jenv
```
配置:
```
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
```
添加:
```
jenv add /usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/
```
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongju/brew-b126c35d-edab-48a9-9543-831cfd0a51c6.png)
JDK 的安装路径可以通过下图的位置查找。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongju/brew-a32accec-4044-480c-a8c8-3781bc5048b5.png)
管理:
```
jenv versions
jenv global 17.0.3
```
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongju/brew-cc01fad8-53e9-4474-8923-08e97ac7090a.png)
是不是贼方便?再也不用整这 `echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc` 玩意了!爽,实在是爽!
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)
---
title: 什么是Java & Java的发展简史 & Java的优势
shortTitle: 关于 Java
title: Java简介
shortTitle: Java简介
category:
- Java核心
- Java 核心
tag:
- Java
- Java SE
- Java 基础
- Java 教程
- Java 程序员进阶之路
- Java 入门
- Java 简介
head:
- - meta
- name: keywords
content: Java是什么,Java的发展简史,Java的优势
content: Java,Java SE,Java 基础,Java 教程,Java 程序员进阶之路,Java 入门,Java 简介
- name: description
content: Java是什么,Java的发展简史,Java的优势
content: 什么是Java?
---
## 01、什么是 Java?
“二哥,到底什么是 Java?给我说说呗。”
“三妹啊,这就直奔主题了啊,先去给哥买包烟吧,哥先考验考验你的诚心。”
......@@ -92,160 +96,5 @@ public class HelloWorld {
这一切的一切,都让软件开发的效率大大的提高。所以,学习 Java 还是很有“钱”“秃”的。
## 02、Java的发展简史
20 世纪 90 年代,单片式计算机系统诞生。单片式计算机系统不仅廉价(之前的计算机非常庞大,并且昂贵),而且功能强大,可以大幅度提升消费性电子产品的智能化程度。
Sun 公司为了抢占市场先机,在 1991 年成立了一个由詹姆斯·高斯林(James Gosling)领导的,名为“Green”的项目组,目的是开发一种能够在各种消费性电子产品上运行的程序架构。
项目组首先考虑的是采用 C++ 来编写程序,但 C++ 过于复杂和庞大,再加上消费电子产品所采用的嵌入式处理器芯片的种类繁杂,需要让编写的程序能够跨平台运行并不容易——C++ 在跨平台方面做得并不好。
思前想后,项目组最后决定:在 C++ 的基础上创建一种新的编程语言,既能够剔除 C++ 复杂的指针和内存管理,还能够兼容各种设备。这语言最初的名字叫做 **Greentalk**,文件扩展名为 `.gt`。这个名字叫的比较随意,就因为项目组叫 Green,没什么特殊的寓意。
**Oak** 是“Java”的第二个名字,这次就有点意义了。Oak(橡树)是力量的象征,被美国、法国、德国等许多欧美国家选为国树。橡树长下面这样。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/two-01.png)
1992 年,Oak 的雏形有了,但项目组在向硬件生产商进行商演的时候,并没有获得认可,于是 Oak 就被搁置一旁了。
1994 年,项目组发现 Java 更适合进行 Internet 编程。随后,项目组用 Oak 语言研发了一种能将小程序嵌入到网页中执行的技术——Applet。Applet 不仅能嵌入网页,还能够随同网页在网络上进行传输。
不得不感慨一下,技术的更新迭代是真的快,Applet 拯救了 Oak,并使其蜕变成顶天立地的 Java,但很早之前就被无情地拍死在了沙滩上。是不是很残酷?
1995 年,Oak 被重新命名为“Java”,因为 Oak 被别的公司注册过了。新的名字最好能够表达出技术的本质:dynamic(动态的)、revolutionary(革命性的)、Silk(像丝绸一样柔软的)、Cool(炫酷的)等等。另外,名字一定要容易拼写,念起来也比较有趣。
选来选去,项目组最后选择了“Java”,中文叫“爪哇”。细心的小伙伴可能会发现,Java 这个单词里有一个敏感词,所以有段时间微信(文章专辑名这块)为了禁敏感词,竟然把 Java 都禁了,我当时就只能用爪哇来代替 Java,手动狗头。
“Java”是印度尼西亚爪哇岛的英文名,因生产咖啡而闻名,所以,小伙伴也看到了,Java 这个单词经常和一杯冒着热气的咖啡一起出现。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/two-02.png)
同年,Sun 公司在 SunWorld 大会上正式发布了 Java 1.0 版本,第一次提出了“Write Once, Run anywhere”的口号。《时代》杂志将 Java 评为 1995 年十大最佳产品之一。
1996 年 1 月 23 日,JDK 1.0 发布,Java 语言有了第一个正式版本的运行环境。JDK 1.0 是一个纯解释执行的 Java 虚拟机,代表技术有:Java 虚拟机、AWT(图形化界面)、Applet。
4 月,十个主要的操作系统和计算机供应商宣称将在产品中嵌入 Java 技术。9 月,已有大约 8.3 万网页应用采用了 Java 来制作。5 月底,第一届 JavaOne 大会在旧金山举行,从此,JavaOne 成为全世界数百万 Java 语言开发者的技术盛会。
1997 年 2 月 19 日,JDK 1.1 发布,代表技术有:JAR 文件格式、JDBC、JavaBeans、RMI(远程方法调用)。
1998 年 12 月 4 日,JDK 1.2 发布,这是一个里程碑式的版本。Sun 在这个版本中把 Java 拆分为三个方向:面向桌面开发的 J2SE、面向企业开发的 J2EE,面向移动开发的 J2ME。代表技术有:EJB、Swing。
2000 年 5 月 8 日,JDK 1.3 发布,对 Java 2D 做了大幅修改。
2002 年 2 月 13 日,JDK 1.4 发布,这是 Java 真正走向成熟的一个版本,IBM、富士通等著名公司都有参与。代表技术有:正则表达式、NIO。
2004 年 9 月 30 日,JDK 5 发布,注意 Sun 把“1.x”的命名方式抛弃了。JDK 5 在 Java 语法的易用性上做出了非常大的改进,比如说:自动装箱、泛型、动态注解、枚举、可变参数、foreach 循环。
2006 年 12 月 11 日,JDK 6 发布,J2SE 变成了 Java SE 6,J2EE 变成了 Java EE 6,J2ME 变成了 Java ME 6。JDK 6 恐怕是 Java 历史上使用寿命最长的一个版本了。主要的原因有:代码复杂性的增加、世界经济危机、Oracle 对 Sun 的收购。
JDK 6 的最后一个升级补丁为 Java SE 6 Update 211, 于 2018 年 10 月 18 日发布——12 年的跨度啊!
2009 年 2 月 19 日,JDK 7 发布,但功能是阉割。很多翘首以盼的功能都没有完成,比如说 Lambda 表达式。主要是因为 Sun 公司在商业上陷入了泥沼,已经无力推动 JDK 7 的研发工作。
2009 年 4 月 20 日,Oracle 以 74 亿美元的价格收购了市值曾超过 2000 亿美元的 Sun 公司——太阳终究还是落山了。对于 Java 语言这个孩子来说,可以说是好事,也可以说是坏事。好事是 Oracle 有钱,能够注入资金推动 Java 的发展;坏处就是 Oracle 是后爸,对 Java 肯定没有 Sun 那么亲,走的是极具商业化的道路。
2014 年 3 月 18 日,JDK 8 终于来了,步伐是那么蹒跚,但终究还是来了。带着最强有力的武器——Lambda 表达式而来。虽然 JDK 15 已经发布了,但“新版任你发,我用 Java 8”的梗至今还流传着。
2017 年 9 月 21 日,JDK 9 发布。从此以后,JDK 更新版本的速度令开发者应接不暇,半年一个版本,虽然 Oracle 的目的是好的,为了避免因功能增加而引发的跳票风险,但不得不承认,版本更新的节奏实在是有点过于频繁。
这就导致一个问题,好不容易更新一个版本,用了六个月后,Oracle 不维护了。针对这个问题,Oracle 给出的解决方案挺奇葩的,每六个 JDK 大版本才会被长期支持(Long Term Support,LTS)。
JDK 8 是 LTS 版,2018 年 9 月 25 日发布的 JDK 11 是 LTS 版, 2018 年 3 月 20 日发布的 JDK 10 就可以一笔带过了。按照这个节奏算下去的话,下一个 LTS 版就是 2021 年发布的 JDK 17 了。
JDK 12、JDK 13、JDK 14、JDK 15、JDK 16 都是过渡产品,就好像是试验品一样,不太受开发者待见。
Java 发展到今天已经 20 多年了,作为一个编程语言确实不简单,Java 代表的面向对象思想确实给工程领域带来了革命性的变化,关键是 Java 一直在拥抱变化。
大数据方面,有 Apache Kafka、Apache Samza、Apache Storm、Apache Spark、Apache Flink,除了 Spark 是基于 JVM 的函数语言 Scala 编写的,其余都是 Java 编写的。
Java 在云时代面临着以 Go 语言为主的容器(Docker 等技术)生态圈的挑战,但是,Java 的大型分布式系统越来越多,Java 在云计算与分布式系统中还是扮演着主要角色,并且形成了一个大型的生态圈。
虽然 Java 和 C++,C 一样,都“老”了,被其他语言不断地挑战,但只有强者才有机会接受挑战,对吧?我相信,Java 的未来依然很光明。
## 03、Java的优势
尽管 Java 已经 25 岁了,但仍然“宝刀未老”。在 Stack Overflow 2019 年流行编程语言调查报告中,Java 位居第 5 位,有 41% 的受调开发者认为 Java 仍然是一门受欢迎的编程语言。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/three-01.png)
很多大型的互联网公司都在使用 Java,国内最有名的当属阿里巴巴,国外最有名的当属谷歌。那为什么 Java 如此流行呢?
**1)简单性**
Java 为开发者提供了简单易用的用户体验,与其他面向对象编程语言相比,Java 的设计和生态库具有巨大的优势。Java 剔除了 C++ 中很少使用、难以理解、易混淆的特别,比如说指针运算、操作符重载,内存管理等。
Java 可以做到堆栈分配、垃圾回收和自动内存管理,在一定程度上为开发者减轻了入门的难度。
**2)可移植性**
如果 Java 直接编译成操作系统能识的二进制码,可能一个标识在 Windows 操作系统下是1100,而 Linux 下是 1001,这样的话,在 Windows 操作系统下可以运行的程序到了 Linux 环境下就无法运行。
为了解决这个问题,Java 先编译生成字节码,再由 JVM(Java 虚拟机)来解释执行,目的就是将统一的字节码转成操作系统可以识别的二进制码,然后执行。而针对不同的操作系统,都有相应版本的 JVM,所以 Java 就实现了可移植性。
**3)安全性**
Java 适用于网络/分布式环境,为了达到这个目标,在安全方面投入了巨大的精力。使用 Java 可以构建防病毒、防篡改的程序。
从一开始,Java 就设计了很多可以防范攻击的机制,比如说:
- 运行时堆栈溢出,这是蠕虫病毒常用的攻击手段。
- 字节码验证,可以确保代码符合 JVM 规范并防止恶意代码破坏运行时环境。
- 安全的类加载,可以防止不受信任的代码干扰 Java 程序的运行。
- 全面的 API 支持广泛的加密服务,包括数字签名、消息摘要、(对称、非对称)密码、密钥生成器。
- 安全通信,支持 HTTPS、SSL,保护传输的数据完整性和隐私性。
**4)并发性**
Java 在多线程方面做得非常突出,只要操作系统支持,Java 中的线程就可以利用多个处理器,带来了更好的交互响应和实时行为。
“二哥,那 Java 还会继续流行下去吗?”三妹眨了眨她的长睫毛,对我说。
“当然。”我斩钉截铁地回答到。
**大数据领域:**
与 Python 一样,Java 在大数据领域占据着主导地位,很多用于处理大规模数据的框架都是基于 Java 开发的。
- Apache Hadoop,用于在分布式环境中处理大规模数据集。Hadoop 采用了主副架构模式,其中主节点负责控制整个分布式计算栈。Hadoop 在需要处理和分析大规模数据的公司当中很流行。
- Apache Spark,大型的 ETL(数据仓库技术)、预测分析和报表程序经常使用到 Spark。
- Apache Mahout,用于机器学习,比如分类、聚类和推荐。
- JFreechart,用于可视化数据,可以用它制作各种图表,比如饼图、柱状图、线图、散点图、盒状图、直方图等等。
- Deeplearning4j,用于构建各种类型的神经网络,可以与 Spark 集成,运行在 GPU(图形处理器)上。
- Apache Storm,用于处理实时数据流,一个 Storm 节点可以在秒级处理数百万个作业。
**物联网(IoT)领域:**
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/overview/three-02.png)
Oracle 表示,灵活性和流行度是 IoT 程序员选择 Java 的主要原因。Java 提供了大量的 API 库,可以很容易应用到嵌入式应用程序中。相比其他编程语言,比如 C 语言,Java 在切换平台时更加顺畅,不容易出错。
**金融服务领域:**
- 聊天机器人,由于可移植性、可维护性、可视化等诸多方面的因素,Java 成了开发聊天机器人最好的工具。
- 欺诈检测和管理,银行和金融公司使用 AI(人工智能)工具来进行金融欺诈和信用卡欺诈检测,而 Java 常用来开发这些 AI 工具。
- 交易系统,Java 虚拟机提供的动态运行时编译优化在很多情况下比编译型语言(如 C++)具有更好的性能,让交易系统运行得更顺畅。
- 移动钱包,基于 AI 和 Java 算法开发的移动钱包,可以帮助用户在花钱时做出更智能的决策。
**Web 领域:**
Java 技术对 Web 领域的发展注入了强大的动力,主流的 Java Web 开发框架有很多:
- Spring 框架,一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,渗透了 Java EE 技术的方方面面,绝大部分 Java 应用都可以从 Spring 框架中受益。
- Spring MVC 框架,是一种基于 Java 实现的 MVC(Model-View-Controller)设计模式的请求驱动类型的轻量级 Web 框架。
- MyBatis 框架,一个优秀的数据持久层框架,可在实体类和 SQL 语句之间建立映射关系,是一种半自动化的 ORM(Object Relational Mapping,对象关系映射)实现。
- JavaServer Faces 框架,由 Oracle 开发,能够将表示层与应用程序代码轻松连接,它提供了一个 API 集,用于表示和管理 UI 组件。
总之,Oracle 宣称,Java 正运行在 97% 的企业计算机上——有点厉害的样子。
![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/xingbiaogongzhonghao.png)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册