阿里云大学:Java语言基础1(课时6-10)
学习视频地址:https://edu.aliyun.com/roadmap/java
课时6(Java编程起步)
几乎所有语言的第一个程序都是“Hello World”,因为最初C语言出现的第一个程序编写的就是“你好,世界!”,如果要定义Java程序,那么肯定要通过记事本来进行编写,所有Java程序的后缀都是*.java程序,建立一个目录保存所有的程序源代码,建立一个“Hello.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
//解释的就是字节码文件,字节码文件的后缀是不需要编写的;
为了更加方便的理解Java程序的主要结构,下面针对于第一个程序进行完整的解释:
1.在Java程序开发之中最基础的单元是类,所有的程序都必须封装在类中执行,而类的基本定义语法如下:
[public] class类名称{}
在本程序之中定义的类名称为“Hello”,而类的定义有两种形式:
·“public class 类名称{}”:类名称必须与文件名称保持一致
·“class 类名称{}”:类名称可以与文件名称不一致,但是编译后*.class名称是class定义的类名称,解析的时候要求解析的是生成的*.class文件名称,在一个*.java文件里面可以有多个class定义,并且编译之后会形成不同的*.class文件;
提示:关于以后源代码定义问题
·在以后进行项目开发的时候,很少会出现一个*.java源代码里面定义有多个class的情况,所以对于以后的开发而言,一个*.java文件里面就定义一个public class类就够。
·Java语言有着明确的命名要求,以后定义类名称的时候要求每一个单词的首字母必须大写,例如:HelloWorld、TestDemo等,才算是标准。
2.主方法:主方法是所有程序执行的起点,并且一定要定义在类之中,Java的主方法定义:
[public] class类名称{
public static void main(String args[]){
程序的代码由此开始执行
}
}
Java的主方法名称定义非常的长,具体的解释在后续会有所说明。
3.屏幕打印(系统输出)
可以直接在命令行方式下进行内容的显示,有两类语法形式:
·输出之后追加换行:System.out.println(输出内容);
·输出之后不追加换行:System.out.print(输出内容);
对于输出语法在后面还会对其做进一步的说明。
课时7(JShell工具)
Shell是脚本程序的含义,在很多的编程语言里面为了方便使用者进行代码的开发,都会有Shell交互式编程环境。有些时候可能只是为了进行一些简短的程序验证,但是在Java里面就必须编写很多的结构代码才可以实现,所以为了解决这样的困惑,提供有JShell指令,直接运行即可。
除了可以直接在JShell命令之中进行程序的编写之外,也可以将一些内容直接交由一些文件来进行保存。
范例:定义一个程序文件:E:\mldn.txt;
System.out.println("Hello World!");
System.out.println("www.mldn.cn");
希望可以直接在JShell里面执行本程序。
/open E:\mldn.txt
现在可以发现就只需要编写核心结构的代码即可,减少了对于结构化的需求,如果要发现不使用了,则可以使用“/exit”进行交互式的界面退出。
课时8(CLASSPATH环境属性)
CLASSPATH如果要完整的进行解释需要好多的知识,所以本次知识对CLASSPATH的概念做出一个先期的介绍。例如:假设在D:\mldnjava目录下提供有一个Hello.class的字节码文件:
假设说当前用户所在的目录为D:\mldnjava,那么在这样的情况下可以直接使用Java命令进行Hello.class字节码文件的解释。但是如果说现在脱离了这个目录,将当前目录修改了为C:\(C盘目录下并没有Hello.class字节码文件)。如果再次执行程序解释,这个时候会出现如下的错误信息:
错误:找不到或无法加载主类Hello
原因:java.lang.ClassNotFoundException:Hello
因为当前目录中没有字节码,那么现在的需求就是:可以在不同的目录中都执行D:\mldnjava\Hello.class文件。所以在这样的处理要求下就只能依靠CLASSPATH环境属性来完成。
范例:定义CLASSPATH环境属性
SET CLASSPATH=D:\mldnjava
当设置了CLASSPATH之后,这个时候在Java程序解释的时候会自动的通过CLASSPATH所设置的路径进行类的加载,所以可以得出一个结论:JVM解释程序的时候需要得到CLASSPATH的支持。
但是有一个问题了,发现默认情况下所有解释的类都是从当前所在的目录中加载的,所以可以得出一个结论:CLASSPATH的默认设置为当前所在目录加载类文件。很明显如果到处去设置CLASSPATH就会造成整个系统操作的混乱,那么从正常的角度来讲,对于CLASSPATH还是应该采用默认设置方式,所以如果这个时候要想只通过当前目录加载,则可以将CLASSPATH设置为“.”。
范例:从当前所在路径加载类
SET CLASSPATH=.
在一些时候如果你安装了一些与Java开发的程序软件的时候,它有可能会自动的修改默认的CLASSPATH,也就是说这个“.”的配置会消失。这种情况下就必须利用命令自己重新设置回来。
但是需要注意的是,现在的CLASSPATH是在一个命令行下的配置,如果该命令行关闭了,那么相关的属性设置也将消失,所以最好的做法是将其定义为全局属性,则可以直接在系统中追加有一个属性信息。
【计算机】→【高级系统设置】→【环境变量】→【用户变量】
【新建CLASSPATH】→【变量名:CLASSPATH、变量值:.】
面试题:请问PATH和CLASSPATH区别?
·PATH:是操作系统提供的路径配置,定义所有可执行程序的路径;
·CLASSPATH:是由JRE提供的,用于定义Java程序解释时类加载路径,默认设置的为当前所在目录加载,可以通过“SET CLASSPATH=路径”的命令形式来进行定义(JVM→CLASSPATH定义的路径→加载字节码文件)。
课时9(注释)
注释是程序开发之中的一项重要组成技术,合理的注释可以使得项目维护更加方便,但是现在很多的公司由于自身的技术管理不到位,很多的注释是不写的,所以就造成了人员更换时期的痛苦。
注释的本质在于,编译器在进行程序编译的时候如果发现有注释的内容将不对此部分进行编译处理,在Java语言里对于注释一共有三类形式:
·单行注释://;
·多行注释:/* …*/;
·文档注释:/** ….*/,文档注释里面还需要有很多的选项,一般建议通过开发工具控制。
范例:定义单行注释
public class Hello{
public static void main(String args[]){
//单行注释:下面的语句是进行一行提示信息的输出
System.out.println("Hello World!");
}
}
范例:定义多行注释
public class Hello{
public static void main(String args[]){
/*
单行注释:下面的语句是进行一行提示信息的输出
2020.7.12
*/
System.out.println("Hello World!");
}
}
如果在以后使用开发工具开发的时候,还是单行注释会比较方便一些,而对于一些重要的类或者方法都建议使用文档注释。
课时10(标识符与关键字)
在任何一个程序之中实际上都是一个结构的整合体,在Java语言里面有不同的结构,例如:类、方法、变量结构等,对于不同的结构一定要有不同的说明,那么对于结构的说明实际上就是标识符,是有命名要求的,但是一般都要求有意义的单词所组成,同时对于标识符的组成在Java之中的定义如下:由字母、数字、下划线、$所组成,其中不能使用数字开头,不能使用Java中的保留字(关键字)。一般对于“$”都有特殊的含义,不建议出现在自己所编写的代码上。
关键字是系统对于一些结构的描述处理,有着特殊的含义,例如:abstract、class等。对于关键字有一些简短的说明:
·JDK1.4的时候出现有assert关键字,用于异常处理上;
·JDK1.5的时候出现有enum关键字,用于枚举定义上;
·未使用到的关键字:goto、const;
·有一些属于特殊含义的单词,严格来讲不算是关键字:true、false、null。