文章目录
- 1.JVM,JRE,JDK之间的区别和联系
- 2. JDK目录的介绍
- 3.编译和运行
- 4.classpath
- 5.关于java源程序当中的注释
- 6.public class和class的区别
1.JVM,JRE,JDK之间的区别和联系
- JDK:java开发工具包,针对java开发人员,可以编译运行java程序,一般包括JRE
- JRE:Jvav运行时环境,java运行时环境,针对使用java程序的客户,可以运行字节码 (.class),但是不能编译Java源码
- JVM:用来解释执行字节码文件 (.class),但不能正确的执行
2. JDK目录的介绍
- 安装JDK:环境:win10安装JDK8:jdk-8u101-windows-x64.exe
- 解决DOS窗口命令中输入javac出现:‘javac’不是内部或者外部命令的问题?将其加入到windows的环境变量PATH中
- windos操作系统是如何搜索硬盘上某个命令的呢?
(1)首先从当前目录下搜索
(2)若当前目录搜索不到,则从环境变量PATH指定的路径中搜索
(3)若搜索不到,则上报以上错误 - bin目录:该目录存放java的可执行文件,如javac.exe(java的编译器工具),java.exe(java的运行工具)
3.编译和运行
- eg:HelloWorld.java
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello World");
}
}
- javac命令使用:javac java源文件路径
直接拖到cmd即可 - 运行java程序:
(1)需要使用java.exe命令
(2)使用方式:
java 类名
硬盘上有HelloWorld.class,那么类名就是:HelloWorld
运行:java HelloWorld
注意:java命令后面跟的不是文件路径,是一个类的名字。
首先你需要先将Dos窗口中的目录切换到HelloWorld.class文件所在目录。
(3)然后直接执行:java HelloWorld
4.classpath
- 疑问:ClassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?
- 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
- 当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath,classpath是在Dell的环境变量中的。
计算机–>属性–>高级设置–>高级–>Dell的环境变量–>新建–>classpath)
classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATE环境变量属于操作系统】 - classpath是给ClassLoader类加载器指路的。
(1) 设置这样的环境变量:classpath=D:\course\JavaProjects\02-JavaSE\day02
(2)打开dos命令窗口在任意位置,都可以执行:java HelloWorld
(3)classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
(4)当classpath环境变量配置为某个特定的路径之后,类加载器只去指定的路径当中加载字节码文件。 - 综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。
所以,每执行一次.class程序的时候,需要在Dos命令窗口中先切换到.class字节码文件所在的路径下。
然后运行。 - 当然,classpath也可以这样配置:classpath=.(每次运行时切换到当前目录)
(如果以后需要加载别的class文件的话,这个路径只要在.后面加个;otherpath就行了,这样意味着从当前路径下可以,从其他路径下也可以)
5.关于java源程序当中的注释
- 什么是注释?注释的作用是什么?
出现在java的源程序当中,对java源代码的解释说明
注释不会被编译到.class字节码文件中
一个好的开发习惯应该是多编写注释,这样程序的可读性比较强。 - java中的注释怎么写呢?
单行注释
//单行注释,只注释当前行
多行注释
/*
多行注释
多行注释
多行注释
多行注释
…
*/
javadoc注释
/**
javadoc注释
javadoc注释
javadoc注释
javadoc注释
javadoc注释
*/
注意:这种注释是比较专业的注释,该注释信息会被javadoc.exe工具解析提取并生成帮助文档。
- eg:HelloWorld.java
//public表示公开的
// class表示定义一个类
// HelloWorld表示一个类名
public class HelloWorld//表示定义一个公开的类
{
// 类体
// 类体中不允许直接编写java语句,除了声明变量之外
/*
public表示公开的
static表示静态的
void表示空
main表示方法名是main
String[] args是main方法的形参列表
*/
// 程序的入口
public static void main(String[] args)
{
// 方法体
// java语句
// java中所有的字符串都是用双引号括起来
System.out.println("Hello World");//控制台输出
System.out.println("Hello wangji");
}
}
6.public class和class的区别
- 一个Java源文件中可以定义多个class
- 一个java源文件中public不是必须的
- 一个class会定义生成一个xxx.class字节码文件
- 一个java源文件中定义公开的类的话, 只能有一个,且该类名称必须和java源文件名称一致
- 每一个class中都可以编写main方法,都可以设定程序的入口,执行B.class中的main方法:java B
注:执行java Hello,那么要求Hello.class中必须有main()方法,否则运行会错误 - eg:K.java
public class K {
public static void main(String[] args)
{
System.out.println("K's main method invoked");
}
}
class X {
public static void main(String[] args)
{
System.out.println("X's main method invoked");
}
}
class Y {
public static void main(String[] args)
{
System.out.println("Y's main method invoked");
}
}
class B
{
}