Java 基本数据类型
基本类型 | 包装类 | 字节数 | 位数 | 最大值 | 最小值 |
---|---|---|---|---|---|
boolean | Boolean | 1byte | 8bit | true | fasle |
byte | Byte | 1byte | 8bit | 2^7 - 1 | -2^7 |
short | Short | 2byte | 16bit | 2^15 - 1 | -2^15 |
int | Integer | 4byte | 32bit | 2^31 - 1 | -2^31 |
long | Long | 8byte | 64bit | 2^63 - 1 | -2^63 |
float | Float | 4byte | 32bit | 3.4028235E38 | 1.4E - 45 |
double | Double | 8byte | 64bit | 1.7976931348623157E308 | 4.9E - 324 |
char | Character | 2byte | 16bit | 2^16 - 1 | 0 |
Java 运算符 分为四类:
- 算数运算符(9):+ - * / % ++ --
- 关系运算符(6):== != > >= < <=
- 逻辑运算符(6):&& || ! ^ & |
- 位运算符(7):& | ~ ^ >> << >>>;
一、算数运算符:
算数运算符操作数必须是数值类型,分为一元运算符和二元运算符:
- 一元运算符,只有一个操作数。
- 二元运算符有两个操作数,运算符在两个操作数之间。
一元运算符:正 ‘+’,负 ‘-’,自加 ‘++’,自减 ‘--’
- ”++“和”--“运算符,只允许用于数值类型的变量,不允许用于表达式中。
- "++"和”--“可以用于数值变量之前或者之后。
两处使用差别:
++ 和 -- 用于数值变量之前,在赋值操作中,先对被 ++ 或 -- 操作变量值先加1或者先减1,然后在进行其他的操作。
++ 和 -- 用于数值变量之后,在赋值操作中,先用被 ++ 或 -- 操作变量值先进行其他的操作,然后在加1或者先减1。
二元运算符:加 '+',减 '-',乘 '*',除 '/',求余 '%'
- 在算数运算符中,+ - * / 完成加减乘除四则运算,%是求两个操作数相除后的余数。
- 运算规则和数学运算基本相同,在算数运算中,计算时按照从左向右的顺序计算。
- 乘除和求余优先于加减,不同的是,程序中的乘运算符不可省略,在数学中可写为 y=2x 而程序中必须写为 y=2*x 。
- 当二元运算的两个操作数的数据类型不同时,运算结果的数据类型和参与运算的操作数的数据类型中精度较高(或位数较长)一致。
转换原则:
从 低 精度向 高 精度转换byte 、short、int、long、float、double
低精度到高精度会自动转换,而 高 精度到 低 精度则要类型 强制 转换。
计算机的数据长度:
位:一个二进制数据0或1,是1bit(位) 。
字节:存储空间的计量单位,是1byte = 8bit 。
注意:
1. 数值计算中语法现象 晋升 即:byte、short和char(低于int的数据类型)进行算术运算后,结果会自动提升成int类型。
2. char与任意类型运算时,也会先自动转换为int型的,再做其它类型的自动转换。
3. 算数运算可以加入小括号"()"提高优先级,优先小括号内运算,再其他运算符运算。
4. 算数运算前操作数变量必须赋值,反之,报语法错误。
二、关系运算符:
关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型(boolean布尔类型)的数值。
等于 '==' 不等于 '!=' 大于 '>' 大于等于 '>=' 小于 '<' 小于等于 '<='
注: boolean类型只能比较相等和不相等,不能比较大小;
1. >=的意思是大于或等于,两者成立一个即可,结果为true,<=亦如此;
2. 判断相等的符号是两个等号,而不是一个等号,这个需要特别小心。
3. 实际代码中,数值、变量以及运算结果都可以直接参与比较。
4. 但是是程序中为了增强可读性,有些时候需要将比较分开进行书写。
比较运算符是程序设计中实现数据比较的基础,也是很多逻辑实现的基础,在程序逻辑中,经常通过比较一定的条件,来判断后续的程序该如何执行。
三、逻辑运算符
逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。
逻辑运算的数据和逻辑运算符的运算结果是boolean类型。
在程序设计时使用&&和||运算符,不建议使用 & 和 | 运算符。
逻辑与 '&&' 逻辑或 '||' 逻辑非 '!' 逻辑异或 '^' 逻辑与 '&' 逻辑或'|'
A | B | A && B | A || B | !A | A ^ B | A & B | A | B |
---|---|---|---|---|---|---|---|
true | true | true | true | false | false | true | true |
false | false | false | false | true | false | false | false |
true | false | false | true | false | true | false | true |
false | true | false | true | true | true | false | true |
- 两种逻辑与(&& 和 &)的运算规则基本相同,两种逻辑或(|| 和 |)的运算规则也基本相同。
- & 和 | 运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。
- 对于 & 来说,如果左侧条件为 false,也会计算右侧条件的值。
- 对于 && 来说,如果左侧的条件为false,则不计算右侧的条件,这种现象被称作短路现象。