常量: 在程序执行过程中,其值不能改变
常量的分类:
字面值常量:
整数常量:
1, 12, -2
小数常量:
5.5, 3.414, -2.5
字符常量:
'a' 'A' '0'
字符串常量:
"a" "abc" "123"
布尔常量:
true false
空常量:
null 后面讲
自定义常量: 后面值
—————————————————————————————
进制:
二进制: 0, 1
八进制: 0, 1, 2, 3, 4, 5, 6, 7
十进制: 0, 1, 2, 3, 4, 5, 6, 7,8,9
16进制: 0, 1, 2, 3, 4, 5, 6, 7,8,9,a, b, c, d, e, f
二进制数据: 使用0b开头表示
八进制数据: 使用0开头表示
十进制数据:
十六进制数据:使用0x开头表示
进制转换:
十进制 转换其他进制:
规律: 除基数取余数,除到商为0,余数倒取
其他进制 转换 十进制:
规则: 系数 * 基数 ^ 权
快速转换:8421码
128 64 32 16 8 4 2 1
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
1 1 1 1 1 1 1 1
—————————————————————————————
原码,反码,补码
原码:针对有符号的数,进行划分,符号位和数值位
最高位,表示符号位,0代表正数,1代表为负数,其他位代表数值
反码:正数:与原码相同
负数:符号位不变,数值位按位取反
补码:正数:与原码相同
负数:在反码的基础上,数值位末尾+1
注意:在计算机中,我们能看到的都是数据的原码形式,而在计算机内部存储与计算采用的都是补码
格式: 数据类型 变量名 = 初始化值;
注意: 变量在未初始化前,不能使用
—————————————————————————————
数据类型:
分类:
基本数据类型: 字节数 表示数据的范围
整数类型:
byte 1 -128 ~ 127
short 2 -2^15 ~ 2^15-1
int 4 -2^31 ~ 2^31-1
long 8 -2^63 ~ 2^63-1
浮点类型
float 4 -3.403E38 ~ 3.403E38
double 8 -1.798E308 ~ 1.798E308
字符类型
char 2 0 ~ 65535
布尔类型
boolean true, false
引用数据类型:
class 类
interface 接口
[] 数组
—————————————————————————————
类型转换
byte,short,char --> int --> long --> float --> double
boolean不能参与数据类型转换
隐式类型转换:
把容器小的数据类型向容量大的数据类型转换
这个过程是自动完成的,自动类型提升
强制类型转换:
把容器大的数据类型向容量小的数据类型转换
这个过程可能会损失精度,使用时需谨慎
格式: 转换后的数据类型 变量名 = (转换后的数据类型)(需要转换的数据);
------------------------
算术运算符:
%: 取余数 去膜
将左右两边的数,进行除法运行,余数作为运算的结果,结果的正负数取决于左边的数字正负号
++,--
单独使用时,向后操作相同,就是自增1或自减1操作
参与运算时,
++,--在操作数的前面(++a), 先自增1或自减1,然后再使用结果参与运算
++,--在操作数的后面(a++), 先参与运算,然后操作数自增1或自减1
+号的功能:
加法运算
表示正负数
可以进行字符串的连接
=, +=, -=, *=, /=, %=
赋值运算符的左边必须是变量
+=:会将运算符左右两边的数值进行运算,然后将结果赋值给左边,隐含了一个强制类型转换的功能
面试题:
short s = 2;
s = s+2;//错误,损失精度
s +=2; //可以,隐含了一个强制类型转换操作 s = (short)(s+2);
—————————————————————————————
比较运算符:
==, != ,>, <, >=, <=
比较运算符的结果是 boolean 类型, 结果是 true,false
= 和 == 的区别?
= :赋值,把右边的数据 赋值给左边变量
==:比较,比较左右两边的数值是否相等
常量的分类:
字面值常量:
整数常量:
1, 12, -2
小数常量:
5.5, 3.414, -2.5
字符常量:
'a' 'A' '0'
字符串常量:
"a" "abc" "123"
布尔常量:
true false
空常量:
null 后面讲
自定义常量: 后面值
—————————————————————————————
进制:
二进制: 0, 1
八进制: 0, 1, 2, 3, 4, 5, 6, 7
十进制: 0, 1, 2, 3, 4, 5, 6, 7,8,9
16进制: 0, 1, 2, 3, 4, 5, 6, 7,8,9,a, b, c, d, e, f
二进制数据: 使用0b开头表示
八进制数据: 使用0开头表示
十进制数据:
十六进制数据:使用0x开头表示
进制转换:
十进制 转换其他进制:
规律: 除基数取余数,除到商为0,余数倒取
其他进制 转换 十进制:
规则: 系数 * 基数 ^ 权
快速转换:8421码
128 64 32 16 8 4 2 1
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
1 1 1 1 1 1 1 1
—————————————————————————————
原码,反码,补码
原码:针对有符号的数,进行划分,符号位和数值位
最高位,表示符号位,0代表正数,1代表为负数,其他位代表数值
反码:正数:与原码相同
负数:符号位不变,数值位按位取反
补码:正数:与原码相同
负数:在反码的基础上,数值位末尾+1
注意:在计算机中,我们能看到的都是数据的原码形式,而在计算机内部存储与计算采用的都是补码
—————————————————————————————
格式: 数据类型 变量名 = 初始化值;
注意: 变量在未初始化前,不能使用
—————————————————————————————
数据类型:
分类:
基本数据类型: 字节数 表示数据的范围
整数类型:
byte 1 -128 ~ 127
short 2 -2^15 ~ 2^15-1
int 4 -2^31 ~ 2^31-1
long 8 -2^63 ~ 2^63-1
浮点类型
float 4 -3.403E38 ~ 3.403E38
double 8 -1.798E308 ~ 1.798E308
字符类型
char 2 0 ~ 65535
布尔类型
boolean true, false
引用数据类型:
class 类
interface 接口
[] 数组
—————————————————————————————
类型转换
byte,short,char --> int --> long --> float --> double
boolean不能参与数据类型转换
隐式类型转换:
把容器小的数据类型向容量大的数据类型转换
这个过程是自动完成的,自动类型提升
强制类型转换:
把容器大的数据类型向容量小的数据类型转换
这个过程可能会损失精度,使用时需谨慎
格式: 转换后的数据类型 变量名 = (转换后的数据类型)(需要转换的数据);
------------------------
算术运算符:
%: 取余数 去膜
将左右两边的数,进行除法运行,余数作为运算的结果,结果的正负数取决于左边的数字正负号
++,--
单独使用时,向后操作相同,就是自增1或自减1操作
参与运算时,
++,--在操作数的前面(++a), 先自增1或自减1,然后再使用结果参与运算
++,--在操作数的后面(a++), 先参与运算,然后操作数自增1或自减1
+号的功能:
加法运算
表示正负数
可以进行字符串的连接
—————————————————————————————
赋值运算符:=, +=, -=, *=, /=, %=
赋值运算符的左边必须是变量
+=:会将运算符左右两边的数值进行运算,然后将结果赋值给左边,隐含了一个强制类型转换的功能
面试题:
short s = 2;
s = s+2;//错误,损失精度
s +=2; //可以,隐含了一个强制类型转换操作 s = (short)(s+2);
—————————————————————————————
比较运算符:
==, != ,>, <, >=, <=
比较运算符的结果是 boolean 类型, 结果是 true,false
= 和 == 的区别?
= :赋值,把右边的数据 赋值给左边变量
==:比较,比较左右两边的数值是否相等