java之基本数据类型
1、 认识二进制
2、数字的基本数据类型
-
整数类型
byte占用1个byte,值域是-128~127
short占用2个byte,值域是-32768~32767
int占用4个byte,值域是-2147483648~2147483647,其中java缺省就是int。
long占用8个byte,值域是-9223372036854774808~9223372036854774807。 -
浮点(小数)类型
float占用4个byte,有精度。+-3402823466385288598
double精度是float的两倍,占用8个byte。java中浮点数缺省是double类型 -
符号位
3、布尔和字符数据类型
- 布尔和字符数据类型
boolean占用1个byte,值域是true,false。
char占用2个byte,值域是所有字符(最多65535个)。
4、java中的运算符
运算符:对一个或多个值进行运算,并得出一个运算结果。
运算符的运算结果类型有的是固定的,有时候会根据被计算的值变化。比如两个int相加,结果的类型就是int,两个byte相加,返回值的类型就是int。
混淆点:除赋值运算符外,运算符本身不会更改变量的值。
比较运算符: > >= < <= != ==
布尔运算符:! 、&、 && 、| 、||
小括号运算符:小括号运算符内可以包含任何运算符,决定运算符的顺序。
运算符优先级
()
!
*,/,%
+ -
> >= < <=
==
!=
& && | ||
=
5、java中位运算符
位移运算符:
>> : 符号位不动,其余位右移,符号位后边正数补0,负数补1,又称为带符号右移。
>>>:符号位一起右移,左边补0,又称无符号右移。
>>: 左移,右边补0。左移没有带符号位一说,因为符号位在最左侧。
按位运算符不会改变原本的变量的值
位移运算符不会改变原本的变量的值
6、基本数据类型更多语法点
计算并赋值运算符:作用是为了让代码更简洁,比如a =a+10,简化为a+=10
数据类型自动化转换:
- 自动类型转换
不会出现问题的类型转换,编程语言可以做自动化类型转换,比如低精度的数字向高精度的数字转换。
自动化类型转换可以发生在算数运算,也可以发生在赋值。
数值精度顺序:double>float>long>int>short>byte
char可以转换为int
char可以转换为int,同样是2个byte,但是因为char是无符号数,值域超出了short
-
数值精度顺序
数值精度计算:double > float > long > int > short >byte -
char可以转换为int
char可以转换为int,虽然同样是2个byte,但是因为char是无符号数,值域超出了short可以表示的范围,所以不可以自动转为short。 -
强制类型转换
强制类型转换: -
可能出现问题的类型转换,需要使用强制类型转换,比如 高精度数值向低精度数值转换
-
强制类型转换也是操作符
-
语法是用小括号括起来的目标类型放在被转换的值前面
-
强制转换会造成数据精度丢失
数值溢出
- 数值计算一旦溢出,结果就失去意义。
7、字符集编码和字符串
- 字符集
字符集(charset):字符的集合,一般会包含一种语言的字符,比如GBK,包含所有常用汉字字符的字符集。ASCII是包含所有英文字符的字符集。
字符就是java中char。 - 编码
char代表一个字符,本质是数字,将数字映射到字符,就叫编码。
将一个字符集映射到数字,就是给这个字符集编码。 - 编码和字符集介绍
常用的字符集简介
ASCII码:包含所有英文字符的字符集。
Unicode:包含世界所有的常用字符,编码包括:UTF-8、UTF-16等
-java中的字符集
java中用的是UTF-16编码的Unicode。
UTF-16是16个bit,即两个byte,char占用2个byte的原因。
网友评论