数据类型
- 一.总体概论
- 二.java里与c的区别
- 1.float
- 2.char
- 3.boolen
- 三.类型转换
- 四.String类型
一.总体概论
在Java中数据类型主要分为两类:基本数据类型和引用数据类型。
不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节 。
整形和浮点型都是带有符号的。
整型默认为int型,浮点型默认为double 字符串属于引用类型,该中类型后序介绍。
二.java里与c的区别
1.float
在java和c里1.5都被默认认为是double类型,但是c里这个代码是能够通过的,因为它可以发生截断。在java里这个代码是不被允许的,因为java不允许发生截断。
2.char
在c语言里char类型是4个字节(发生截断后变为1个字节,可以看看我的字符和字符串博客),但在java里char被解释成两个字节。例如;它可以存中文。
3.boolen
在c语言中0表示假,非0表示真。但在java中只有true表示真,只有flase表示假。
Java虚拟机规范中,并没有明确规定boolean占几个字节,也没有专门用来处理boolean的字节码指令,在Oracle公司的虚拟机实现中,boolean占1个字节。
三.类型转换
Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验.
简单来说就是小范围可以隐式转变为大类型,而大类型只能显示强转成小类型。不相干的类型之间不能进行转换。
类型提升
b是long,a是int,当他们进行运算时,a会被提升为long类型,所以用int类型去接收就是大类型转换小类型,在java里是错误的。
byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c,就会出现上述错误.
由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short这种低于 4 个字节的类型, 会先提升成 int, 再参与计算。
四.String类型
java里的字符串没有以/0结尾,它是按照字符个数打印的。
字符串可以直接通过+进行拼接(字符串拼接任何类型都是字符串)。
int转string
string转int