第 1 章 入门介绍

第 1 章 入门介绍

1.1 目标读者

如书名所示,本书针对的是在商业环境中使用Java的人士。根据我的个人经验,学习Java体系几乎和学习Java语言一样困难。对经验丰富的程序员来说,相比于学习Java体系,学习Java语言可能没什么难度。虽然学习Java语言有大量工具可利用,但是介绍Java体系的资源并不多。本书旨在介绍编写专业Java软件所需的各种框架、工具和库。

不管你是刚毕业,还是自学过编程,只要你想进入这个领域,本书都能为你提供大量实用知识,招聘主管会很看重你是否具备这些知识。实际工作中,你可能根本不需要写什么排序算法,但你肯定会遇到使用Hibernate实现持久化的Spring MVC Web应用。另一方面,如果你已经是一名专业开发者,并且理解了相关概念,那你更有可能问自己:“Java是如何实现……的?”

本书教授Java基础知识!阅读本书需要了解Java标准类库。如果你确实需要从头学习Java,建议你首先阅读Head First Java,然后再阅读一本比较新的深入讲解Java 8的书。

如果你准备好学习如何开发企业级Java应用了,那就开始吧!

1.2 如何使用本书

本书每章都会讲一个一般性概念,而且在某种程度上,各章相互依赖。所以,如果你有时间,建议从头到尾阅读本书。不过,如果你时间有限,可以只阅读感兴趣的章节。

文字解释的效果有限,所以本书会着重于代码呈现。相关代码都在正文中给出了,但简洁起见,省略了一些样板代码。访问本书中文版页面(http://www.ituring.com.cn/book/2438),可以找到完整的项目代码1

1你也可提交中文版勘误。——编者注

示例代码形式如下。

OrderService.java

27     public void save(Order order) {
28         try(Session session = sessionFactory.openSession()) {
29             Transaction tx = session.beginTransaction();
30             session.persist(order);
31             tx.commit();
32         } // Session自动关闭
33     }

其他用于讨论或演示的代码形式如下。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

本书篇幅不大,我们不会详细讲解任何工具。很多情况下,已有专门的图书详细讲解了某个工具。本书旨在简要介绍一些工具及其基本用法。如果你想学习更多相关内容,请进一步阅读每章后面的参考资源。

阅读本书过程中,你会见到如下标志。

 这到底是什么?

框架开发者喜欢用一些花哨的词描述其工具。比如,“Apache Maven是一个软件项目管理和理解工具”就很不容易理解。阅读这些部分,你可以快速了解某个工具的具体用途。

 

 Java疣

Java是一门比较老的语言,向后兼容性较好。所以目前还存在许多过时的用法和大量废弃的标准库,本书称其为“Java疣”。

 

 落后警告

这是一个警告,提醒你注意在遗留系统中可能遇到的一些东西。你应该尽量避免在新项目中使用这些东西。

 

 超前警告

这与上一个标志正好相反。它提醒你注意Java中一些新引入的“东西”,它们可能尚未被广泛采用。这不一定是坏事,只是提醒你注意。

 

 更多内容

这里给出了更多相关信息,以补充正文中提到的内容。它们并不是特别重要,但是如果你感兴趣,可以把它作为延伸阅读。

1.3 搭建环境

1.3.1 安装Java

安装Java的方法有很多种,请根据你所用的操作系统和个人喜好来选择。

  Homebrew(macOS):brew cask install java

  Chocolatey(Windows):choco install jdk9

  Apt-Get(Linux):sudo apt-get install default-jdk

  SDKMAN!(类Unix):sdk install java

官方安装方法:访问Oracle官网,根据相关提示进行安装。请确保安装的是JDK而非JRE。如果你选择了这种安装方法,请务必认真阅读Oracle JDK的许可协议(相关内容见下一章)。

这些工具会把Java放到你的PATH变量中。为了确认这一点,可在命令行中输入java -version,输出信息如下所示。

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

此外,你可能还需设置JAVA_HOME环境变量,许多使用Java的工具都会首先查看它。你也可以在一台机器上安装多个Java版本,只需把JAVA_HOME指向主版本即可,这在测试Java新版本时很有用。

1.3.2 集成开发环境

常用的Java集成开发环境(IDE)有三种,分别为Eclipse、IntelliJ和Netbeans。我青睐IntelliJ,因为它的功能集丰富,并且集成了大量开发框架。不过,这三者之中,只有IntelliJ推出了付费版。它的免费社区版也不错,我家中计算机安装的就是社区版。对于工作项目,强烈建议使用付费旗舰版。

有些公司为了定制的插件和设置,明确要求开发者使用特定的IDE开发环境,实为多此一举。因为从技术上讲,在命令行中可以编译任何Java代码,所以开发者选用哪款IDE编写代码其实无所谓。

目录

  • 版权声明
  • 引言
  • 第 1 章 入门介绍
  • 第 2 章 Java虚拟机
  • 第 3 章 构建工具
  • 第 4 章 测试
  • 第 5 章 Spring
  • 第 6 章 Web应用程序框架
  • 第 7 章 Web应用程序部署
  • 第 8 章 使用数据库
  • 第 9 章 日志
  • 第 10 章 有用的第三方库
  • 附录 A Docker