7 Java 新手开发人员实用技巧

如果您刚开始接触 Java 编程,以下是您需要了解的七个基本技巧。
144 位读者喜欢这篇文章。
Getting started with Perlbrew

freephotocc via Pixabay CC0

Java 是一种通用的编程语言,几乎在每个涉及计算机的行业中都有应用。Java 最强大的功能在于它运行在 Java 虚拟机 (JVM) 中,JVM 是一种将 Java 代码转换为与您的操作系统兼容的字节码的层。只要您的操作系统存在 JVM,无论该操作系统是在服务器上(或者就此而言是无服务器),还是在台式机、笔记本电脑、移动设备或嵌入式设备上,Java 应用程序都可以在其上运行。

这使得 Java 成为程序员和用户的流行语言。程序员知道他们只需要编写一个版本的软件,就可以得到一个可以在任何平台上运行的应用程序,而用户知道应用程序可以在他们的计算机上运行,而无需考虑他们使用的操作系统。

许多语言和框架都是跨平台的,但没有一种能提供相同级别的抽象。使用 Java,您的目标是 JVM,而不是操作系统。对于程序员来说,当面对多个编程挑战时,这是阻力最小的路径,但只有当您知道如何编写 Java 程序时,它才有用。如果您刚开始接触 Java 编程,以下是您需要了解的七个基本技巧。

但首先,如果您不确定是否已安装 Java,您可以在终端(例如 BashPowerShell)中运行以下命令来查找

$ java --version
openjdk 12.0.2 2019-07-16
OpenJDK Runtime Environment 19.3 (build 12.0.2+9)
OpenJDK 64-Bit Server VM 19.3 (build 12.0.2+9, mixed mode, sharing)

如果您收到错误或没有任何返回,那么您应该安装 Java 开发工具包 (JDK) 以开始 Java 开发。或者,如果您只需要运行 Java 应用程序,请安装 Java 运行时环境 (JRE)。

1. Java 包

在 Java 中,相关的类被分组到一个中。当您下载 JDK 时获得的基本 Java 库被分组到以 javajavax 开头的包中。包的功能类似于计算机上的文件夹:它们为相关元素提供结构和定义(在编程术语中,称为命名空间)。可以从独立的程序员、开源项目和商业供应商处获得额外的包,就像可以为任何编程语言获得库一样。

当您编写 Java 程序时,您应该在代码顶部声明一个包名。如果您只是编写一个简单的应用程序来开始使用 Java,您的包名可以像您的项目名称一样简单。如果您使用 Java 集成开发环境 (IDE),如 Eclipse,它会在您启动新项目时为您生成一个合理的包名。

package helloworld;

/**
 * @author seth
 * An application written in Java.
 */

否则,您可以通过查看包的路径相对于项目的广泛定义来确定包的名称。例如,如果您正在编写一组类来辅助游戏开发,并且该集合名为 jgamer,那么您可能在其中有几个独特的类。

package jgamer.avatar;

/**
 * @author seth
 * An imaginary game library.
 */

您包的顶层是 jgamer,它内部的每个包都是后代,例如 jgamer.avatarjgamer.score 等等。在您的文件系统中,结构反映了这一点,jgamer 是包含文件 avatar.javascore.java 的顶层目录。

2. Java 导入

作为一名多语言程序员,您最有趣的体验之一是尝试跟踪您是在哪种编程语言中includeimportuserequire 还是 其他术语 来引用库。记录一下,Java 在导入代码所需的库时使用 import 关键字。

package helloworld;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 * @author seth
 * A GUI hello world.
 */

导入的工作原理基于环境的 Java 路径。如果 Java 不知道 Java 库存储在系统上的哪个位置,则导入将无法成功。只要库存储在系统的 Java 路径中,导入就可以成功,并且可以使用库来构建和运行 Java 应用程序。

如果库预计不会在 Java 路径中(例如,因为您自己编写库),则可以将库与您的应用程序捆绑在一起(在许可证允许的情况下),以便导入按预期工作。

3. Java 类

Java 类使用关键字 public class 以及与其文件名镜像的唯一类名来声明。例如,在项目 helloworld 的文件 Hello.java

package helloworld;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 * @author seth
 * A GUI hello world.
 */

public class Hello {
	// this is an empty class
}

您可以在类中声明变量和函数。在 Java 中,类中的变量称为字段

4. Java 方法

Java 方法本质上是对象内的函数。它们被定义为 public(意味着可以被任何其他类访问)或 private(限制其使用),基于预期的返回数据类型,例如 voidintfloat 等等。

    public void helloPrompt(ActionEvent event) {
        String salutation = "Hello %s";
 
        string helloMessage = "World";
        message = String.format(salutation, helloMessage); 
        JOptionPane.showMessageDialog(this, message);
    }
 
    private int someNumber (x) {
        return x*2;
    }

当直接调用方法时,它通过其类和方法名称引用。例如,Hello.someNumber 引用 Hello 类中的 someNumber 方法。

5. 静态 (Static)

Java 中的 static 关键字使代码中的成员可以独立于包含它的对象进行访问。

在面向对象编程中,您编写的代码充当“对象”的模板,这些“对象”在应用程序运行时生成。例如,您不编写特定的窗口,而是基于 Java 中的窗口类(并由您的代码修改)的窗口实例。由于您编写的任何内容在应用程序生成其实例之前都“不存在”,因此大多数方法和变量(甚至嵌套类)在创建它们所依赖的对象之前都无法使用。

但是,有时您需要在应用程序创建对象之前访问或使用对象中的数据(例如,应用程序无法生成红球,除非首先知道该球应该是红色的)。对于这些情况,可以使用 static 关键字。

6. Try 和 Catch

Java 非常擅长捕获错误,但只有在您告诉它该怎么做时,它才能优雅地恢复。在 Java 中尝试执行操作的级联层次结构以 try 开始,回退到 catch,并以 finally 结束。如果 try 子句失败,则调用 catch,最后,总是会有 finally 来执行一些明智的操作,而不管结果如何。这是一个例子

try {
	cmd = parser.parse(opt, args);	
	
	if(cmd.hasOption("help")) {
		HelpFormatter helper = new HelpFormatter();
		helper.printHelp("Hello <options>", opt);
		System.exit(0);
		}
	else {
		if(cmd.hasOption("shell") || cmd.hasOption("s")) {
		String target = cmd.getOptionValue("tgt");
		} // else
	} // fi
} catch (ParseException err) {
	System.out.println(err);
   	System.exit(1);
	} //catch
	finally {
		new Hello().helloWorld(opt);
	} //finally
} //try

这是一个健壮的系统,旨在避免不可恢复的错误,或者至少为您提供向用户提供有用反馈的选项。经常使用它,您的用户会感谢您的!

7. 运行 Java 应用程序

理论上,通常以 .java 结尾的 Java 文件可以使用 java 命令运行。但是,如果应用程序很复杂,那么运行单个文件是否会产生任何有意义的结果是另一个问题。

要直接运行 .java 文件

$ java ./Hello.java

通常,Java 应用程序以 Java 存档 (JAR) 文件形式分发,以 .jar 结尾。JAR 文件包含一个清单文件,指定主类、有关项目结构的一些元数据以及运行应用程序所需的所有代码部分。

要运行 JAR 文件,您可能可以双击其图标(取决于您如何设置操作系统),或者您可以从终端启动它

$ java -jar ./Hello.jar

Java 适合所有人

Java 是一种强大的语言,并且由于 OpenJDK 项目和其他倡议,它是一个开放规范,允许 IcedTeaDalvikKotlin 等项目蓬勃发展。学习 Java 是为在各种行业工作做好准备的好方法,更重要的是,有很多使用它的绝佳理由

接下来阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时进行。

3 条评论

这些是非常棒且有用的技巧。感谢分享。

不幸的是,Java 并没有完全像大家希望的那样成为无处不在的万能药。一个很大的缺点是 JAVA-ME。开发用于手机和平板电脑的 Java 应用程序的官方工具包仍然不是免费的,而且上次我看到它时也不便宜。曾经有 DALVIK,但现在已经消失了,我不知道有什么取代了它。我确实看到了一些关于 Android Studio 的信息,但在 Linux 上,这需要两个臃肿的桌面环境之一,以及大量的 RAM 来支持它。我的社会保障支票不够用,所以我无法尝试。是否有任何合理的选项来为 Android 开发 Java 应用程序?

合理的选择:是的。理性的选择:可能不是。

您可以下载 Android 工具(例如 adb)而无需 Android Studio。因此,您可以。使用特定于 Android 的库进行开发,然后将应用程序加载到手机上。您失去的是自动化的版本检查(“此功能是否适用于较旧的设备?”)以及环境易用性,而该环境知道您的目标平台。

您还可以查看 https://processing.org 上的 Processing 项目 - 它是 Java,并且具有导出到 Android 的功能,而且我记得它只需要 adb,而不需要完整的 Android Studio。

最后,还有完全其他的选择。例如,nativescript.org 上的 NativeScript 允许您在没有 Java 的情况下为手机和设备开发应用程序。

希望这有帮助!

回复 ,作者:Robert McConnell (未验证)

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.