[TOC]
一、关键字、保留字和标识符
1.关键字
在Java中已经被规定好的一些字符串,它们有自己的含义。
比如说: int
char
switch
if
...
关键字中所有字母都是小写
2.保留字
在Java中暂时没有使用,但是后面的版本有可能会使用
比如说:goto
const
3.标识符
自己命名的一个内容,一般对变量、类、方法进行命名的名字。对大小写特别敏感
int A;
int a;
上面的两个变量代表的是不同的意思
3.1 标识符的命名规则
- 只能由大小写字母、数字、下划线、$符号组成
- 不能以数字开头
- 标识符不能使用关键字、保留字中的字符串
3.2 标识符的命名规范
- 为变量、为方法名取名字:单个单词,全部都为小写;多单词,第一个单词小写,第二个单词首字母大写,例如:aaaBbbCcc
- 为类、接口取名字:单个单词,首字母大写;多个单词,每个首字母都要大写,例如AaaBbb
- 为包名取名字时,单个单词和多个单词全部小写
- 为常量名取名字:单个单词全部大写,多个单词之间用下划线隔开,例如:AAA_BBB_CCC
- 要见名知意,比如说有一个变量是存储年龄的,变量名就写为 age。
二、变量
Java语言是一种强类型语言,它对类型的标注比较严格。
1.数据类型
1.1 整形
类型名 | 关键词 |
---|---|
整形 | int |
长整形 | long |
短整形 | short |
字节 | byte |
整形一般是整数,比如说:1,2,3,4这样的整数。
1.2 浮点型
类型名 | 关键词 |
---|---|
单精度浮点型 | float |
双精度浮点型 | double |
浮点型一般是小数,比如说:1.2,3.6,9.7这样的小数。
1.3 字符型
类型名 | 关键词 |
---|---|
字符型 | char |
字符型一般是拿来存放字符的内容,当然也可以存放整数,显示字符的本质是通过 ASCII
找到所对应的字符。
1.4 布尔类型
类型名 | 关键词 |
---|---|
布尔类型 | boolean |
布尔类型中只有两个值,一个是 true
,另一个是 false
。
1.5 默认值
整形的常量一般默认为 int
类型
浮点型的常量一般默认为 double
类型
2.变量的创建
第一种创建变量的方法
类型名 变量名;
第二种创建变量的方法
类型名 变量名 = 值;
创建一个 int
类型的变量 age
,它的初始值为10
int age = 10;
3.变量的使用
其实就当作一个值来进行使用即可,例如输出变量中的值:
public static void main(String[] argv){
int a = 10;
System.out.println(a);
}
用于相加,例如两个变量,将这两个变量相加,得到的值赋值给另一个变量
public static void main(String[] argv){
int a = 10, b = 20, c;
c = a + b;
}
4.变量使用的注意点
变量必须要先声明才能进行使用。
如果不声明,这个变量不存在。
变量声明在一个作用域内,那这个变量在这个作用域中可以使用,出了这个作用域就不能再使用了
5.隐式类型转换和强制类型转换
主要处理两个类型不同的变量或者数值进行计算的时候会出现类型不匹配问题。
5.1 隐式类型转换
本质上是:小类型转换为大的类型。
比如说下面的代码:
public static void main(String[] argv){
int a = 10;
float b = 8;
System.out.println(a + b);
}
int
类型的a变量和 float
类型相加,int
类型的a变量会转换为 float
类型的a变量于 float
类型的b变量相加,得到的类型为 float
类型
类型大小的关系排行:
byte、char、short-->int-->long-->float-->double
5.2 强制类型转换
本质上:把一个大的类型转换为一个小的类型。
写法如下:
(转换后的类型)需要转换的变量名、类名;
比如说:将一个 float
类型的变量a强制转换为 int
类型,写法如下
float a = 8.5;
(int)a;
缺点:会导致精度损失
三、常量
不会改变的量
写法:
final 类型名 常量名 = 初始值;
创建一个int
类型的常量 ACG
:
public static void main(String[] argv){
final int ACG = 10;
}
四、权限修饰符
在Java中权限修饰符有四种
| 说明 | 修饰符 |
|--|--|
| 公共 | public |
| 私有的 | private |
| 保护的 | protected |
| 缺省 | 不写 |
在面向对象中会细讲这些内容。
五、转义字符
字符 | 说明 |
---|---|
\n | 换行符 |
\t | 制表符 |
\r | 回车 |
\b | 退格 |
\f | 换页 |
\" | 双引号 |
\\ | 反斜杠 |
\' | 单引号 |
\ddd | 8进制数所对应的一些字符 |
\uddd | 十六进制所对应的一些字符 |
注意:这些是字符,需要加上 ""
或者 ''
才能输出。
六、运算符
1.算数运算符
符号 | 说明 |
---|---|
+ | 如果是两个数值之间代表的是相加 如果是字符之间,代表连接 |
- | 两数相减 |
* | 两数相乘 |
/ | 两数相除 |
% | 两数相除取出余数 |
2.逻辑运算符
a = true, b = false
符号 | 说明 | 举例 | ||||
---|---|---|---|---|---|---|
&& | 逻辑与 | a && b false | ||||
\ | \ | 逻辑或 | a \ | \ | b true | |
! | 逻辑非 | !a false |
在逻辑运算符中,在使用逻辑与&&
的时候,如果左边为false
,那么直接结果为false
,不再看右边的结果。如果左边的结果为true
,那还会继续看右边的结果。
在逻辑或||
中,左边的结果如果为true
,那直接结果为true
,不再看右边的结果。如果左边的结果为false
,那还会继续看右边的结果。
一定注意:关于逻辑运算符的两边一定要是 boolean
类型的内容比较,可以是逻辑表达式,但不能是数值。
3.位运算符
符号 | 说明 | |
---|---|---|
& | 按位与 | |
\ | 按位或 | |
~ | 按位非 |
位运算符用于数值之间的运算,就比如说有一个 char
类型的变量a,它的值为5,当使用 ~
后输出的结果为-6。
char a = 5;
System.out.println(~a);
这里需要好好分析一下,char
类型占1个字节,也就是8位二进制位,5转换为二进制为:0000 0101,按位取反后变成:1111 1010,然后以十进制的形式输出时需要将二进制转换为十进制,而这里最高位为符号位,最高位为1,所以这个数是一个负数。
而负数的二进制转换为十进制需要转换为反码,结果转换得到的反码就为:1000 0110,再翻译成十进制就为-6。
4.前++、后++、前--、后--
本质上就是自增。
4.1 前++、前--
前++和前--是先进行自增或自减操作,然后再执行其它内容。
比如说下面的代码:
int a = 10;
System.out.println(++a + 6);
输出的值为17,因为a要先做自增操作,自增完之后,再去加上6。
4.2 后++、后--
后++和后--先执行其它内容,再自己自增1或者自减1
比如说下面的代码:
int a = 10;
System.out.println(a++ + 6);
输出的结果为16,因为a先和6相加,然后再自增操作。
5.赋值运算符
符号 | 说明 |
---|---|
+= | a+=5 => a=a+5 |
-= | a-=5 => a=a-5 |
*= | a*=5 => a=a*5 |
/= | a/=5 => a=a/5 |
%= | a%=5 => a=a%5 |
6.比较运算符
符号 | 说明 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
!= | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
注意:在编程中 =
是赋值符号, ==
是等于符号