2.Java程序基础

一、完整的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

原因:

  1. 当前目录不对
  2. 类名拼错
  3. 运行时后面加了.class后缀

解决:

  1. 检查文件名与类名是否一致.
  2. 检查当前目录是否有.class文件
  3. 运行时不要加后缀

错误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){}

五、常用命名规范

类型 命名风格
类名/接口名 大驼峰
方法名/变量名 小驼峰
常量名 全大写下划线
包名 全小写
** 什么是驼峰命名法?**
大驼峰:每个单词首字母都大写,小驼峰:首个单词首字母大写,其余单词小写。因为名字像驼峰一样起伏所以叫做驼峰命名法
相关推荐
snow@li1 小时前
SpringBoot:全套生命周期全景详解/应用级+Bean级
java·spring boot·rpc
ttwuai1 小时前
Go 后台定时任务启停不生效怎么办?先查调度同步链路
开发语言·后端·golang
love_muming1 小时前
二叉树操作全解析:从递归到层序遍历
java·数据结构·算法·二叉树
小的~~1 小时前
ThreadLocal 、InheritableThreadLocal 与 TransmittableThreadLocal 的进阶指南
java·开发语言
键盘会跳舞1 小时前
C++:std::pair 源码级深度剖析 —— 关联容器的基石
开发语言·c++·pair·关联容器
(Charon)1 小时前
【C++】手写线程安全队列:mutex + condition_variable 实现生产者消费者模型
c语言·开发语言·c++
北极糊的狐1 小时前
钉钉小程序报错data.formatTime is not a function是因为 axml 模板中不能直接调用 Page 内自定义方法!
java·小程序·钉钉
AINative软件工程1 小时前
LLM 应用的 Feature Flag 工程实践:Prompt、模型与 AI 行为的生产安全灰度
后端·llm·ai编程
崖边看雾2 小时前
同步上下文管理器规则
开发语言·数据库