需要整明白的几个关键字
-
对象
:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:毛色、名字、品种;行为有:摇尾巴、叫、吃等。 -
类
:类是一个模板,它描述一类对象的行为和状态。 -
方法
:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 -
实例变量
:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
第一个Java程序
下面将逐步介绍如何保存、编译以及运行这个程序:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
- 打开Notepad++,把上面的代码添加进去;(PS:可以设置NotePad++语言为Java,这样关键字就会有颜色)
- 把文件名保存为:HelloWorld.java;
-
鼠标右击文件,点击“打开所在文件夹(命令行)”
- 在命令行窗口键入 javac HelloWorld.java 按下enter键编译代码。如果代码没有错误,cmd命令提示符会进入下一行。(假设环境变量都设置好了)。
-
再键入java HelloWorld按下Enter键就可以运行程序了
JAVA程序运行机制分析
计算机的高级编程语言类型包括编译型、解释型,Java 语言是两种类型的结合。
第一步:编译
利用编译器(javac)将源程序编译成字节码文件,字节码文件名是源文件名.class。
第二部:运行
利用虚拟机(解释器,java)解释执行class字节码文件。
Java运行环境的三项主要功能:
加载代码:由class loader 完成;
校验代码:由bytecode verifier 完成;
执行代码:由 runtime interpreter完成。
基本语法规则
编写Java程序时,应注意以下几点:
-
大小写敏感
:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。 -
类名
:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么我们采用“驼峰命名法”,即每个单词的首字母应该大写,例如 HelloWorld。 -
方法名
:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词采用“驼峰命名法”。 -
源文件名
:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
-
主方法入口
:所有的Java 程序由
public static void main(String args[])
方法开始执行。
Java标识符
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于Java标识符,有以下几点需要注意:
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是数字、字母、下划线、美元符号的任意组合
- 关键字不能用作标识符
- 标识符是大小写敏感的
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary
Java关键字
下面列出了Java中的关键字和保留字。这些关键字和保留字不能用于任何标识符的名称。PS:保留字就是Java在当前版本中预留的关键字,在Java后面的版本升级中可能将保留字升级为关键字。
关键字 | 描述 |
---|---|
abstract | 抽象方法,抽象类的修饰符 |
assert | 断言条件是否满足 |
boolean | 布尔数据类型 |
break | 跳出循环或者label代码段 |
byte | 8-bit 有符号数据类型 |
case | switch语句的一个条件 |
catch | 和try搭配捕捉异常信息 |
char | 16-bit Unicode字符数据类型 |
class | 定义类 |
const | 未使用 |
continue | 不执行循环体剩余部分 |
default | switch语句中的默认分支 |
do | 循环语句,循环体至少会执行一次 |
double | 64-bit双精度浮点数 |
else | if条件不成立时执行的分支 |
enum | 枚举类型 |
extends | 表示一个类是另一个类的子类 |
final |
表示一个值在初始化之后就不能再改变了 表示方法不能被重写,或者一个类不能有子类 |
finally | 为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。 |
float | 32-bit单精度浮点数 |
for | for循环语句 |
goto | 未使用 |
if | 条件语句 |
implements | 表示一个类实现了接口 |
import | 导入类 |
instanceof | 测试一个对象是否是某个类的实例 |
int | 32位整型数 |
interface | 接口,一种抽象的类型,仅有方法和常量的定义 |
long | 64位整型数 |
native | 表示方法用非java代码实现 |
new | 分配新的类实例 |
package | 一系列相关类组成一个包 |
private | 表示私有字段,或者方法等,只能从类内部访问 |
protected |
表示字段只能通过类或者其子类访问 子类或者在同一个包内的其他类 |
public | 表示共有属性或者方法 |
return | 方法返回值 |
short | 16位数字 |
static | 表示在类级别定义,所有实例共享的 |
strictfp | 浮点数比较使用严格的规则 |
super | 表示基类 |
switch | 选择语句 |
synchronized | 表示同一时间只能由一个线程访问的代码块 |
this |
表示调用当前实例 或者调用另一个构造函数 |
throw | 抛出异常 |
throws | 定义方法可能抛出的异常 |
transient | 修饰不要序列化的字段 |
try | 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码 |
void | 标记方法不返回任何值 |
volatile | 标记字段可能会被多个线程同时访问,而不做同步 |
while | while循环 |
Java修饰符(后面章节一一讲解)
像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:
- 访问控制修饰符 : default, public , protected, private
- 非访问控制修饰符 : final, abstract, static,synchronized 和 volatile
Java变量
Java变量是程序中最基本的存储单元,其要素包括变量类型、变量名和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,
Java中主要有如下几种类型的变量
- 局部变量:定义在方法或语句块内部的变量,其生命周期是从声明位置开始到”}”为止,在使用前必须先声明和初始化(赋初值)。
- 类变量(静态变量):用static修饰的变量,从属于类,生命周期伴随类的始终。
- 成员变量(实例变量):定义在类中(方法外)的变量,从属于对象,生命周期伴随对象始终。
PS:如果我们在定义
成员变量
的时候不自行初始化,系统会为成员变量赋默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false,引用类型默认是null)
public class HelloWorld {
int a = 110;//成员变量
private static final int b = 119;//类变量(静态变量)
public static void main(String[] args) {
int a = 996;//局部变量
System.out.println("a ==" + new HelloWorld().a);
System.out.println("a ==" + a);
test();
}
private static void test() {
System.out.println("b ==" + b);
}
}
常量
顾名思义,常量就是初始化后值不能再改变的量,用
final
关键字修饰。 常量命名规范:大写字母和下划线,eg.MAX_VALUE
Java注释
类似于C/C++,Java也支持单行、多行以及文档注释。注释中的字符将被Java编译器忽略。
/**
* 这是文档注释
*/
public class HelloWorld {
/*
* 这是多行注释
*/
public static void main(String[] args) {
//这是单行注释
System.out.println("Hello world!");
}
}
对HelloWorld的分析
-
关键字
public
是访问修饰符,
用于控制其他代码对该代码的访问权限级别。
Java中共用四种访问修饰符,如下表所示:
访问权限 |
类 |
包 |
子类 |
其他包 |
备注说明 |
public |
√ |
√ |
√ |
√ |
可被任何Java程序访问 |
protect |
√ |
√ |
√ |
× |
可被同包内程序及其子类访问 |
default |
√ |
√ |
× |
× |
可被同包内程序访问 |
private |
√ |
× |
× |
× |
只能在同一个类中调用,即自己调用自己的方法和属性 |
- class关键字用于声明类,类是Java程序的基本单元,全部内容都包含于类中,Java是一种纯面向对象的语言。
注意:一个源文件中最多只能有一个被 public修饰的类(当然也可以一个也没有),且该类的类名必须和源文件名相同,且以“.java”作为扩展名。其他类的个数没有限制,所以你会发现一个源文件编译之后可以生成多个class文件。
举个栗子:
/**
* 这是文档注释
*/
class HelloWorld {
/*
* 这是多行注释
*/
public static void main(String[] args) {
//这是单行注释
System.out.println("Hello world!");
}
}
class A{}
class B{}
编译之后生成三个class文件:
-
main方法是Java应用程序的入口方法,它有固定的书写格式:
public static void main(String[] args) {…}
- 在Java中,用花括号划分程序的各个部分,任何方法的代码都必须以“{”开始,以“}”结束, 由于编译器忽略空格,所以花括号风格不受限制(IDE有代码格式化快捷键,比如IDEA,按Ctrl+Alt+L键即可让你的代码风格瞬间上档次>_<)。
- Java中每个语句必须以分号结束,回车不是语句的结束标志,所以一个语句可以跨多行。
常用的Dos命令
- cd 进入一个目录
- cd ..
- dir
- 上下键:查找敲过的命令
- Tab键:自动补齐命令
字符集
JAVA不采用通常语言使用的ASCII(American Standard Code for Information Interchange,美国信息互换标准编码)字符集,而是采用unicode(Universal Multiple-Octet Coded Character Set 通用多八位编码字符集)这样的标准的国际字符集。
各种字符集的关系?
小提示