1. 一个简单的java应用程序
【例 1‑1】编写一个输出“Hello World!”的应用程序。
public class Test {
public static void main (String[] args) {
System.out.println("Hello World!");
}
}
案例分析:这是java的基本结构,所有的java程序都具有这种结构,java区分大小写。
关键字public称为访问修饰符(access modifier),用于控制其他java类对本类的访问权限;
关键字class表明程序中的全部内容都包含在类中,java应用程序中的全部内容都必须包含在类中;
Test为自定义的类名,java编程规范规定类名的每个单词的首字母都要大写且用英文单词命名类名;
关键字static表明此方法为静态方法,main方法必须设置为静态;
关键字void表示此方法没有返回值;
main为方法名,是java提供的一个入口方法,此方法是java程序的入口;
String[]为字符串数组,此处为参数的数据类型;
args表示参数名,用户可以自定义参数名;
System.out.println("HelloWorld!"); 为类的主体,是写程序代码块的地方,此语句是一个输出语句。
2 在命令窗口运行本程序
打开主命令窗口(Win + R):
图 2‑1 主命令窗口
输入命令“cmd”,进入cmd命令窗口:
图 2‑2 cmd命令窗口
Test类的源文件:
图 2‑3 Test类的源文件
输入命令“javac 源文件路径”,对源文件进行编译。例如“javac E: \Test.java”:
图 2‑4 编译源文件
源文件编译后生成了字节码文件(即生成了以“.class为后缀的文件”):
图 2‑5 生成字节码文件
输入命令“java 包含源文件的目录”,对编译的字节码文件进行翻译(即运行程序)。例如“java E:\java学习交流号——程序源码\简单的java程序\Test”:
图 2‑6 程序运行结果
关于使用public class和class声明类的区别:
(1) 使用“public class类名称”声明一个类时,类名称必须与文件名称一致,否者程序将无法编译。 (2) 使用“class 类名称”声明一个类时,类名称可以与文件名称不一致,但是执行时一定要执行生成后的*.class。 (3) 在一个java文件中可以有多个class类的定义,当时只能有一个public class定义。 |
3 Java注释
注释的主要功能是让其他用户可以方便地阅读每段程序,提高程序的可读性,还可以通过注释屏蔽掉一些暂时不用的语句。
单行注释:在注释内容前面加双斜杠(//),java编译器会忽略此部分的内容。
System.out.println("Hello World!"); //这是一个输出语句 |
多行注释:在注释内容前面以单斜杠加一个星形标记(/*)开头,并在末尾以一个星形标记加单斜线(*/)结束。
/* 这是一个输出语句,输出内容为Hello World! */ System.out.println("Hello World!"); |
文档注释:以单斜线加两个星形标记(/**)开始,并以一个星形标记加单斜杠(*/)结束。用这种方式注释的内容会被解释成程序的正式文档,并能用javadoc之类的工具生成文档,用以说明该程序的层次结构及方法。
/** 文档注释,可以用javadoc之类的工具生成文档 */ |
注意:/**/注释不能嵌套
4 Java的程序结构
类存在于源文件中,方法存在于类中,语句存在于方法中。
源文件:扩展名为.java带有类的定义,类的内容必须包含在花括号({})中。
类:类中包含一个和多个方法,方法必须在类的内部声明。
方法:在方法的花括号中编写方法代码,方法代码是由一组语句组成。
Java运行过程:
Java源程序(*.java)——>java编译器——>(编译)字节码文件(*.class)——>类装载器——>字节码校验器——>解释器——>把整个文件Load到操作系统的内存区,并翻译成计算机认识的机器码,系统自动找到main方法执行程序。
Java程序执行过程与内存分配:
图 4‑1 java执行过程及其内存分配
Heap(堆)——>存放对象的地方(即new出来的对象)
Stack(栈)——>存放局部变量(即在方法里面声明的变量,临时存在)
data segment(数据段)——>存放静态变量(使用static修饰的变量)和字符串常量(用static和final修饰的变量)
code segment(代码段)——>存放代码
5 java分隔符
空白分隔符:空格、Tab键和换行符。
圆括号():定义方法的参数表,条件语句、循环语句中的条件定义,定义表达式的优先级;
花括号{}:初始化数组,定义程序块、类和方法;
分号; :表示一条语句的结束;
逗号, :变量声明是用于分隔多个变量;
点 . :用于软件包和子包或类的分隔、对象和变量或方法的调用。
注意:除了注释和字符串中可以出现中文,其余地方都使用英文,标点符号也必须使用英文。
6 Java关键字
访问控制:publicprotected private;
修饰符:abstract classextends final implements interface native new static strictfp synchronizedtransient volatile;
程序控制:break continue return do while if else for instanceof switch case default;
异常处理:try catchthrow throws;
包:import package;
基本类型:boolean bytechar double float int long short;
(null true false其实不是关键字,它们是单独的标识类型)
变量引用:super thisvoid;
保留字:goto const
7 java标识符
标识符可以标识包名(文件夹名称)、接口名、类名、方法名、参数名和变量名等。
Java标识符命名规则:
(1) 标识符由大小写字母、下划线(_)、美元符号($)和数字组成;
(2) 标识符应以大小写字母开头(规范标识符命名)、下划线(_)或美元符号($)开头;
(3) 标识符大小写敏感,长度无限制;
(4) 关键字不能作为标识符;
(5) 标识符不能以十字开头。
表 7‑1不合法的java标识符
标识符 | 原因 |
9pins | 首字母为数字 |
a+b | “+”不属于java表示符的组成内容 |
Hello world | 标识符中有空格 |
It’s | 标识符中有单引号 |
void | void是关键字 |