一、完整的HelloWord写法
java
//我的第一个Java程序
public class HelloWord{
public static void main(String[] args){
System.out.println("Hello,Word")
}
}
这短短的几行代码包含可Java程序的全部骨架。它可以从内到外分为三层
- 最外层------类(class):Java程序的基本单位,所有代码都必须写在类里
- 中间层------main方法:程序的入口,JVM从这里开始执行
- 最内层------语句:真正干活的代码。
二、逐行拆解
2.1 第一行:注释
//我的第一个Java程序
//开头的是单行注释,注释是给程序员看的,编译时会忽略这行,不影响程序的运行。
Java一共有三种注释方法:
| 类型 | 写法 | 用途 |
|---|---|---|
| 单行注释 | //注释内容 | 解释一行代码,简单的说明 |
| 多行注释 | /*注释内容*/ | 解释一段代码,可以跨行 |
| 文档注释 | /**注释内容*/ | 生成API文档(Javadoc) |
2.2 第二行:类声明
public class HelloWord{}
这一行定义了一个类,可以把它分成三部分来看:
| public | 访问修饰符,表示这是一个公开类,任何地方都能够访问它 |
| class | 关键字,告诉编译器这是一个类 |
| HelloWord | 类名,有命名规则 |
类名的命名规则
- 文件名必须和public类名完全一致:类叫HelloWord,文件名也必须是HelliWord.java,大小写不能错
- 大驼峰命名法:每个单词的首字母大写
- 不能用关键字:如class等
- 不能以数字开头:可以包含字母、数字、下划线、美元符号,但第一个字符必须是字母
大括号表示类的主题开始,这里面装着类的所有属性和方法。大括号必须成对出现,否则会报错。
2.3 第三行:main方法(程序的入口)
public static void main(String[ ] args){}------java最重要的一行代码
main方法是Java程序唯一的入口,JVM就是从这里开始执行你的代码,它的写法是固定的,少一个关键字都不行。
| public | 公开的------JVM要从外部调用它,必须使用public |
| static | 静态的------不需要创建对象就可以调用,JVM启动时还没有对象,所以必须是static |
| void | 返回值类型------void表示不需要任何返回值,main方法不需要给JVM返回结果 |
| main | 方法名------JVM固定查找这个名字,改了就找不到入口 |
| String args | 参数------字符串数组,用于接收命令传入参数,args是argument的缩写 |
2.4 第四行:输出语句
System.out.println("Hello,Word")·
想控制台打印一句话------是真正干活的一行。
- System:Java.long包中的系统类,代表你的程序所在的运行环境
- out:System类里的一个静态成员,代表标准输出流(即控制台)
- println:out对象的方法,print line的缩写------打印一行内容并换行,若不换行可以使用print
- "Hello,Word":字符串字面量,用英文双引号包裹,里面写什么就打印什么
** Java语法的三条铁律 ** 语句以分号结尾:每行语句最后必须加分号严格区分大小写:大小写不同代表的不是一个东西符号都是英文的:括号、引号、分号都必须是英文半角、中文符号都会报错
三、从敲代码到看到输出之间经历了什么
理解了上面的结构之后,再来看看完整的流程:.java文件怎么变成屏幕上的那句话的
第一步:编译(javac)
在命令行输入javac HelloWord.java,javac编译器会把你写的java源码翻译成字节码(.class文件)。这个过程会检查你写的语法有没有错误,若有就不会生成.class文件
第二步:运行(java)
输入java HelloWord(不加后缀),JVM(java虚拟机)启动加载HelloWord.class,找到main方法,开始逐行执行里面的语句,执行到System.out.println()时,就把文字输出到控制台。
四、新手常见错误
错误1:类名和文件名不一致
error: class HelloWorld is public, should be declared in a file named HelloWorld.java
原因:public类名与文件名不同
解决:把文件名改成和类名一模一样
错误2:缺少分号
error: ';' expected
原因:某句代码后面忘记加分号
解决:根据错误提示,检查错误哪一行末尾是否有分号
错误3:大小写错误
error: cannot find symbol symbol: variable system location: class HelloWorld
原因:大小写错误导致编译器没有识别到应有的代码
解决:根据提示检查错误那一行是否存在大小写错误
错误4:找不到或无法加载主类
Error: Could not find or load main class HelloWorld
原因:
- 当前目录不对
- 类名拼错
- 运行时后面加了.class后缀
解决:
- 检查文件名与类名是否一致.
- 检查当前目录是否有.class文件
- 运行时不要加后缀
错误5:main方法写错
Error: Main method not found in class HelloWorld, please define the main method as: public static void main(String\[\] args)
原因:main方法少些关键字,main大小写错误
解决:严格按照规定的样式书写public static void main(String[ ] args){}
五、常用命名规范
| 类型 | 命名风格 |
|---|---|
| 类名/接口名 | 大驼峰 |
| 方法名/变量名 | 小驼峰 |
| 常量名 | 全大写下划线 |
| 包名 | 全小写 |
| ** 什么是驼峰命名法?** | |
| 大驼峰:每个单词首字母都大写,小驼峰:首个单词首字母大写,其余单词小写。因为名字像驼峰一样起伏所以叫做驼峰命名法 |