2-Java基本数据类型和运算符

目录

Java基本类型

Java数据类型转换

Java运算符

1、Java基本类型

image

1.1、boolean布尔

- 只有true和false两种值,在内存中占1bits(位),默认是false

1.2、byte/short/int/long整数类型

类型

占用空间(字节)

占用空间(位)

范围

byte 1 8 -(2^7)~(2^7)-1(-128~127)超出则翻转
short 2 16 -(2^15)~(2^15)-1(-32768~32767)
int 4 32 -(2^31)~(2^31)-1(约正负21亿)
long(前缀L或l) 8 64 -(2^63)~(2^63)-1(正负19位数)

1.3、float/double浮点数类型

类型 占用空间(字节) 范围
float(后缀f或F) 4 -3.403E38~3.403E38
double(后缀d或D,可省略) 8 -1.798E308~1.798E308

- java浮点类型有两种表达形式

十进制数形式:3.14、314.0、0.314

科学计数法形式:314e2、314E2、314E-2

- float和double都不能表示很精确的数字,所以不要使用浮点数进行比较

1.23f == 1.229999999f//true

4.56 == 4.559999999999999999d//true

1.4、char字符

- char是一个单一的16位的Unicode字符,以u开头,和4个16位数字组合而成

- 最小值是u0000,即为0,最大值是uffff,即为65535

- char可以存储任何字符

- Java允许使用转义字符来将其后的字符转变为其他含义

转义符 含义 Unicode字符
换行 u000a
 退格(backspace) u0008
回车 u000d
制表符tab u0009
双引号” u0022
单引号’ u0027
\ 反斜杠(注意1个反斜杠表示转义) u005c

2、Java数据类型转换

2.1、自动类型转换

- 自动类型转换又叫隐式类型转换,必须满足两个条件:

    第一是两种数据类型彼此兼容

    第二是目标类型的取值范围必须大于原类型的取值范围

image

2.2、强制类型转换

- 通过(type)var来讲值var转化成括号中指定的数据类型

- 强制类型转换可能造成精度降低或者值溢出

int x = 300;

byte bx = (byte)x;    //值为44

强制类型转换注意:

操作较大的数时,要留意是否溢出,尤其是整数操作时

3、Java运算符

3.1、算数运算符

- 双目:加+、减-、乘*、除/、余%

- 单目:自增++、自减--

3.2、赋值运算符

赋值:a = 3

a += 3 ---> a = a + 3

a –= 3 ---> a = a – 3

a *= 3 ---> a = a * 3

a /= 3 ---> a = a / 3

a %= 3 ---> a = a % 3

3.3、逻辑运算符

短路或&&------------------a和b全为true时结果为true,当a为false时结果直接为false不计算b(节省时间)

短路且||-------------------a和b全为false时结果为false,当a为true时结果直接为true不计算b(节省时间)

逻辑非!--------------------!true == false,!fasle == true

逻辑或&-------------------a和b全为true时结果为true,无论a的计算结果如何,都要计算b

逻辑且|-------------------a和b全为false时结果为false,无论a的计算结果如何,都要计算b

3.4、位运算符

- 只针对整型byte、short、int、long进行运算

- 按位与&:同位对比,只有两位都为1时,结果才为1

- 按位或|:同位对比,两位中其中1位为1时,结果就为1

- 按位异或~:同位对比,两位不同时,结果为1;两位相同时,结果为0

- 按位取反^:将每一位都取反,得到结果(单目运算)

- 左移<<:a << 2表示,将a转为二进制,将所有二进位全部左移2位

- 右移>>:a >> 2表示,将a转为二进制,将所有二进位全部右移2位

2.5、关系运算符

大于>、小于<、等于==、大于等于>=、小于等于<=、不等于!=

3.6、运算符优先级

- 括号的优先级最高

- 单目运算优先级大于多目运算

- 算数运算符*/大于+-

- 算数运算符优先级 > 关系运算符 > 逻辑运算符

原文地址:https://www.cnblogs.com/new-hashMap/p/12158460.html