java官网教程(基础篇)—— 新手入门

新手入门

Java技术的介绍,以及安装Java开发软件和使用它创建一个简单程序的课程。

本教程提供了关于开始使用Java编程语言所需了解的一切。

Java 技术现象

提供Java技术的整体概述。它讨论了Java编程语言和平台,提供这个技术可以做什么以及它将如何使您的生活更轻松的广泛概述。

谈论Java技术似乎无处不在,但它到底是什么?下面的部分将解释Java技术如何既是一种编程语言又是一种平台,并概述这种技术可以为您做什么。

关于Java技术

Java技术既是一种编程语言,也是一种平台。

Java编程语言

Java编程语言是一种高级语言,可以用以下所有流行词来描述它:
在这里插入图片描述
前面的每个术语都在James Gosling和Henry McGilton的白皮书《Java语言环境》中进行了解释。

在Java编程语言中,所有源代码首先以 .Java扩展名结尾的纯文本文件编写。然后这些源文件被javac编译器编译成 .class文件。一个.class文件不包含你的处理器本身的代码;它包含字节码——Java虚拟机 (Java VM)的机器语言。java启动器工具然后用java虚拟机的实例运行您的应用程序。
在这里插入图片描述
因为Java VM可在许多不同的操作系统上使用,所以相同的.class文件能够在Microsoft Windows、Solaris™操作系统(Solaris OS)、Linux或Mac OS上运行。一些虚拟机,如Java SE HotSpot at a Glance,在运行时执行额外的步骤,以提高应用程序的性能。这包括各种任务,如查找性能瓶颈和重新编译(到本地代码)经常使用的代码段。
在这里插入图片描述
Java平台

平台是程序运行的硬件或软件环境。我们已经提到了一些最流行的平台,如Microsoft Windows、Linux、Solaris OS和Mac OS。大多数平台都可以被描述为操作系统和底层硬件的组合。Java平台与大多数其他平台的不同之处在于,它是一个仅在其他基于硬件的平台上运行的软件平台。

Java平台有两个组件:

  • Java虚拟机
  • Java应用程序编程接口

你已经介绍过Java虚拟机;它是Java平台的基础,可以移植到各种基于硬件的平台上。

API是一个现成软件组件的大集合,提供了许多有用的功能。它被分组到相关类和接口的库中;这些库称为包。下一节,Java技术能做什么?突出了API提供的一些功能。
在这里插入图片描述
作为独立于平台的环境,Java平台可能比本机代码稍慢一些。然而,编译器和虚拟机技术的进步正在使性能接近本机代码,而不会威胁到可移植性。

Java技术能做什么?

通用的高级Java编程语言是一种功能强大的软件平台。Java平台的每个完整实现都提供了以下特性:

  • 开发工具:开发工具提供编译、运行、监视、调试和记录应用程序所需的一切。作为一名新开发人员,您将使用的主要工具是javac编译器、java启动器和javadoc文档工具。
  • 应用程序编程接口(API):API提供Java编程语言的核心功能。它提供了大量有用的类,可以在您自己的应用程序中使用。它涵盖了从基本对象到网络和安全,再到XML生成和数据库访问等方方面面。核心API非常大;要获得它所包含内容的概述,请参阅Java平台标准版8文档
  • 部署技术:JDK软件提供了标准的机制,比如Java Web Start软件和Java插件软件,用于将应用程序部署到最终用户。
  • 用户界面工具包:JavaFX、Swing和Java 2D工具包使创建复杂的图形用户界面(gui)成为可能。
  • 集成库:诸如Java IDL API、JDBC API、Java命名和目录接口(JNDI) API、Java RMI和通过Internet Inter-ORB协议技术的Java远程方法调用(Java RMI- iiop技术)的集成库支持数据库访问和远程对象操作。

Java技术将如何改变我的生活?

如果您学习了Java编程语言,我们不能承诺给您名望、财富,甚至一份工作。尽管如此,它仍然可能使您的程序更好,并且比其他语言花费更少的精力。我们相信Java技术将帮助您完成以下工作:

  • 简单易学:尽管Java编程语言是一种强大的面向对象语言,但它很容易学习,特别是对于已经熟悉C或c++的程序员来说。
  • 编写更少的代码:比较程序指标(类计数、方法计数等)表明,用Java编程语言编写的程序可以比用c++编写的程序小四倍。
  • 编写更好的代码:Java编程语言鼓励良好的编码实践,自动垃圾收集可以帮助您避免内存泄漏。它的面向对象、它的javabean™组件体系结构,以及它广泛的、易于扩展的API,让您可以重用现有的、经过测试的代码,并引入更少的bug。
  • 更快地开发程序:Java编程语言比c++简单,因此,在用它编写程序时,开发时间可能要快两倍。您的程序还将需要更少的代码行。
  • 避免平台依赖:你可以通过避免使用其他语言编写的库来保持你的程序的可移植性。
  • 编写一次,在任何地方运行:因为用Java编程语言编写的应用程序被编译成与机器无关的字节码,所以它们在任何Java平台上都能一致地运行。
  • 更容易地分发软件:使用Java Web Start软件,用户只需单击鼠标就可以启动应用程序。启动时的自动版本检查可以确保用户始终使用最新的软件版本。如果有更新可用,Java Web Start软件将自动更新它们的安装。

“Hello World !”应用程序

这种实际操作方法描述了创建简单的“Hello World!”应用程序需要下载、安装和输入的内容。它为NetBeans™集成开发环境(NetBeans IDE)、Microsoft Windows、Solaris™操作系统(Solaris OS)、Linux和Mac用户提供了单独的指令。

下面列出的部分提供了编译和运行简单的“Hello World!”应用程序的详细说明。第一部分提供了关于如何开始使用NetBeans IDE的信息,这是一个集成开发环境,可以极大地简化软件开发过程。NetBeans IDE可以在下面列出的所有平台上运行。其余部分提供了在没有集成开发环境的情况下入门的特定于平台的说明。如果遇到问题,一定要参考常见问题部分;它为新用户遇到的许多问题提供了解决方案。

“Hello World!” for the NetBeans IDE

“Hello World!” for the NetBeans IDE(不多介绍因为我不用这个IDE):这些说明是针对NetBeans IDE的用户的。NetBeans IDE运行在Java平台上,这意味着您可以在任何有JDK 7可用的操作系统上使用它。些操作系统包括Microsoft Windows、Solaris OS、Linux和Mac OS x。我们建议尽可能使用NetBeans IDE而不是命令行。

“Hello World!” for Microsoft Windows

现在是编写第一个应用程序的时候了!以下说明适用于Windows Vista、Windows的用户。

如果您在本页的说明中遇到问题,请参考常见问题(及其解决方案)

清单

要编写你的第一个程序,你需要:

  1. Java SE开发工具包8 (JDK 8):你现在就可以下载Windows版本。(请确保下载的是JDK,而不是JRE。)请参考安装说明
  2. 一个文本编辑器:在本例中,我们将使用Notepad,这是Windows平台中包含的一个简单编辑器。如果使用不同的文本编辑器,您可以很容易地修改这些说明。

这两项是编写第一个应用程序所需的全部内容。


创建第一个应用程序

您的第一个应用程序HelloWorldApp将只显示问候语“Hello world!”。要创建这个程序,你需要:

  • 创建源文件
    源文件包含用Java编程语言编写的代码,您和其他程序员都能理解这些代码。您可以使用任何文本编辑器来创建和编辑源文件。
  • 将源文件编译成一个.class文件
    Java编程语言编译器(javac)获取源文件并将其文本翻译成Java虚拟机可以理解的指令。这个文件中包含的指令称为字节码。
  • 运行程序
    Java应用程序启动工具(Java)使用Java虚拟机运行应用程序。

创建源文件

要创建一个源文件,你有两个选项:

  • 您可以将HelloWorldApp.java文件保存在您的计算机上,从而避免大量输入。然后,你可以直接将源文件编译成一个.class文件。
  • 或者,您可以使用以下(更长的)说明。

首先,启动编辑器。您可以从“开始”菜单中通过选择“程序>附件>记事本”启动记事本编辑器。在一个新文档中,输入以下代码:

/**
 * The HelloWorldApp class implements an application that
 * simply prints "Hello World!" to standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

打字时要小心却别大写的A和a


注意:按所示键入所有代码、命令和文件名。编译器(javac)和启动器(java)都是区分大小写的,因此必须一致地大写。

HelloWorldApp和helloworldapp不一样。

将代码保存在一个名为HelloWorldApp.java的文件中。要在记事本中做到这一点,首先选择文件>另存为…菜单项。然后,在另存为对话框中:

  1. 使用Save in组合框,指定保存文件的文件夹(目录)。在本例中,目录为C驱动器上的myapplication文件夹。
  2. 在“文件名”文本框中,输入“HelloWorldApp.java”,不要带引号。
  3. 从“另存为类型”组合框中,选择“文本文档(*.txt)”。
  4. “编码”组合框中,保留编码为ANSI。

完成后,对话框应该如下所示。
在这里插入图片描述
现在单击保存,并退出记事本。

将源文件编译成一个.class文件

调出一个shell或“命令”窗口。你可以在开始菜单中选择运行…然后输入cmd。shell窗口应该类似于下图。
在这里插入图片描述
提示符显示当前目录。当打开提示符时,当前目录通常是Windows XP的主目录(如上图所示)。

要编译源文件,请将当前目录更改为文件所在的目录。例如,如果您的源目录是C驱动器上的myapplication,那么在提示符处键入以下命令并按下:

cd C:\myapplication

现在提示符应该改为C:\myapplication>。


注意:

要更改到另一个驱动器上的目录,必须输入一个额外的命令:驱动器的名称。例如,要切换到D盘的myapplication目录,必须输入D:,如下所示:

C:\>D:
D:\>cd myapplication
D:\myapplication>

如果你在提示符处输入dir,你应该会看到你的源文件,如下所示:
在这里插入图片描述
现在可以编译了。在提示符处,键入以下命令并按Enter键。

javac HelloWorldApp.java

编译器生成了一个字节码文件HelloWorldApp.class。在提示符下,输入dir来查看新生成的文件,如下所示:
在这里插入图片描述
现在有了.class文件,就可以运行程序了。

如果您在此步骤的说明中遇到问题,请咨询常见问题(及其解决方案)

运行程序

在同一目录下,在提示符下输入如下命令:

java -cp . HelloWorldApp

您应该会在屏幕上看到以下内容:

C:\myapplication>java -cp . HelloWorldApp
Hello World!

C:\myapplication>

恭喜你!程序工作!

如果您在此步骤的说明中遇到问题,请咨询常见问题(及其解决方案)

“Hello World!” for Solaris OS, Linux, and Mac OS X

“Hello World!” for Solaris OS, Linux, and Mac OS X(不过多介绍,因为我用window):这些命令行说明适用于Solaris OS、Linux和Mac OS X的用户。常见问题(及其解决方案)如果您在编译或运行应用程序时遇到问题,请参阅此页面。

近距离观察“Hello World!”

讨论“Hello World!”应用程序,详细描述每一段代码。它涵盖了源代码注释、HelloWorldApp类定义块和主方法。

现在您已经看到了“Hello World!”应用程序(甚至可能编译并运行了它),您可能想知道它是如何工作的。它的代码如下:

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

“HelloWorld !”应用程序由三个主要组件组成:源代码注释、HelloWorldApp类定义和主方法。下面的解释将使您对代码有一个基本的理解,但是更深层次的含义只有在您阅读完本教程的其余部分之后才会显现出来。

源代码注释

下面的灰体文本定义了“Hello World!”应用程序的注释:

/**
 * The HelloWorldApp class implements an application that
 * simply prints "Hello World!" to standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

注释被编译器忽略,但对其他程序员很有用。Java编程语言支持三种注释:

  1. /* text */:编译器忽略从/* 到 */的所有内容。
  2. /** documentation */:这表示文档注释(简称为doc注释)。编译器会忽略这类注释,就像忽略使用/*和*/的注释一样。javadoc工具在准备自动生成的文档时使用文档注释。有关javadoc的更多信息,请参阅javadoc™工具文档
  3. // text:编译器忽略从//到行尾的所有内容。

HelloWorldApp类定义

下面从class HelloWorldApp开始了“Hello World!”应用程序的类定义块:

/**
 * The HelloWorldApp class implements an application that
 * simply displays "Hello World!" to the standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

如上所示,类定义的最基本形式是:

class name {
    . . .
}

关键字class开始一个命名类的类定义,每个类的代码出现在以类名开始和大括号结束之间。现在,只要知道每个应用程序都以类定义开始就足够了。

main方法

下面的文本从public static void main(String[] args) {开始了main方法的定义:

/**
 * The HelloWorldApp class implements an application that
 * simply displays "Hello World!" to the standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); //Display the string.
    }
}

在Java编程语言中,每个应用程序必须包含一个main方法,其签名为:

public static void main(String[] args)

修饰符public和static可以按顺序编写(public static或static public),但约定是如上所示使用public static。你可以命名任何你想要的参数,但大多数程序员选择“args”或“argv”。

main方法类似于C和c++中的main函数;它是应用程序的入口点,随后将调用程序所需的所有其他方法。

main方法只接受一个参数:String类型的元素数组。

public static void main(String[] args)

这个数组是运行时系统向应用程序传递信息的机制。例如:

java MyApp arg1 arg2

数组中的每个字符串都被称为命令行参数。命令行参数允许用户在不重新编译应用程序的情况下影响应用程序的操作。例如,排序程序可能允许用户通过命令行参数指定数据按降序排序:

-descending

“Hello World!”应用程序忽略它的命令行参数,但是您应该知道这样的参数确实存在。

最后,一行:

System.out.println("Hello World!");

使用核心库中的System类将“Hello World!”消息打印到标准输出。这个库的某些部分(也称为“应用程序编程接口”或“API”)将在本教程的其余部分中进行讨论。

常见问题(及其解决方案)

如果您在编译或运行本路径中的程序时遇到困难,就可以使用此方法。

不过多介绍,有需要在看文档。常见问题(及其解决方案)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值