| 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,右边不执行。 |