目录
java源文件运行
1.创建java代码
2.编译java代码
3.运行java代码
java代码格式
java的运行机制
java代码的运行过程
JDK,JRE,JVM
java的错误分析
三种输出函数
java注释
搭建好了java的环境之后,我们就可以来学习Java了。
在D盘新建一个text文件夹,在文件夹里面新建文本文档,文档名称HelloWorld,后缀改为.java
注意:打开查看,打开文件扩展名和隐藏项目,否则文件后缀不会出现。
可能造成文件后缀仍然是.txt---错误
打开创建好的后缀是java的文本文件,在里面敲入代码:
保存代码之后,使用win+r键打开命令窗口,输入cmd
如果代码在D盘:输入D: 进入D盘,后输入cd 文件位置,进入D盘的子目录中,输入javac 文件名.java编译代码。例如:
打开方式:
如果代码在c盘:因为cmd默认打开c盘,所以直接输入cd 文件位置,进入c盘的子目录中,输入javac 文件名.java编译代码。例如:
编译代码成功,生成了.class文件
生成了.class文件代表编译结束,输入 java 文件名 运行代码
修饰符 class 类名{
程序代码
}
public---class的修饰符,如果说使用public修饰class,那么类名和文件名需要一致
class---一个关键字,用于定义一个类。类是java中程序的基本单元,java的所有代码都在类中书写。
HelloWorld---类的名称,简称为类名,类名后的{},定义了当前这个类的管辖范围。
定义了一个main()方法,是java程序的入口,程序从main后的{}开始执行。
args:数组---运行时的命令行参数,输入内容会进入数组中
public class HI{
public static void main(String[] args){
for(int i=0;i
数据经java虚拟机的类加载器加载入内存,保存在了args数组中,数组长度增加,后经java解析器对加载后的类解析,产生机器码文件,被电脑识别打印。
打印出HelloWorld
java程序运行时,必须经过编译,运行两个步骤
将扩展名为.java的文件进行编译,生成了.class文件,.class文件经过java虚拟机运行。
例如:
1.写java文件:文件名称:HelloWorld
2.使用javac HelloWorld.java 开始进行编译,编译结束后生成了HelloWorld.class的字节码文件(二进制文件,包含了类的信息,磁盘中)
3.使用java HelloWorld打开了java虚拟机运行程序,java虚拟机里的类加载器先将HelloWorld.class的字节码文件加载进入内存,这个过程称之为类加载。然后java虚拟机里的java解析器对加载进入内存的java类进行解析。
4.解析完成后产生计算机能够识别的机器码文件
5.机器码文件在计算机运行产生结果。
使用Sublime Text打开字节码文件:
cafe babe---每一个Java Class文件都是以0x CAFEBABE开头的。Java这么做的原因就是为了快速判断一个文件是不是有可能为class文件,以及这个class文件有没有受损(文件受损,文件开头受损的可能性最大)。
JDK---java开发者工具
包括了java运行环境(JRE),一堆Java工具(javac/java/jdb等)和Java基础的类库
JRE---java运行环境
包含JVM标准实现及Java核心类库
JVM---java虚拟机
运行java代码
一次编译,到处运行:java依靠java虚拟机解释执行,只要拿到了.class文件,JVM就可以运行这个程序。
1. 每个类对应一个.class文件,不是一个文件对应一个字节码文件
好处:需要哪一个类,那么会加载哪一个类,而不是全部加载
2.含有中文出错
在命令行窗口对含有中文的java代码编译时,要保证源文件的编码格式和命令行窗口的编码格式一致。命令行窗口的编码格式是GBK,而一些文本编译器的默认格式是UFT-8,要保持一致,否则报错。
Notepad++的格式如下:
public class HI{
public static void main(String[] args){
System.out.println("这是一个java代码");
}
}
将括号里面的内容转化为字符串并输出到屏幕,并换行,当输出的是一个基本数据类型时,会自动转换成字符串。
public class HI{
public static void main(String[] args){
System.out.println("hi");
System.out.println("hello");
}
}
public class HI{
public static void main(String[] args){
System.out.print("hi");
System.out.print("hello");
}
}
和上面使用情况相似,但是不会换行
public class HI{
public static void main(String[] args){
System.out.printf("%s\n","hi");
System.out.printf("%s\n","hello");
System.out.printf("%d\n",10);
}
}
1.单行注释://
// System.out.printf("%s\n","hi");
//System.out.printf("%s\n","hello");
//System.out.printf("%d\n",10);
2.多行注释: /* -----*/
/*System.out.printf("%s\n","hi");
System.out.printf("%s\n","hello");
System.out.printf("%d\n",10);*/
3.文档注释:/** ----*/
文档注释通常是对程序中的某个类或类的方法进行的系统阐述.