Java中的数据类型
- 基本数据类型
- 引用(复合)数据类型
基本数据类型
Java中的基本数据类型有8中,分别代表字符、数字和布尔
数字类型
- 整数
- 小数
整数
byte
short
int
long
数据类型 | 占用字节 | 数据长度 |
---|---|---|
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 |
Java中的1b(字节)= 8 bit(位)
计算机的二进制是由0、1组成的,二进制的最小单位是位,一个字节有8位组成,所以计算机的最大二进制表示为0111 1111,最高位为符号位,0代表正数,1代表负数
小数
float (单精度)
double(双精度)
数字赋值规则:
在整数的赋值运算中,会存在如下情况:
1.如果整数的值在对应的变量类型的取值范围内,则Java会自动将int 转换为byte、short,此时发生了隐式类型转换
2.如果字面量int的值大于byte、short、int的取值范围,此时无法正确完成赋值,有可能会产生损失,所以语法上会出错
3.如果字面量int对应的值要赋值给long、float、double,会自动转换
float赋值
- 如果是整数,可以直接赋值给float
- 如果是小数,则必须在后面添加F
char 赋值
- 在Java中,通过‘char’表示计算机中一个字符,字符必须用单引号引起来
- char表示一个字符的概念,所以单引号中只能写一个字符
- char 一个字符占用2个字节,char的二进制最高位不是符号位,最大值1111 1111 1111 11110—>2^16-1 = 65535
char a = ‘中’;
char a = 20013;//2013代表中
char a = ‘\u4E2D’;//使用Unicode编码,标识为\u…,\u后跟十六进制表示法
- 以上三种方式均是 char 的正确用法
布尔赋值
boolean 类型只有两个值,true(真)和false(假)
boolean a = true;
计算机的进制转换
十进制转二进制方式 :
数字除 2,一直除到 0,将余数倒序排列
十进制转八进制和十六进制和转二进制相同
小数转二进制方式:
小数部分乘 2 , 取整数,小数部分继续成2、直到小数为 0 位置, 将取到的整数正序排列
Java 中的 变量
变量的声明
类型 变量名
变量如果没有赋值,不能被使用
变量的生命周期:从变量的声明开始,到变量的块{…}结束位置完成
变量低————>高
byte --> short --> int -->long -->float --> double
Java中的运算符
Java中的运算符有以下几种类型:
- 算术运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 三元运算符
- 位运算符
- 位移运算符
1.算术运算符
两个数字做算术运算,满足以下规则:
1、如果包含 double类型,结果一定是double
2、如果包含 float类型,结果一定是float
3、如果包含 long类型,结果一定是long
4、其他数据、结果均为 int
2.赋值运算符
- +=,-=,*=,/=,%= 不会改变结果的类型
byte a = 3;
a = a + 4; //报错,a + 4的结果是int类型,a是byte类型,不能高量转成低量
a += 4; //正确,+=的运算不会改变数据结果的类型
3.一元运算符(自增、自减)
- a ++ 先计算表达式的值,表达式的值等于a的值,再对a进行 +1,并赋值给a
- ++ a 是先对a 进行 +1,并赋值给a,再将a的值赋值给表达式
int a = 10 ;
int b = a ++ - (--a) - (a --) - (--a)
a = ? , b = ?
4.逻辑运算符
&& 与运算
1.一假即假
2.如果第一个表达式为假,则第二个表达式不会被执行
3.&& 会产生断路现象
|| 或运算
1.一真即真
2.如果第一个表达式为真,则第二个表达式不会被执行
3.会产生断路现象
!非运算
- !(非)的使用:boolean a = !(b>6) 不(小于)等价于>=
三元运算符
语法: exp1 ? exp2 : exp3
exp1 必须是一个 boolean 表达式,返回的必须是true和false
exp1 如果返回 true, 则 表达式的结果 取 exp2的 结果
exp1 如果返回 false, 则表达式的结果 取 exp3 的结果
int a = 10;
int b = a > 5 ? a ++ : ++ a;
System.out.println(b);
System.out.println(a);
位运算符
位运算操作不支持小数
& (位与运算)相同位结果都为1,结果为1,否则为0(一假即假)
| (位或运算)相同为结果只要有1,结果就为1,否则为0(一真即真)
^ (异或shift+6)相同为0,不同为1
~ (漂号)位非运算符 取反(正数结果为相反数-1 负数结果为相反数-1)
注意:单 & 和 | 不会产生断路现象
位移运算符
- 左移 << 移动x位 a * 2 ^ x 有正负变化,移动32位变回原数
- 右移 >> 移动x位 a * 2 ^ -x 正数右移补0 负数右移补1,移动32位变回原数
- 无符号右移 >>> 补0
ASCII编码
- 13:回车
- 27:ESC
- 48:0
- 65:A
- 97:a