Java初体验
编写第一个Java程序
开发Java程序的简单步骤如下:
(1)创建Java源程序。Java源程序用.java作为扩展名,用Java语言编写,可以用任何文本编辑器创建与编辑。
(2)编译源程序生成的字节码(Bytecode)文件。Java编译器读取Java源程序并将其翻译成Java虚拟机(Java Virtual Machine,JVM)能够理解的指令集合,且以字节码的形式保存在文件中。字节码文件以.class作为扩展名。
(3)运行字节码文件。Java解释器读取字节码,取出指令并翻译成计算机能执行的代码,完成运行过程。
示例:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
代码分析如下:
- public class HelloWorld{} 是Java程序的主体框架,代码都写在这个框架内,其中,class的含义是类,HelloWorld是类名。整个类的所有代码都是在一对大括号中(即“{”和“}”之间)定义完成的,这标志着类定义块的开始和结束。
- main()方法是Java程序的执行入口。
- System.out.println()是Java的输出语句。
注意:类名必须与文件名保持一致,且其中符号为英文下的符号。
数据类型与运算符
1.1变量的命名
在Java中,标识符用来为程序中的常量、变量、方法、类、接口和包命名。
1.标识符的命名规则
- 标识符由字母、数字、下滑线(_)或美元符号($)组成。
- 标识符的首字母以字母、下划线或美元符号开头,不能数字开头。
- 标识符的命名不能与关键字、布尔值(true、false)和null相同。
- 标识符区分大小写,没有长度限制,坚持见名知义的原则。
2.关键字
关键字是Java语言保留的,为其定义了固定含义的特殊标识符。
表1 Java中常用的关键字
abstract | class | final | int | public | this |
---|---|---|---|---|---|
assert | continue | finally | interface | return | throw |
boolean | default | float | long | short | throws |
break | do | for | native | static | transient |
byte | double | if | new | strictfp | try |
case | else | implements | package | super | void |
catch | enum | import | private | switch | volatile |
char | extends | instanceof | protected | synchronized | while |
注意:关键字全部为小写字母,程序员不能将关键字定义为标识符,否则会出现编译错误。
1.2 数据类型
1.了解Java中的数据类型
Java是强类型语言,在定义变量前需要声明数据类型。在Java中主要分为两种数据类型:基础数据类型和引用数据类型。
(1)基础数据类型
Java中的8中数据类型如图所示:
graph LR
A[基础数据类型]-->B(数值型)
A --> C(字符型)
A --> D(布尔型)
B --> E(整数类型)
B --> F(浮点类型)
E --> (byte、short、int、long)
F --> (foat、double)
C --> (chaer)
D --> (boolean)
表2 Java中的基本数据类型取值范围
基本类型 | 大小 | 示例 | 取值范围 |
---|---|---|---|
boolean | 1字节8位 | true | true、false |
byte | 1字节8位有符号整数 | -12 | -128~+127 |
short | 2字节16位有符号整数 | 100 | -32768~+32767 |
int | 4字节32位有符号整数 | 12 | -2147483648~+2147483647 |
long | 8字节64位有符号整数 | 10000 | -2^63~ +2^63 -1 |
char | 2字节16位Unicode字符 | ‘a’ | 0~65535 |
float | 4字节32位浮点数 | 3.4f | -3.4E38~3.4E38 |
double | 8字节64位浮点数 | -2.4e3D | -1.7E308~1.7E308 |
注意:
- char类型占2字节,采用Unicode码。
- byte类型占1字节,是整数类型的一种。
- 所有的数据类型长度固定,不会因为硬件、软件系统不同而发生变化。
- String类型不是基础数据类型,而是引用数据类型,它是Java提供的一个类。
(2)引用数据类型
Java中的引用数据类型主要包含类、接口、和数组等。
2.常量
Java中的常量指在程序运行中值不能改变的量。
3.变量
变量是在程序运行中其值可以改变的量,它是Java程序的一个基本存储单元。
变量的基本格式与常量有所不同。变量的语法格式如下:
[访问修饰符] 变量类型 变量名[=初始值];
- “变量类型”可从数据类型种选择。
- “变量名”是定义的名称变量,要遵循标识符命名规则。
- 中括号中的内用为初始值,是可选项。
4.数据类型转换
4.1 算术运算时:
存储位数越多,类型的级别越高。类型转换图如图所示。
不同类型的操作数,首先自动转换为表达式中最高级别的数据类型然后进行运算,运算的结果是最高级别的数据类型,简称低级别自动转换为高级别。
4.2 赋值运算时:
转换方式有自动类型转换和强制类型转换。
(1)自动类型转换
将低级别的类型赋值给高级别类型时将进行自动类型转换。
(2)强制类型转换
将高级别的类型赋值给低级别类型时,必须进行强制类型转换。在Java中,使用一对小括号进行强制类型转换。
注意:使用强制类型转换时,可能会丢失数据。double类型强制转换为int时,double的小数点后面的数据会在强制类型转换会丢失。
1.3 常用运算符
运算符就是告诉程序执行特定的运算操作的符号。Java提供了6类运算符,分别是赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符和条件运算符。
1.赋值运算符
赋值运算符“=”用于给变量指定变量值,并可以和算术运算符结合,组成复合赋值运算符。复合赋值运算符主要包括“+=”、“-=”、“=”、“/=”、“%=”。
2.算术运算符
算术运算符包括“+”、“-”、“”、“/”、“%”、“++”、“–”,如表所示。
注意:
3.关系运算符
关系运算符有时又称比较运算符,用于比较两个变量或常量的大小,运算结果是布尔值true或false。Java中共有6个关系运算符,分别为“==”、“!=”、“>”、“<”、“>=”、“<=”。关系运算符的说明如表所示。
注意:
4.逻辑运算符
逻辑运算符用于对两个布尔型操作数进行运算,其结果还是布尔值。逻辑运算符如表所示。
注意:
5.位运算符
位运算符及运算规则如表所示。
注意:
6.条件运算符
条件运算符是Java中唯一的需要3个操作数的运算符,所以又称三目运算符或三元运算符。
条件运算符的语法格式如下:
条件 ? 表达式1:表达式2
- 首先对条件进行判断,如果结果为true,则返回表达式1的值。
- 如果结果为false,返回表达式2的值。
1.4 运算符的优先级
Java中的各种运算符都有自己的优先级和结合性。所谓优先级就是在表达式运算中的运算顺序。优先级越高,在表达式中运算顺序越靠前。
结合性可以理解为运算的方向,大多数运算符的结合性都是从左往右,即从左向右依次进行运算。