第 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编写代码其实无所谓。