2.1 Java 基本语法
2.1.1 注释
Java 中的注释有三种类型,具体如下:
-
单行注释
int age = 18;//这是一个单行注释
-
多行注释
/* * 这是一个多行注释 */ int age = 18;
-
文档注释
/** * 这是文档注释 * */
生成文档注释命令
- javadoc -d 目录名 -author -version Java文件名.java -encoding UTF-8 -charset UTF-8
2.1.2 标识符
- 标识符
- Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
- 技巧:凡是自己可以起名字的地方都叫标识符
- 定义合法标识符规则
- 由 26 个英文字母大小写,0-9,_ 或 $ 组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含
- Java 中严格区分大小写,长度无限制
- 标识符不能包含空格
- 命名规范
- 包名:多单词组成时所有的字母都小写 xxxyyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写 XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词的首字母大写 xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词都用下划线连接 XXX_YYY_ZZZ
- 命名的时候尽量见名知意
2.1.3 关键字
- 关键字的定义和特点:
- 定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串
- 特点:关键字中所有的字母都为小写
用于定义关键数据类型的关键字 | |||
---|---|---|---|
class | interface | enum | byte |
short | int | float | long |
double | char | boolean | void |
用于定义流程控制的关键字 | |||
---|---|---|---|
if | else | switch | case |
default | while | do | for |
break | continue | return |
用于定义访问权限修饰符的关键字 | ||
---|---|---|
private | protected | public |
用于定义类,函数,变量修饰符的关键字 | |||
---|---|---|---|
abstract | final | static | synchronized |
用于定义类与类之间关系的关键字 | |
---|---|
extends | implements |
用于定义建立实例及引用实例,判断实例的关键字 | |||
---|---|---|---|
new | this | super | instanceof |
用于异常处理的关键字 | ||||
---|---|---|---|---|
try | catch | finally | throw | throws |
用于包的关键字 | |
---|---|
package | import |
其他修饰符关键字 | ||||
---|---|---|---|---|
native | strictfp | transient | volatile | assert |
用于定义数据类型值的字面值 | ||
---|---|---|
true | false | null |
- 保留字
- 定义:现有 Java 版本尚未使用
- goto、const
2.1.4 常量
- 常量就是在程序中固定不变的值,是不能改变的数据。
2.2 变量
2.2.1 变量的定义
- 变量的概念
- 内存中的一个存储区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的储存单元。包含变量类型、变量名和存储的值
- 变量的作用
- 用于在内存中保存数据
- 使用变量注意
- Java 中每个变量必须先声明,后使用
- 使用变量名来访问这块区域的数据
- 变量的作用域:其定义所在的一对 {} 内
- 变量只有在其作用域内才有效
- 同一作用域内,不能定义重名的变量
- 在方法体外,类体内声明的变量称为成员变量
- 在方法体内部声明的变量称为局部变量
2.2.2 变量的数据类型
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1 字节 = 8bit 位 | -128 ~ 127 |
short | 2 字节 | -215 ~ 215 -1 |
int | 4 字节 | -231 ~ 231 -1 (约21亿) |
long | 8 字节 | -263 ~ 263 -1 |
单精度 float | 4 字节 | -3.403E38 ~ 3.403E38 |
双精度 double | 8 字节 | -1.798E308 ~ 1.798E308 |
-
Java 的整型常量默认为 int 型,声明 long 型常量须后加 l 或者 L
-
Java 程序中变量通常声明为 int 型,除非不足以表示较大的数才使用 long
-
Java 的浮点型常量默认为 double 型**,**声明 float 型常量,须后加 f 或者 F
-
转义字符
转义字符 说明 \b
退格符 \n
换行符 \r
回车符 \t
制表符 \"
双引号 \'
单引号 \\
反斜线 -
boolean 类型数据只允许取值 true 和 false,无 null
2.2.3 变量的类型转换
在程序中,当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。
-
自动类型转换
- 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型
- byte \ short \ char --> int --> long --> float --> double
- 特别的:当 byte、char、short 三种类型的变量做运算时,结果为 int 型
-
强制类型转换
-
需要使用强转符:
()
-
强制类型转换可能导致精度损失
-
例:
byte b1 = 10; int i1 = 126; byte b2 = (byte) (b1 + i1); char c1 = 'a'; short s2 = 10; short s3 = (short) (s2 + c1);
-
-
注意
- 整型常量,默认为 int 型
- 浮点型常量,默认为 double 型
2.2.4 变量的作用域
public static void main(String[] args) {
int x = 12; //变量 x
{
int y = 20;
}
y = x; //将 x 的值赋给 y,但 y 出了它的作用域
}
2.3 运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
分类:
- 算数运算符(Arithmetic operator)
- 赋值运算符(Assignment Operators)
- 比较运算符(Comparison operator)
- 逻辑运算符(Logical operator)
- 位运算符(Bitwise Operators)
- 三元运算符(Ternary operator)
2.3.1 算数运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | b = 4; -b | -4 |
+ | 加 | 5+5 | 10 |
- | 减 | 5 - 4 | 1 |
* | 乘 | 5 * 2 | 10 |
/ | 除 | 5 / 2 | 2 |
% | 取模(取余) | 5 / 2 | 1 |
++ | 自增(前):先相加后赋值 自增(后):先赋值后相加 |
a = 2; b = ++a; a = 2; b = a++; |
a = 3; b = 3; a = 3; b = 2; |
– | 自减(前):先相减后赋值 自减(后):先赋值后相减 |
a = 2; b = --a; a = 2; b = a–; |
a = 1; b = 1; a = 1; b = 2; |
+ | 字符串连接 | “Hell” + “o” | “Hello” |
public class ArithmeticTest {
public static void main(String[] args) {
int num1 = 14;
int num2 = 6;
int num3 = 5;
int num4 = -10;
int num5 = -7;
//除号:/
int result1 = num1 / num2;
System.out.println(result1); //2
double result2 = (double) num1 / num2;
System.out.println(result2); //2.3333333333333335
//去余:%
int result3 = num1 % num3;
System.out.println(result3); //4
double result4 = num4 % num3;
System.out.println(result4); //0.0
double result5 = num4 % num5;
System.out.println(result5); //-3.0
//后 ++:先赋值后相加
int a1 = 10;
int a2 = a1++;
System.out.println("a1 = " + a1 + "\t" + "a2 = " + a2);
//前 ++:先相加后赋值
int a3 = 10;
int a4 = ++a3;
System.out.println("a3 = " + a3 + "\t" + "a4 = " + a4);
}
}
/*
练习,随意一个整数,打印出它的个位数,十位数,百位数
*/
public class ArithmeticExercise {
public static void main(String[] args) {
int number = 157;
int singleDigit = number % 10;
System.out.println("个位数是:" + singleDigit);
int tenDigits = number / 10 % 10;
System.out.println("十位数是:" + tenDigits);
int hundreds = number / 100;
System.out.println("百位数是:" + hundreds);
}
}
2.3.2 赋值运算符
public class AssignmentTest {
public static