如果你才刚开始学习 Java 编程,这里有七个你须要晓得的基础知识。
Java 是一个多功能的编程语言,在某种程度上,它用在简直所有可能波及计算机的行业了里。Java 的最大劣势是,它运行在一个 Java 虚拟机(JVM)中,这是一个翻译 Java 代码为与操作系统兼容的字节码的层。
只有有 JVM 存在于你的操作系统上 —— 不论这个操作系统是在一个服务器(或“无服务器”,也是同样的)、桌面电脑、笔记本电脑、挪动设施,或嵌入式设施 —— 那么,Java 应用程序就能够运行在它下面。
这使得 Java 成为程序员和用户的一种风行语言。程序员晓得,他们只须要写一个软件版本就能最终失去一个能够运行在任何平台上的应用程序;用户晓得,应用程序能够运行在他们的计算机上,而不必管他们应用的是什么样的操作系统。
很多语言和框架是跨平台的,然而没有实现同样的形象层。应用 Java,你针对的是 JVM,而不是操作系统。对于程序员,当面对一些编程难题时,这是阻力最小的线路,然而它仅在当你晓得如何编程 Java 时有用。如果你刚开始学习 Java 编程,这里有你须要晓得的七个根底的提醒。
另外,上面的这个仓库也不错,包含了许多 Java 教程及示例代码:https://github.com/javastacks…
然而,首先,如果你不确定是否你装置了 Java,你能够在一个终端(例如 Bash 或 PowerShell)中找进去,通过运行:
$ 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 运行时环境(JRE),如果你只是须要来运行 Java 应用程序。
1、Java 软件包
在 Java 语言中,相干的类被分组到一个 软件包 中。当你下载 JDK 时所取得的 Java 根底库将被分组到以 java
或 javax
结尾的软件包中。软件包提供一种相似于计算机上的文件夹的性能:它们为相干的元素提供构造和定义(以编程术语说,命名空间)。额定的软件包能够从独立开发者、开源我的项目和商业供应商取得,就像能够为任何编程语言取得库一样。
当你写一个 Java 程序时,你应该在你的代码是顶部申明一个软件包名称。如果你只是编写一个简略的应用程序来入门 Java,你的软件包名称能够简略地用你的项目名称。如果你正在应用一个 Java 集成开发环境,如 Eclipse,当你启动一个新的我的项目时,它为你生成一个合乎情理的软件包名称。
package helloworld;
/**
* @author seth
* An application written in Java.
*/
除此之外,你能够通过查找它绝对于你的我的项目整体的门路来确定你的软件包名称。例如,如果你正在写一组类来帮忙游戏开发,并且该汇合被称为 jgamer
,那么你可能在其中有一些惟一的类。
package jgamer.avatar;
/**
* @author seth
* An imaginary game library.
*/
你的软件包的顶层是 jgamer
,并且在其外部中每个软件包都是一个独立的派生物,例如 jgamer.avatar
和 jgamer.score
等等。在你的文件系统里,其目录构造反映了这一点,jgamer
是蕴含文件 avatar.java
和 score.java
的顶级目录。
2、Java 导入
作为一名精通多种语言的程序员,最大的乐趣是找出是否用 include
、import
、use
、require
,或一些其它术语来引入你不论应用何种编程语言编写的库。在 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 的办法实质上是对象中的函数。基于预期返回的数据类型(例如 void
、int
、float
等等),它们被定义为 public
(意味着它们能够被任何其它类拜访)或 private
(限度它们的应用)。
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 我的项目及其它的致力,它是一种开放式标准,容许像 IcedTea、Dalvik 和 Kotlin 我的项目的茁壮成长。学习 Java 是一种筹备在各种行业中工作的好办法,而且,应用 Java 的理由很多。另外,微信搜寻 Java 技术栈,在后盾回复:面试,能够获取我整顿的 Java 系列面试题和答案,十分齐全。
作者:Seth Kenlon
原文:https://opensource.com/articl…
选题:lujun9972 译者:robsean 校对:wxy
译文:https://linux.cn/article-1162…
近期热文举荐:
1.1,000+ 道 Java 面试题及答案整顿(2022 最新版)
2. 劲爆!Java 协程要来了。。。
3.Spring Boot 2.x 教程,太全了!
4.Spring Boot 2.6 正式公布,一大波新个性。。
5.《Java 开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞 + 转发哦!