3、Java 编程入门

Java 编程入门

1、Hello World

JDK和环境变量配置完成,我们来进行我们第一个代码实现吧。“Hello World”的源程序实现(通过记事本或者Editplus来编写):

  • 创建一个程序的保存目录:D:\study_java
  • 创建一个Hello.java的文件,文件后缀必须为:*.java
public class Hello{
    public static void main(String[] args){
        System.out.println(Hello World);
    }
}

所有的Java源程序要想执行,可以采用如下的步骤完成:

  • 对源代码进行编译:javac Hello.java,完成后会出现 Hello.class 字节码文件,利用JVM进行编译,编译出一套与平台无关的字节码文件(*.class)
  • 在JVM上执行字节码文件:java Hello(后面没有任何的后缀,但是执行的是 “*.class” 文件)

为了更加方便的理解java程序的主要结构,下面针对第一个程序进行完整的解释:

1、在java程序开发之中最基础的单元是类,所有的程序都必须封装在类中执行,而类的基本定义语法如下:

[public] class 类名称 {}

在本程序之中定义的类名称为:“Hello”,而类的定义有两种形式:

  • public class 类名称 {}:类名称必须与文件名称保持一致,一个*.java文件里面只允许有一个 public class 定义
  • class 类型名 {}:类名称可以与文件名称不一致,但是编译后生成的 *.class 文件的名称就是类名称的定义。一个 *.java 源程序可以定义有多个 class 类,并且编译之后会形成不同的 *.class 文件

提示:关于以后源代码定义问题

  1. 在以后进行项目开发的时候,很少会出现一个 *.java 源代码里面定义有多个 class 的情况,所以对于以后的开发而言,一个 *.java 文件里面就定义有一个 public class 类就够了。但是在整个课程学习中如果定义多个文件会产生混乱,所以初期会在一个 *.java 文件中定义有多个类方便学习
  2. Java语言有着明确的命名要求,以后定义类名称的时候要求每一个单词的首字母必须大写,例如:HelloWorld、TestDemo等,才算标准。

2、主方法:主方法是所有程序执行的起点,并且一定要定义在类之中,Java的主方法定义:

[public] class 类名称 {
    public static void main(String[] args) {
        程序的代码由此开始执行
    }
}

Java的主方法名称定义非常的长,具体的解释在后续说明,现在我们简称主类,所有的主类都将采用 public class 来定义。

3、屏幕打印(系统输出)可以直接在命令行方式下进行内容的显示,有两类语法形式:

  • 输出之后追加换行:System.out.println(输出内容);
  • 输出之后不加换行:System.out.print(输出内容);
public class Hello{
    public static void main(String[] args){
        System.out.print("Hello World-A");
        System.out.println("Hello World-B");
        System.out.println("Hello World-C");
    }
}
// 输出内容
Hello World-AHello World-B
Hello World-C

2、JShell 工具

JShell是从JDK1.9之后提供有的一种交互式的变成环境(世界上许多的语言都有交互式变成,例如:Python、golang)在最初的时候Java并没有提供这样的工具,主要是因为其认为自己是一项专业的开发语言,不应该提供有如此简化的玩具模型。如果想使用JShell,直接打开命令行窗口输入 “jshell” 即可。

操作示例 1:启动jshell工具,在jshell中编写语句

C:\Users\lenovo>jshell
|  欢迎使用 JShell -- 版本 11.0.8
|  要大致了解该版本, 请键入: /help intro

jshell> 100+100
$1 ==> 200

jshell> 100+200
$2 ==> 300

jshell> System.out.print("Hello World");
Hello World
jshell> System.out.println("Hello World");
Hello World

jshell>

有时候可能需要编写很多代码,为了方便JShell提供有文件数据加载功能。定义一个文件:“D:\test.txt“,内容如下:

System.out.println("Hello World-A");
System.out.println("Hello World-B");

操作示例 2:在jshell之中读取此文件内容并执行

jshell> /open d:\test.txt
Hello World-A
Hello World-B

操作示例 3:退出交互式环境

jshell> /exit
|  再见

3、CLASSPATH 环境属性

如果要完整的对 CLASSPATH 进行解释需要好多的知识,所以我们本次只是对 CLASSPATH 概念做出一个先期的介绍。假设在 D: 目录下提供一个 Hello.class 的字节码文件;

假设当前用户所在的目录为“D:”,那么在这样的情况下可以直接使用 Java 命令进行 Hello.class 字节码文件的解释。但是如果说现在脱离了这个目录,将当前目录修改为了“C:”(C盘目录下并没有 Hello.class 字节码文件),如果再次执行程序解释,这个时候会出现如下的错误提示信息:

错误:找不到或无法加载主类 Hello
原因:java.lang.ClassNotFoundException: Hello

因为当前目录中没有字节码,那么现在的需求是:可以在不同的目录中都执行 D:\Hello.class 文件,在这样的处理要求下只能配置CLASSPATH环境属性完成

image

操作示例 1:定义CLASSPATH环境属性(CLASSPATH属于系统变量)

# 语法:SET CLASSPATH = 路径;...
SET CLASSPATH = D:\

当设置了 CLASSPATH 之后,这个时候在 Java 程序解释的时候会自动的通过 CLASSPATH 所设置的路径进行类的加载,所以可以得出一个结论:JVM 解释程序的时候需要得到 CLASSPATH 的支持。

但是这样做存在一个问题,一般情况下所有解释的类都是从当前所在的目录中加载的,所以可以得出一个结论:**CLASSPATH 可设置为默认从当前所在目录加载类文件。**如果到处设置 CLASSPATH 就会造成整个系统操作的混乱,那么从正常的角度来讲,对于 CLASSPATH 还是应该采用默认设置方式更为稳妥,只通过当前目录加载,可以将 CLASSPATH 设置为“.”。

操作示例 2:从当前所在路径加载类

SET CLASSPATH = .

在某些时候如果你安装一些与Java开发程序软件,它有可能会自动的修改默认的 CLASSPATH,也就是说这个“.”的配置会消失。这种情况下就必须利用命令自己重新设置回来。但是需要注意的是,现在的 CLASSPATH 是在一个命令行下的配置,如果该命令行关闭了,那么相关的属性配置也将消失。所以最好的做法是将其定义为全局属性,则可以直接在系统中追加一个属性信息。

面试题:PATH 和 CLASSPATH 有什么区别?

  1. PATH 和 CLASSPATH 都是操作系统中支持的环境属性
  2. PATH:是操作系统提供的路径配置,定义所有可执行程序的路径
  3. CLASSPATH:是由 JRE 提供的,是 JVM 执行时所需要的环境属性,用于定义类的加载路径,默认设置的为当前所在目录加载
  4. 总结出 Java 运行一个程序的逻辑关系为:JVM→CLASSPATH定义的路径→加载字节码文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值