03-java简介+类编译执行的过程

1、Java语言是跨平台(跨OS)的,JVM依赖平台,所以JVM是Java程序和操作系统之间的桥梁。

2、JRE:Java运行环境,包括JVM+核心类库等

     JDK:Java开发工具包,包含Java的开发工具(编译工具javac.exe、打包工具jar.exe等)+JRE

3、path:可执行文件.exe的路径(jdk的路径),到bin。path中存放的都是系统中应用程序所在的路径(bin目录下存放的都是可执行程序,即 .exe文件)

     classpath:类文件 .class所在的目录。JVM到classpath指定的类文件路径找 .class 执行

4、源文件(xxx.java)-->编译器编译(javac.exe)-->类文件(xxx.class)-->运行(java.exe)-->结果

     javac:是一个工具,调用jdk中提供的 编译工具/编译程序。此命令启动了一个编译程序,程序的编译内容的名称是.java,编译器对java源文件进行正确性检查(语法检查)。

     java:是一个命令,启动JVM。JVM根据classpath到指定位置找 .class文件,将其加载进内存(任何一个应用程序都需要进内存才能运行),并主函数执行

注:如何说明是java命令启动时,JVM才去调用主函数?将main函数去掉,执行javac时不报错,而执行java时报错:找不到main方法

运行环境中包含JVM。只编译不需要JVM,只需要一个编译器将文件编译成 .class即可。

源文件:xxx.java(path中的都是可执行文件,.java文件是不可执行的)

编译:javac xxx.java

执行:java xxx

5、主函数是程序的入口,格式是固定的。可以保证一个类的独立运行,一个类只能有一个主函数。需要独立运行时才需要主函数。主函数被JVM识别并调用

6、主函数解析:public static void main(String[] args) { }

(1)public:权限必须最大。因为如果权限小,JVM运行该类时不让访问主函数,就运行不了

(2)static:JVM在调用主函数时是不需要对象的,直接用主函数所属类名调用main方法即可

(3)void:主函数没有具体的返回值。有确定的返回对象,返回给调用者,即JVM。但JVM拿着返回值没用,所以不需要返回

(4)main:函数名,不是关键字,是一个被JVM所识别的固定的名字

(5)String[] args:主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型。用字符串类型是因为字符串类型的数据是最通用的数据(可以将字符串进行其他类型的转换)

注:主函数中唯一可以变化的是形式参数args,只是一个变量名,但一般不变。若写成 public static void main(int x) { },不是入口,最多算是自定义的名称为main的函数(重载)

7、Java是解释型语言,两种核心机制是:

(1)Java虚拟机:一次编译,到处运行(跨平台)

(2)垃圾收集机制:程序的健壮性

8、类编译执行的过程

执行javac命令时,调用编译器将xxx.java文件编译成xxx.class文件。执行java命令时,JVM到classpath下找对应的xxx.class文件。如果不存在对应的xxx.class文件,则找xxx.java文件进行编译(如果xxx.java文件也不存在,则报错);如果存在对应的xxx.class文件,则将其加载进内存。之后,JVM找main函数执行main中的程序

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值