【JavaSE】:数据类型

数据类型

  • 一.总体概论
  • 二.java里与c的区别
    • 1.float
    • 2.char
    • 3.boolen
  • 三.类型转换
  • 四.String类型

一.总体概论

在Java中数据类型主要分为两类:基本数据类型和引用数据类型

【JavaSE】:数据类型_第1张图片

不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节 。
整形和浮点型都是带有符号的。
整型默认为int型,浮点型默认为double 字符串属于引用类型,该中类型后序介绍。

二.java里与c的区别

1.float

【JavaSE】:数据类型_第2张图片

在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 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验.

【JavaSE】:数据类型_第3张图片

简单来说就是小范围可以隐式转变为大类型,而大类型只能显示强转成小类型。不相干的类型之间不能进行转换。

类型提升

【JavaSE】:数据类型_第4张图片

b是long,a是int,当他们进行运算时,a会被提升为long类型,所以用int类型去接收就是大类型转换小类型,在java里是错误的。

【JavaSE】:数据类型_第5张图片

byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c,就会出现上述错误.

由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short这种低于 4 个字节的类型, 会先提升成 int, 再参与计算。

四.String类型

在这里插入图片描述

java里的字符串没有以/0结尾,它是按照字符个数打印的。

字符串可以直接通过+进行拼接(字符串拼接任何类型都是字符串)。

在这里插入图片描述

在这里插入图片描述

int转string

【JavaSE】:数据类型_第6张图片

string转int

在这里插入图片描述

你可能感兴趣的:(JavaSE,java)