一张表告诉你Java的数据类型


从图中我们可以看到Java共有8种基本数据类型:char 、byte、short、int、long、float、double、boolean

这里需要注意以下几个方面:

1.Java中字符串没有被当作数组,而是被当作对象来处理,类String和StringBuffer都可以用来表示一个字符串

2.Java不采用通常计算机系统采用的ASCII代码集,而是采用Unicode这样一个国际标准字符集。每个字符用16位表示,整个字符集共包含65535个字符。ASCII代码集中的字母A-Z和数据0-9在Unicode字符集中还是用十六进制的0x0041-0x005a、0x30-0x39来表示,以表示对ASCII码的兼容。

3.对于基本数据类型变量。如果是类变量,则其初始值为默认值(数值类型的默认值是0或0.0,字符类型的默认值是16位的0,布尔型的默认值为false)。而如果基本类型变量属于局部变量,可以事后再给该变量赋值。

4.final修饰的变量是常值变量,即赋值后变量内容不能再修改。如果前面再加上一个static则是将常值变量定义为一个类而不是实例的的常值变量。


一、基本数据类型简介

Java中基本数据类型所占的位数是确定的,不会因为机器的改变而改变

boolean 1位(1bit)

char 2字节(属于Unicode字符集,16位无符号型数据)

byte 1字节

short  2字节

int  4字节

long 8字节

float 4字节

double 8字节

1)对于多字节数据,不同的机器采取的存储方式不同,即所谓的大端和小端存储。

2)计算机处理中,如果一个数超出了计算的表达范围(如int 32位能表示的数据范围是-2^31~(2^31-1)),称为溢出。超出最大值为上溢,此时为同类型最小值。超出最小值为下溢,此时为同类型最大值。

3)想要知道int类型的最大和最小值:Integer.MAX_VALUE、Integer.MIN_VALUE

4)双精度double比单精度float具有更高的精度和更大的表示范围。但是float类型有着速度快,占用存储空间小的优点。

5)浮点数操作过程中不会因溢出而导致异常处理:如果下溢,则结果为0.0 。如果上溢,则结果为正或负无穷大(显示标识符为+Infinity或-Infinity),例如Double.POSITYVE_INFINITY

6)浮点数操作如果是数学中没有定义的值如0.0/0.0,则得到NaN(Not-a-Number),例如Double.NaN

7)字符常量是用单引号括起来的字符,例如’a‘。而"a"是包含了一个字符的字符串,二者是有区别的

8)与C、C++不同,Java中的字符数据不能用作整数,因为Java不提供无符号整数类型。但是、char类型的数字字符与int类型可以相互站换,这就涉及到后面的基本数据类型的转换问题。

二、基本类型数据间的相互转换

各数据类型的优先级顺序如下:

byte--->short--->char--->int--->long--->float--->double

当进行混合运算时候,低优先级的总是自动转换为高优先级类型,然后再参与运算。高级数据转换为低级数据,需要用到强制类型转换,例如:

int i ;

byte b=(byte)i;

但是这样可能会导致溢出或者精度的下降,最好不要使用。

三、基本类型数据的类包装

Java为每一个基本数据类型都封装了一个包装类。相应的包装类名字为:

Boolean、Character、Byte、Short、Double、Float、Integer、Long、

例如用整型数18来建议一个Integer类型的对象

Integer intObj1 = new Integer(18);

如果要从对象中提取出数值:

int vlaue = intObj1.intValue();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值