Java的八大数据类型

本文介绍了Java的八种基本数据类型:字节、短整型、整型、长整型、布尔、浮点型、双精度浮点型和字符型。讲解了类型转换规则,从小到大自动转换和从大到小强制转换的区别,以及字符型的Unicode编码。还特别强调了变量命名规范和类型转换中的注意事项。
摘要由CSDN通过智能技术生成

上一个文章讲了初始Java

Java八大数据类型:
(1)整数类型:byte、short、int、long
(2)小数类型:float、double
(3)字符类型:char
(4)布尔类型:boolean

变量的命名

  1. 只能包含字母、数字、_和$符,并且不能以数字开头
  2. 严格区分大小写
  3. 不能使用关键字
  4. 允许中文命名,但不建议

8个数据类型

  • 8个数据类型分别为:byte, short, int, long, float, double, char, boolean
  • 注意都是小写字母哟

1. byte(字节型)

  • 1个字节,也就是8个bit(位)
  • byte的范围是在: -128(-2的7次方) -127(2的7次方减一)

2. short(短整型)

  • 两个字节,也就是16个bit
  • short的范围是在: -2的15次方 - 2的15次方减一
  • 一般不用

3. int(整型)

  1. 4个字节, 也就是32个bit

  2. int的范围是在:

    -2的31次方 - 2的31次方减一 (-21多个亿到21多个亿)

  3. 注意事项:
    1.整数直接量默认为int类型,但不能超范围,若超范围则发生编译错误(Integer number too large)
    2.整数运算时,若超出int范围则发生溢出(溢出不是错误,但需要避免)
    例如我们假设赋值给a的最大值是2^31-1=2147483647:

    int a = 2147483647;
    System.out.println(a+1);
    

    结果是-2147483648,导致了溢出,这个就像一个圆一样,溢出的时候从最最大值来到了最小值,如果是a+2,结果会是-2147483647

4. long(长整型)

  • 8个字节, 也就是64个bit
  • int的范围是在:
    -2的63次方 - 2的63次方减一
  1. 长整型直接量需在数字后加L或l

  2. 运算时若有可能溢出,建议在第1个数字后加L
    例子:

    long a = 25L; //25L为长整型直接量
    //long b = 10000000000; //编译错误,100亿默认为int类型,但超出int范围了
    long c = 10000000000L; //100L为长整型直接量
    //long d = 3.14; //编译错误,长整型变量只能装整数
    
    //运算时若有可能溢出,建议在第1个数字后加L
    long e = 1000000000*2*10L;
    System.out.println(e); //200亿
    long f = 1000000000*3*10L;
    System.out.println(f); //不是300亿 
    //因为1000000000*3是int类型,会有溢出(30亿>21亿),所以最后结果不是300亿
    long g = 1000000000L*3*10;
    System.out.println(g); //300亿
    //这里10亿的时候是long所以即使后面乘上2个int最后输出的结果是long,没有超过范围
    

5. boolean(布尔类型)

  • 1个字节 只有 true 和 fasle

6. float(单浮点类型)

  • 4个字节, 也就是32个bit
  • int的范围是在: -2的31次方-2的31次方减一
  • 对小数部分的精度要求不是特别高
  • float需要在后面加上f或者F
    例子:
    float f =1.1;//错误的,因为默认是double,float类型小于double,所以需要强制转
    float f =1.1f;//正确的
    

7. double(双精度浮点类型)

  • 8个字节, 也就是64个bit
  • int的范围是在: -2的63次方-2的63次方减一
  • 精确的小数部分并且操作值很大时
  1. 浮点数直接量默认为double型,若想表示float需在数字后加F或f

  2. double与float型数据参与运算时,有可能会出现舍入误差,精确场合不能使用
    出现误差的原因是你给一个变量赋值,其实赋值到内存里面的还有小数点后面好多位,所以最后得到的结果会有误差,例如:

    double d=6.0,e=5.3;
    System.out.println(d-e);
    

在IDEA运行出来的结果是0.7000000000000002,所以说小伙伴们要注意千万不要用double或者float去算钱,到时候出现问题千万别来找我。

8. char(字符型)

  1. 2个字节但是只用一个字节
  2. 字符型 ,字符型直接量必须放在单引号中,单引号里面只能写一个,不能两个符号
    例子:
char c8=65;
System.out.println(c8);

输出来的是A,因为我们定义的是字符型

  1. 采用的是Unicode字符集,一个字符对应一个码,表现的形式是字符char,本质上是码int(0到65535之间)

    最主要需要记住的ASCII码:‘a’—97 ‘A’—65 ‘0’—48。 范围数值是:0-65535
    如果感兴趣的可以去这个链接或者自己查找:https://blog.csdn.net/jiayoudangdang/article/details/79828853

  2. 特殊符号需要‘\‘来转义。

    例子

    char c8='\'';
    System.out.println(c8);
    

    结果出来是 ’ 。

    另外

    char c8='\\';
    System.out.println(c8);
    

    输出结果是 \ 。

总结

在这里插入图片描述

类型之间的转换

1.基本类型由小到大:

byte<short<int<long<float<double

  • byte最小
  • 注意浮点类型永远比整型大
  1. 从小到大是自动/隐士类型转换

    比如:

    long a=1;	
    

    在这里右边的int整型转换成左边long长整型是从小转成大是自动转。

  2. 从大到小是强制转换
    强制转有可能丢失精度,特别是从浮点类型转换成整型的时候会丢失小数点。
    例子:

    double a=10.55;
    int b=(int)a;
    System.out.println(b);
    

    输出的结果是10,因为a的浮点型转换到b,变成了int型,去掉了小数点。

2.两点互转

  1. 只能用直接量,不能用变量,整数直接量可以直接赋值给byte,short,char,但不能超出范围

  2. byte,short,char参与运算的时候自动转成int类型
    例子在这里插入图片描述
    在例子中虽然a和b都是short类型,但是经过运算过后就变成了int整型,但是int转short需要强转,所以才报错

    一些互转的例子:

    System.out.println(2+2);     //4
    System.out.println(2+'2');   //52,2加上'2'的码50
    System.out.println('2'+'2'); //100,'2'的码50,加上'2'的码50
    

    下面是一个很经典的例子,'2’是char,"2"是字符串

    System.out.println('2'+"2");
    

    输出是“22”,原因是代码中的"+"其实是连接符,当他是运算符的时候’2’才是转换成int

引用数据类型

引用数据类型分3种:类(class),接口(interface),数组(array)。

简单来说就是需要我们定义或者别人已经定义好了,我们可以拿来直接用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值