JAVA数据类型体系

JAVA数据类型

java数据类型分为‘基本数据类型’和‘引用数据类型’。


基本数据类型

  • 有8种基本数据类型
  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean
  • char

ps:其中byte、short、int、long是整形;float、double是浮点型;boolean是布尔型,返回值为true和false;char是字符型。

  • 基本数据类型取值范围

    数据类型位数取值范围说明
    byte1-128~127数据存储在内存中的最原始形态
    short8-32768~32767
    int16-2e31~2e31-1
    long32-2e63~2e63-1
    float64
    double32
    boolean64true/false用于存储真值/假值
    char160-65535 ‘\u0000’~‘\uFFFF’用于存储单个字符,以Unicode编码方式
  • 类型转换
    分为‘ 隐式类型转换(自动转换类型) ’和‘显示类型转换(强制类型转换)’。

    • 隐式类型转换
      将一种类型的值赋给另一种类型的值,只要满足一下两个条件,就会发生自动转换:
      • 两种类型之间相互兼容
      • 目标类型取值范围大于源类型

    栗子

    byte a=1;
    short b=a;
    char b1='A';
    int c=b1;
    long d=c;
    float e=d;
    double f=e;

    ps:有类型提升的情况下,编译器将自动进行类型转换,否则就要进行强制类型转换。

    • 强制类型转换
      将一种类型的值赋给另一种类型的值,满足以下条件将会使用到强制类型转换
      • 两种类型之间相互兼容
      • 目标类型取值范围小于源类型

    栗子

    double a=1.5;
    flaot b=(flaot)a;
    long c=(long)b;
    int d=(int)c;
    char d1=(char)d;
    short e=(short)d1;
    byte f=(byte)e;
  • 数值表达式的转换

    • 有double 则结果为duoble
    • 有float 结果为float
    • 有 long 结果为long

    栗子

    byte a=1;
    short b=a;
    char b1='A';
    int c=b1;
    long d=c;
    float e=d;
    double f=e;
    
    int s=a+b+b1+c;
    long ss=a+b+b1+c+d;
    float sss=a+b+b1+c+d+e;
    double ssss=a+b+b1+c+d+e+f;

    ps:强制转换可能会导致精度丢失,‘char’可以与整形转换

引用数据类型

在Java中,除了上述基本数据类型的变量以外,其余的全都属于引用数据类型,‘String’比较特殊但也是一个引用类型。

> 引用类型使用的场景与基本数据类型一模一样。
>  - 作为属性的数据类型使用
>  - 作为方法的返回值数据类型使用
>  - 作为方法的形式参数数据类型使用
  • 引用数据类型的赋值
    引用类型都是对象,所以赋值都使用new调用构造方法进行赋值;‘String’类可以不使用new,直接赋值。

    栗子

    Car car = new Car();
    String name="王二小";

总结

比较数据类型和引用类型

比较基本数据类型引用数据类型
概念单纯的值对象
存储位置栈中栈中存引用,堆中存对象本身
赋值方式直接赋值使用new关键字,(String和包装器类除外)

计算机常识

计算机使用0和1存储数据
用bit来存储0和1
1 byte = 8 bit
1 k = 1024 byte
1 m = 1024k
1 g = 1024 m
进制之间的转换

取值范围

这里写图片描述

学习感悟
   通过对Java数据类型体系的学习,让我又进一步的了解到java的强大。java有两种数据类型:基本数据类型和引用类型,其中基本数据类型又分8种:byte,short,int,long,float,double,boolean,char。每一个基本数据类型都有自己的取值范围,要在合适的场合选择合适的数据类型。数据类型之间也可以互相转换,取值范围小的转换为大的为自动转换,不需要显式说明,取值范围大的转换为小的就需要强制转换了。引用类型就是自己创建的类,其中String比较特殊,可以直接赋值,但是也是属于引用类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值