Java主函数解释、java/javac命令解释、classpath解释

任何一段程序必须要有一个执行的起始点,有一个入口,这个入口就是主函数,本质上这个主函数就被虚拟机所调用。 即:主函数是一个入口、它被虚拟机所调用、有了主函数就能保证一个类的独立运行,一个类里有且只有一个主函数。

让编译器做事:   javac是java对外提供的一个命令,他的底层对应着一整套java编译程序,其实就是用这个命令启动了一个编译程序,编译.java文件,就是对java的原文件进行检查,检查原代码的正确性,叫语法检查。   该命令的作用是:调用JDK当中的给我们提供的叫做编译程序,javac的意思就是启动编译器。   若编译失败(即报错)是不可能生成类文件的。

让虚拟机做事:   java的底层对应的程序是:虚拟机,启动虚拟机帮我运行一个类,即java Demo,是因为运行环境中才包含虚拟机。   它就去指定的位置去找名称为Demo.class的文件,找到后将其加载到内存(因为任何程序运行需要加载到内存里运行,因为硬盘的速度比较慢,所以硬盘会把数据都转移到内存这个临时存储区后由CUP来进行运算,内存是个大的临时存储空间,运行效率比较高)找到主函数入口进入后,开始执行主函数里面的代码。

  java这个运行程序,类文件(即.class文件)可能分布在电脑硬盘不同目录下。   运行文件(即类文件)在哪,我就去哪运行,即Demo.class在哪,我就去哪使用命令 java Demo 运行它。

classpath的作用是:可以在任意目录下都能运行java程序。 但是:有另一种方法:     即classpath是在规定虚拟机该到什么地方去执行java运行程序。     若没有配置classpath环境变量时,虚拟机就在该当前目录上查找要运行的类文件,若没有找着就报错。     若配置的话,虚拟机就在你配置的目录下查找要运行的类文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏资深Tester

一定要知道的,那些Linux基本操作命令(一)

2587
来自专栏FreeBuf

Metasploit自动化Bypass Av脚本:Shecodject X Shellcode Injection

0x00 简介 shecoject 是一个由 python3 编写的工具,可将特制 metasploit 生成的 raw 文件直接使用 pyinstaller ...

2355
来自专栏xingoo, 一个梦想做发明家的程序员

Log4j官方文档翻译(二、架构设计)

log4j遵循层次化架构,每个层都有不同的对象来执行不同的任务。这种层次话的结构灵活设计、易于未来的扩展。 log4j框架中有两种对象: 核心对象:框架的...

1905
来自专栏大闲人柴毛毛

Linux文件权限与目录管理

Linux文件系统的三种身份 文件所有者 同组用户 同一个用户组的用户可以访问该用户组的文件; 每个账号可以加入多个用户组。 在同一个用户组的...

3918
来自专栏Java面试笔试题

举例说明同步和异步

如果系统中存在临界资源(资源数量少于竞争资源的线程数量的资源),例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数...

1064
来自专栏大闲人柴毛毛

Java并发编程的艺术(四)——线程的状态

线程的状态 初始态:NEW 创建一个Thread对象,但还未调用start()启动线程时,线程处于初始态。 运行态:RUNNABLE 在Java中,运行态包括...

43011
来自专栏Rgc

redis权限认证及登录

2761
来自专栏java 成神之路

window 查找 java 进程中占用cpu比较高的线程

3869
来自专栏我是攻城师

Spring-Boot中如何使用多线程处理任务

2954
来自专栏惨绿少年

setup 命令中防火墙配置选项无法打开

故障提示 ? 1.1 如何让setup 命令中防火墙配置生效 1.1.1 CentOS系统找不到setup命令工具的解决方法 yum -y install se...

3220

扫码关注云+社区