一、基本数据类型
1,基本数据类型
8种:byte,short,int,long,char,float,double,boolean
整型:byte,short,int,long
byte:字节型 8位 -128 -- 127 (-2^7--2^7-1)
short:短整型 16 -2^15--2^15-1
int:整型 32
long:长整型 64
浮点型:float,double
float:单精度 32
double:双精度 64
字符:char
16位
英文字符 1个字节
中文字符 2个字节
无符号的整型数
布尔:boolean
真假:true/false
2,引用数据类型(对象)
二、变量
声明:
数据类型 变量名;//仅仅声明了一个变量
变量名 = 值;//赋值
数据类型 变量名 = 值;//声明变量的同时赋值
第一个运算符:赋值运算符=
字面量:所见即所得
整型:int
浮点数:double
注意:
1,不能超出范围
2,long类型的赋值
要在数字的后面加上l/L,习惯用L
3,float类型
float f = 12.4;//类型不匹配(不能把double转换成float)
隐式类型转换:
小范围的数据类型会自动提升为大范围的数据类型(有运算符参与)
强制类型转换:
大范围的数据类型强行装换成小范围的数据类型
小范围的数据类型 变量名 = (小范围的数据类型)值(大);
byte bb = (byte)130;
问题:高位截断(精度丢失)
130 --- -126
130:...0000 0000 1000 0010
byte:8 1000 0010 -- -126
注意:一般基本数据类型不推荐使用强制类型转换,会造成精度丢失
在引用数据类型中可以使用强制类型转换,但是有前提的:
转换的类型之间有父子关系
字符型:char
无符号的整型数
声明、赋值:
char 变量名 = '单个字符';
注意:
1,字符必须写在单引号中
2,单引号中只能出现一个字符(英文,中文)
3,单个字符不能为空
空:什么都没写,不是空格
空格也是一个字符
4,不能是特殊字符
-- 转义字符
-- 制表符(空格)
-- 换行
-- 回车
java中的字符是使用Unicode的方式存储字符的
char c = 'u0000';
u四位16进制数 -- Unicode
char和int之间可以相互转化
char -- int 正常
int -- char 强制
Unicode只兼容ascii码的0-127
补充:字符串
String类--不是基本类型,是引用类型
String 变量名 = "值";
值:字符串(多个字符组成)
允许为空:
null -- 对象不存在
java.lang.NullPointerException--空指针异常
原因:对null进行了操作(调用属性和方法)
对于null,我们只能进行输出操作,除此以外都会有空指针异常
空串 -- 没有内容(字符串的长度为0)