1:常量(掌握) |
|
(1)常量:在程序的运行过程中,其值不发生改变的量。 |
|
(2)常量的分类: |
|
A:字面值常量 |
|
B:自定义常量(面向对象部分讲) |
|
(3)字面值常量 |
|
A:字符串常量 用""括起来的内容。举例:"helloworld" |
|
B:整数常量 举例:1,200 |
|
C:小数常量 举例:12.5 |
|
D:字符常量 用''括起来的内容。举例:'a','A','0' |
|
E:布尔常量 比较特殊,只有两个值。举例:true,false |
|
F:空常量 null(数组部分讲) |
|
(4)Java中针对整数常量的表现形式 |
|
A:二进制 |
|
由0,1组成。以0b开头 |
|
B:八进制 |
|
由0,1,2,3,4,5,6,7组成。以0开头 |
|
C:十进制 |
|
由0,1,2,3,4,5,6,7,8,9组成。默认是十进制。 |
|
D:十六进制 |
|
由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成。以0x开头。 |
|
注意:字母不区分大小写。 |
|
|
|
2:进制(理解) |
|
(1)一种计数的方式。x进制表示逢x进1。 |
|
(2)进制转换 |
|
A:其他进制到十进制 |
|
系数*基数^权之和。 |
|
B:十进制到其他进制 |
|
除基取余,直到商为0,余数反转。 |
|
C:快速转换 |
|
a:二进制和十进制 |
|
8421码 |
|
b:二进制和八进制 |
|
三位组合 |
|
c:二进制和十六进制 |
|
四位组合 |
|
D:任意X进制到任意Y进制的转换 |
|
可以使用十进制作为桥梁即可。 |
|
|
|
3:有符号数据表示法(理解) |
|
(1)计算机中数据的存储和运算都是采用补码进行的。 |
|
(2)数据的有符号表示法 |
|
用0表示正号,1表示负号。 |
|
A:原码 |
|
正数:正常的二进制 |
|
负数:符号为为1的二进制 |
|
B:反码 |
|
正数:和原码相同 |
|
负数:和原码的区别是,符号位不变,数值位取反。1变0,0变1 |
|
C:补码 |
|
正数:和原码相同 |
|
负数:反码+1 |
|
(3)数据的有符号表示法练习 |
|
A:已知原码,求反码和补码 |
|
B:已知补码,求原码。 |
|
(4)补充:float浮点数在计算机中的表示 |
|
符号位 指数位 底数位 |
|
S E M |
|
3:变量(掌握) |
|
(1)变量:在程序的运行过程中,其值发生改变的量。 |
|
(2)定义格式: |
|
A:数据类型 变量名 = 初始化值; |
|
B:数据类型 变量名; |
|
变量名 = 初始化值; |
|
|
|
4:数据类型(掌握) |
|
(1)数据类型分类 |
|
A:基本类型:4类8种 |
|
B:引用类型:类,接口,数组 |
|
(2)基本类型 |
|
A:整数 占用的内存空间 |
|
byte 1 |
|
short 2 |
|
int 4 |
|
long 8 |
|
B:浮点数 |
|
float 4 |
|
double 8 |
|
C:字符 |
|
char 2 |
|
D:布尔 |
|
boolean 1 |
|
|
|
面试题:Java中的字符可以存储一个汉字吗?为什么呢? |
|
(3)注意事项:(特别注意) |
|
A:整数默认是int类型,浮点数默认是double类型(运算中一定要特别注意隐式转换) |
|
B:定义long类型数据的时候,建议加上L或者l。推荐L |
|
定义float类型数据的时候,建议加上F或者f。推荐F |
|
(不加f或F编译会报损失精度的错误) |
|
(4)使用变量的注意事项 |
|
A:作用域 |
|
每一个变量在它所属的大括号内有效,并且,同一个作用域不能定义同名的变 量。(for循环()中定义的变量与在for{}中定义有相同的作用域) |
|
B:初始化值 |
|
变量必须先声明,赋值,最后才能使用 |
|
C:在一行上定义的问题 |
|
可以在一行上定义多个变量,但是不建议。 |
|
|
|
int a,b; |
|
a = 10; |
|
b = 20; |
|
|
|
int a = 10,b = 20; |
|
|
|
int a = 10; |
|
int b = 20; |
|
|
|
5:类型转换(掌握) |
|
注意: |
|
boolean类型不参与。 |
|
(1)隐式转换:从小到大 |
|
byte,short,char --> int --> long --> float --> double |
|
|
|
long为什么可以到float呢? |
|
A:因为long和float的底层存储结构不同。 |
|
B:数据范围 |
|
long: 2^63 |
|
float: 3.4*10^38 |
|
|
|
3.4*10^38 > 3.4*8^38 = 3.4*2^3^38 = 3.4*2^114 > 2^63 |
|
(2)强制转换:从大到小 |
|
一般不建议这样做,因为可能有精度的损失。 |
|
格式: |
|
目标数据类型 变量名 = (目标数据类型)(被转换的数据); |
|
|
|
6:运算符(理解) |
|
(1)运算:对常量和变量进行操作的过程称为运算。 |
|
(2)运算符:对常量和变量进行操作的符号称为运算符 |
|
(3)表达式:由运算符把常量和变量连接起来的式子 |
|
注意:表达式必须有结果 |
|
|
|
7:算术运算符(掌握) |
|
(1)+,-,*,/,%,++,-- |
|
(2)+: |
|
正号 |
|
加法 |
|
字符串连接符 |
|
(3)%和/的区别 |
|
%:余数 |
|
/:商 |
|
整数相除,结果是整数。想得到小数,可以乘以或者除以1.0 |
|
|
|
%的结果的符号和前面的那个数一致。 |
|
(4)++,-- |
|
A:单独使用 |
|
放在数据的前面和后面效果一样。 |
|
B:参与操作使用 |
|
放在数据的前面,先数据变化,再参与运算。 |
|
放在数据的后面,先参与运算,再数据变化。 |
|
C:++,--的练习题。 |
|
|
|
8:赋值运算符(掌握) |
|
(1)=,+=,-=,*=,/=,%=,... |
|
(2)基本用法 |
|
int a = 10; |
|
把10赋值给int类型的变量a。 |
|
(3)复合用法 |
|
int a = 10; |
|
a += 20; |
|
值等价于:a = a + 20; |
|
把左边和右边的结果赋值给左边,并强制转换为左边的类型。 |
|
(4)面试题 |
|
short s = 1; s = s + 1; |
|
short s = 1, s +=1; |
|
哪个有问题。 |
|
|
|
9:关系运算符(掌握) |
|
(1)==,!=,>,>=,<,<= |
|
(2)注意: |
|
A:无论表达式简单还是复杂,结果肯定是boolean类型 |
|
B:千万不要把"=="写成"=" |
|
|
|
10:逻辑运算符(掌握) |
|
(1)&,|,^,!,&&,|| |
|
(2)单用法 |
|
&:有false则false |
|
|:有true则true |
|
^:相同false,不同true(情侣关系)(交换两个变量的值的四种方式) |
|
!:偶数个,值不变;奇数个,值相反。 |
|
(3)双用法: |
|
&&,||和&,|的区别 |
|
|
|
&&具有短路效果,左边为false,右边不执行。 |
|
||具有短路效果,左边为true,右边不执行。 |