您的位置:首页 > 编程语言 > Java开发

第3章 初识java开发 (阿里云大学在线视频0基础java10系列-编程入门)

2019-10-17 13:25 465 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Rithard/article/details/102604832

阿里云大学视频:零基础学Java10系列一:编程入门

课时7:java开发编程起步

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 类名称{}”:类名称必须与文件名称保持一致,一个*.java 文件里面只允许有一个public class定义.

·“class 类名称 {}”:类名称可以与文件名称不一致,但是编译后的*.class名称是class定义的类名称,解析的时候,要求解析的是生成的*.class 文件名称,在一个*.java文件里面可以有多个class定义,并且编译之后会形成不同的*.class文件;

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

·在以后进行项目开发的时候,很少会出现一个*.java源代码里面定义有多个class的情况,所以对于以后的开发而言,一个*.java文件里面就定义一个public class类就够了,但是在整个的课程讲解里面如果要是定义了多个文件会产生混乱,所以初期会在一个*.java文件中定义有多个类方便学习。

·java语言有个明确的命名要求,以后定义类名称的时候要求每一个单词的首字母必须大写,例如:Hello World, TestDemo等才算是标准。

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

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

java的主方法名称定义非常的长,具体的解释在后续会有所说明。在以后课程讲解的过程里面主方法所在的类都统一将其称为“主类”,所有的主类都将采用public class 来定义。

3.屏幕打印(系统输出)可以直接在命令行方式下进行内容的显示,有两类语法形式:
·输出之后追加换行:System.out.println(“输出内容”);

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

·输出之后不追加换行:
System.out.print(“输出内容”); ,ln(line,换行的含义)

public class Hello{
public static void main(String [] args){
System.out.print("Hello");
System.out.println(" World!");
System.out.println("Hello World!");
}
}

对于输出语法在后面还会对其做进一步说明。

课时8:Jshell 工具

shell 是脚本程序的含义,在很多的编程语言里面为了方便使用在进行代码的开发,都会有shell交互式编程环境。有些时候可能只是为了进行一些简短的程序验证,但是在java里面就必须编写很多的结构代码才可以实现,所以为了解决这样的困惑 ,提供有jshell指令,直接运行即可。
除了可以直接在jshell命令之中进行程序的编写之外,也可以将一些内容直接交由一些文件来保存。

范例:定义一个程序文件:“d:\mldn.txt”

System.out.println(“Hello MLDN!”);
System.out.println(“www.mldn.cn”);

希望可以直接在jshell里面执行本程序,

/open d:/mldn.txt

现在可以发现就只需要编写核心结构的代码即可,减少了对于结构化的需求,如果要发现不使用了,则可以使用“/exit”进行交互式的界面的退出。

课时9:classpath环境属性

classpath如果需要完整的进行解释需要好多的知识,所以本次只是对classpath的概念做出一个先期的介绍。例如:假设在d:\mldnjava目录下提供有一个Hello.class的字节码文件;
假设说当前用户所在的目录为“d:\mldnjava”,那么在这一的情况下可以直接使用java命令进行Hello.class字节码文件的解释,但是如果说现在脱离了这个目录,将当前目录修改为了“c:\”(c盘目录下并没有Hello.class字节码文件)如果再次执行程序解释,这个时候会出现如下的错误提示信息:
错误:找不到或无法加载主类 Hello
原因:java.lang.ClassNotFoundException;Hello
因为当前目录中没有字节码,那么现在的需求就是:可以在不同的目录中都执行d:\mldnjava\Hello文件,所以在这样的处理环境要求下,就只能够classPath环境属性来完成。

范例:定义CLASSPATH环境属性

SET CLASSPATH = d:\mldnjava

当设置了classpath之后,这个时候,在java程序解释的时候,会自动的通过classpath所设置的路径进行类的加载,所以可以得出一个结论:jvm解释程序的时候需要得到classpath的支持。
但是有一个问题了,发现默认情况下所有解释的类,都是从当前所在的目录中加载的,所以可以得出一个结论:classpath的默认设置为当前所在目录加载类文件,很明显如果到处去设置classpath就会造成整个系统操作的混乱,那么从正常的角度来讲,对于,classpath还是应该采用默认设置方式,所以如果这个时候要想只通过当前目录加载,则可以将classpath设置为“.”.

范例:从当前所在路径加载类

SET CLASSPATH =.

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

变量名:CLASSPATH
变量值:.

面试题:
请问path和classpath的区别?
path:是操作系统提供的路径配置,定义所有可执行程序的路径;
classpath:是由jre提供的,用于定义java程序解释时类加载路径,默认设置为当前所在目录加载,可以通过“SET CLASSPATH=路径”的命令形式来进行定义;
关系:jvm→classpath定义的路径→加载字节码文件。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: