Java语言的编译和执行

举报
@小红花 发表于 2022/02/22 16:43:51 2022/02/22
【摘要】 怎么查看编译器版本?Javac -version怎么查看java虚拟机的版本?Java -version 假设该文件的名字叫做:HelloWorld.class那么HelloWorld被称为一个类名Javac :编译Java :运行语法格式:Java 类名 我们一起来研究一下:“java HelloWorld”的执行过程以及原理Java HelloWorld,敲完回车,都发生了什么?第一步:...

怎么查看编译器版本?

Javac -version

怎么查看java虚拟机的版本?

Java -version

 

  • 假设该文件的名字叫做:HelloWorld.class
    • 那么HelloWorld被称为一个类名
    • Javac :编译
    • Java :运行
    • 语法格式:
    • Java 类名

 

  • 我们一起来研究一下:“java HelloWorld”的执行过程以及原理
    • Java HelloWorld,敲完回车,都发生了什么?
    • 第一步:会先启动JVM(java虚拟机)
    • 第二步:JVM启动之后,JVM会去启动“类加载器classloader”,类加载器的作用:加载类的,本质上类加载器负责去硬盘上找类对应的字节码文件,那么类加载器会去硬盘上搜索:HelloWorld.class文件,假设是“java Test”,那么类加载器会去硬盘上搜索:Test.class文件
    • 第三步:类加载器如果在硬盘上找不到对应对的字节码文件,会报错,报什么错?错误:找不到或无法加载主类

 

问题:默认情况下,类加载器去硬盘上找字节码文件的时候,默认从哪找?

答:默认情况下类加载器(classloader)会从当前路径下找。

 

问题:能不能给类加载器指定一个路径,让类加载器去指定的路径下加载字节码文件

答:可以的,但是我么你需要设置一个环境变量,叫做:classpath

 

问题:classpath是一个环境变量,是给谁指路的?

答:是给“类加载器”指路的。

 

classpath环境变量不属于Windows操作系统,classpath环境变量隶属于java

classpath环境变量是java特有的。

classpath   A路径;B路径;C路径……

 

非常重要的一个特点:必须记住

配置了classpath  D:\course之后,类加载器只会去D:\course目录下找“xxx.class”文件,不再从当前路径下找了。

 

  • 什么是注释,有什么用?
    • 1.注释是对java源代码的解释说明,注释可以帮程序员更好的理解程序
    • 2.注释信息只保存在java源文件当中,java源文件编译生成的字节码class文件,这个class文件中是没有这些注释信息的
    • 3.在实际的开发中,一般项目组都要求积极地编写注释,这也是一个java软件工程师的基本素养
    • 4.注释不是写的越多越好,精简,主线清晰,每个注释都应该是点睛之笔(以后慢慢锻炼)

 

// 这种注释属于单行注释,只注释两个斜杠后面的

 

/*

这是多行注释

第二行注释

*/

 

/**

*注释信息

*javadoc注释,这里的注释信息可以自动被javadoc.exe命令解析提取并生成到帮助文档中

*/

 

 

1、java中任何有效的代码必须写到“类体”当中,最外层必须是一个类的定义。

2、public表示公开的,class表示定义一个类,Test是一个类名,类名后面必须是一对大括号,这一对大括号被称为“类体”

3、大括号必须是成对的,并且建议都要成对编写,这样才不会丢掉。

4、什么时候代码缩进?

我包着你,你就给我低一级,你就需要缩进。

或者也可以这样说,大括号里的都需要缩进。

 

public class Test{ //定义一个公开的类,起名字叫Test

 

//整个这一块的代码被称为:main方法(程序的入口,sun公司java语言规定的)

//也就是说:JVM在执行程序中的时候,会主动去找这样一个方法

//没有这个规格的方法,程序是无法执行的

//main方法也可以叫做主方法。

//注意:方法必须放到”类体“中,不能放到”类体“外面

//任何一个程序都要有一个入口,没有入口进不来,无法执行

//args可以改名字,随意,对于主方法来说只有这个位置可以改,其他位置不能动

public static void main(String[] args){

 

//方法体

//注意:方法体由一行一行的java语句构成的

//并且非常重要的是:任何一条java语句必须以;结束

//  ;代表一条语句的结束

//非常非常重要的是:方法体中的代码遵循自上而下的顺序依次逐行执行

System.out.println("Hello World");//这行代码的作用是向控制台输出一句话

}

}

 

  • 结论:
    • 1.一个java源代码中可以定义多个class。
    • 2.public的类不是必须的,没有public也可以
    • 3.在源文件中只要有一个class的定义,那么必然会对应生成一个class文件,几个class,生成几个class文件
    •  4.public的类可以没有,但如果有的话,public修饰的类名必须和源文件名保持一致。
    • 5.public的类有也只能有一个
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。