一些基本的Java语法。
关键字和保留字
关键字
Keyword
定义:被JAVA语言赋予了特殊的含义,用做专门用途的字符串(单词)
特点:关键字总所有字母都小写
保留字
reserved word
定义:现有JAVA版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字。
goto、const
标识符
identifier
定义:各种变量、方法、类等要素命名时使用的字符序列称为标识符
规则:
- 由26个英文字母大小写,0-9,_或$组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含关键字和保留字
- 严格区别大小写,长度无限制
- 不能包含空格
命名规范
- 包名:多单词组成时所有字母都小写:xxxxyyyyzzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxxYyyyZzzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxxYyyyZzzzz
- 常量名:所有字母都大写。多个单词时每个单词用下划线连接:XXX_YYY_ZZZ
变量
概念
- 内存中的一个存储区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的存储单位。包含变量类型、变量名和存储的值
作用
用于在内存中保存数据
注意
- 先声明,后使用
- 使用变量名来访问这块区域的数据
- 作用域:其定义所在的一对{}内
- 变量只有在其作用域内才有效
- 同一作用域内,不能定义重名的变量
格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
class VariableTest { public static void main(String[] args){ int myAge = 12; System.out.println(myAge);
int myNumber; myNumber = 1001; System.out.println(myNumber); } }
|
变量
按数据类型分类
基本数据类型:
整型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
引用数据类型:
类(class)
接口(interface)
数组(array)

整型变量
| 类型 |
占用存储空间 |
表数范围 |
| byte |
1字节 = 8bit位 |
-128 ~ 127 |
| short |
2字节 |
$-2^{15} \sim 2^{15} - 1$ |
| int |
4字节 |
$-2^{31} \sim 2^{31} - 1$ |
| long |
8字节 |
$-2^{63} \sim 2^{63} - 1$ |
long型变量必须以 L 或 l 结尾
浮点型变量
| 类型 |
占用存储空间 |
表数范围 |
| float |
4字节 |
-3.403E38 ~ 3.403E38 |
| double |
8字节 |
-1.798E308 ~ 1.798E308 |
float 尾数可以精确到7位有效数字
float型变量结尾以 F 或 f 结尾
字符型变量
char 1字符=2字节
1 2 3 4 5 6 7 8 9 10
| class VariableTest { public static void main(String[] args){ char c1 = 'a'; System.out.println(c1);
char c2 = '\u0123'; System.out.println(c2); } }
|
布尔型变量
boolean: 只有两个值:true、false
1 2 3 4 5 6
| class VariableTest { public static void main(String[] args){ boolean b1 = true; System.out.println(b1); } }
|
基本数据类型之间的运算规则
自动类型提升
byte 、char、 short –> int –> long –> float –> double
容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
当byte、char、short三种类型变量做运算时,结果为int类型(包括同种类型变量做运算)
1 2 3 4 5 6 7 8 9 10 11 12 13
| class VariableTest1{ public static void main(String[] args){ byte b1 = 2; int i1 = 129; int i2 = b1 + i1; System.out.println(i2);
float f = b1 + i1; System.out.println(f); } }
|
强制类型转换
自动类型提升运算的逆运算
- 需要使用强转符:()
- 可能导致精度损失
1 2 3 4 5 6 7
| class VariableTest2{ public static void main(String[] args){ double d1 = 12.9; int i1 = (int)d1; System.out.println(i1); } }
|
变量运算规则的两个特殊情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class VariableTest3{ public static void main(String[] args){
long l = 123213; System.out.println(l); long l1 = 2131231232331233L;
byte b = 12; } }
|
String类型变量的使用
- String属于引用数据类型
- 声明String类型变量时,使用一对””
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class StringTest{ public static void main(String[] args){ String s1 = "Hello World"; System.out.println(s1);
String s2 = "a"; String s3 = "";
int number = 1001; String numberStr = "学号:"; String info = numberStr + number; boolean b1 = true; String info1 = info + b1; System.out.println(info1); } }
|
练习1
1 2 3 4 5 6 7 8 9 10 11 12
| class StringTest{ public static void main(String[] args){ char c = 'a'; int num = 10; String str = "hello"; System.out.println(c + num + str); System.out.println(c + str + num); System.out.println(c + (num + str)); System.out.println((c + num) + str); System.out.println(str + num + c); } }
|
练习2
1 2 3 4 5 6 7 8 9
| class StringTest{ public static void main(String[] args){ System.out.println("* *"); System.out.println('*' + '\t' + '*'); System.out.println('*' + "\t" + '*'); System.out.println('*' + '\t' + "*"); System.out.println('*' + ('\t' + "*")); } }
|
String转int
1 2 3 4 5 6 7
| class StringTest{ public static void main(String[] args){ String str1 = 123 + ""; int num1 = Integer.parseInt(str1); System.out.println(num1); } }
|
进制
整数
二进制:0,1,满2进1,以0b或0B开头
十进制:0~9,满10进1
八进制:0~7,满8进1,以数字0开头
十六进制:0~9及A~F,满16进1,以0x或0X开头表示,此处的A~F不区分大小写
如:0x21AF + 1 = 0X21B0
原反补码
正数原反补相同
负数反码符号位不变,其他位按位取反,补码为反码+1
进制转换
十进制 –> 二进制 :除2取余的逆