Java数据类型

java数据类型

基本数据类型

  • 数值型

    1. 整数类型
      • byte
        占用存储空间:1字节,8位;
        表示范围:- 27 ~ 27 -1 (-128~127);
        表示:byte num = 1
      • short
        占用存储空间:2字节,16位;
        表示范围:- 215 ~ 215 -1 (-32768-32767);
        表示:short num = 1
      • int
        占用存储空间:4字节,32位;
        表示范围:- 231 ~ 231 -1 (-2147483648~2147483647);
        表示:int num = 1
      • long
        占用存储空间:8字节,64位;
        表示范围:- 263 ~ 263 -1;
        表示:long num = 1llong num = 1L;建议使用大写L,小写容易误认为数字1;
    2. 浮点类型

      • float
        占用存储空间:4字节,32位;
        表示范围:-3.403E38~3.403E38;
        表示:float num = 1ffloat num = 1F;
      • double
        占用存储空间:8字节,64位;
        表示范围:-1.798E308~1.798E308;
        表示:double num = 1.0;
      • 比较

        • 默认是double
        • 浮点数存在误差,所以在比较中尽量避免使用浮点数,如

          float num1 = 0.1f;
          double num2 = 1.0/10;
          System.out.println(num1==num2);
          输出的是false而不是true
        • 如果需要精确保存一个浮点数可使用BigDecimal;

      • 三个特殊的浮点数值:
        正无穷大,负无穷大和非数;用于表示溢出和出错;正无穷大通过Double和Float类的POSITIVE_INFINITY表示,负无穷大通过Double和Float类的NEGATIVE_INFINITY表示,非数通过Double 和Float类的NaN表示;所有的正无穷大数值都是相等的,所有的负无穷大的数值也是相等的,而NaN不与任何数值相等,甚至与NaN都不相等;
  • 字符型

    • char
      占用存储空间:2字节,16位;
      表示范围:0~ 216 -1(0~65535);
      表示:
      char c = 'a'; 直接通过单个字符指定;
      char c = '\n'; 通过转义字符制定;
      char c = '\uXXXX'XXXX代表一个十六进制的整数,通过Unicode表示;
      常见转义字符:
    转义字符说明Unicode表示方法
    \b退格符\u0008
    \n换行符\u000a
    \r回车符\u000d
    \t制表符\u0009
    \”双引号\u0022
    \’单引号\u0027
    \ \反斜线\u005c
  • 布尔型

    • boolean
      占用存储空间:1位;
      表示范围:true,false;
      表示:boolean b = true;

类型转换

  • 自动类型转换

    1. 容量(表示的数据个数)小的数据类型可以自动转换为容量大的数据类型:

      int i = 1;
      double d = i;
      float f = i;
      double d2 = f; 
      
    2. 特例:可以将整数常量直接赋值给byte,short,char等类型变量,而不需要强制类型转换,只要不超出其表示范围:

      short b = 12;// 合法;
      short b = 1234567;//非法
      
    3. 在下图,黑色箭头表示无数据丢失的自动类型转换,红色表示在转换时可能存在精度的损失:
      结构图

  • 强制类型转换
    1. 强制类型转换用于显示的转换一个数值的类型,在有可能丢失信息的情况下进行的转换是通过强制类型转换来实现的,但可能造成精度降低或溢出;
    2. 当一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,就会被截断为完全不同的值;

引用数据类型

  • 接口
  • 数组类型
  • null
  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值