JAVA数据类型

JAVA数据类型

JAVA中数据类型有两种 基本数据类型和引用数据类型

1.基本数据类型
  • 基本数据类型有8种

    • byte
    • short
    • int
    • long
    • float
    • double
    • boolean
    • char
    • byte short int long为整数型
    • float double为浮点数型
    • boolean为布尔型
    • char为单个字符。
  • 基本数据类型的取值范围

数据类型位数取值范围说明
byte8-128~127数据存储在内存中的最原始形态
short16-32768~32767
int32-2e31~2e31-1
long64-2e63~2e63-1
float32Price
double64Price
boolean1true/false用于存储真值/假值
char16‘\u0000’~‘\uFFFF’用于存储单个字符,以Unicode编码方式

数据类型转换

程序中经常会遇到要将数据类型进行转换的情况(如:在一个表达式中存在不同类型的操作数时),Java的数据类型转换比C控制得更为严格。

数据类型转换有两种情况:
自动类型转换
强制类型转换

自动类型转换

    将一种类型的变量赋值给另一种类型的变量时,只要满足以下条件,就会发生自动类型转换
    两种类型之间相互兼容
    目标类型大于源类型(即类型提升)
    例如:
    byte a = 10;
    short b = a;
    int c = b;
    float d = c;
    double e = d;

    类型转换自动发生,无需显式说明

强制类型转换

有类型提升的情况下,编译器将自动进行类型转换,否则就要进行强制类型转换。
  • 强制类型转换也称作显式类型转换;
  • 如果被转换的值的数据类型大于其目标类型,将会丢失部分信息;
    • 如:
      • long x = 50;
      • int h = x;
      • short n = 200;
      • byte p = n;
    • 这样的语句将报错,因为int类型精度低于long类型,byte类型低于shott类型,编译器无法将其自动转换,只能进行强制转换:
      • long x = 50;
      • int h = (int)x;
      • short n = 200;
      • byte p =(byte)n;
  • 类型提升应遵循如下规则:
    • 两种类型必须兼容,且目标类型大于源类型
    • byte、char和short类型都可以提升为int型。
      • 数值型表达式的转换
      • 有double 则结果为duoble
      • 有float 结果为float
      • 有 long 结果为long
      • 其他结果为int
引用数据类型
  • 引用数据类型的定义

    在Java中,除了上述基本数据类型的变量以外,其余的全都属于引用数据类型,包括API中的类,如String、File等数组,自定义的类,如Cars、Student对象全部是引用数据类型。
    
  • 引用类型使用的场景与基本数据类型完全一样

     作为属性的类型使用
     作为方法的返回值类型使用
     作为方法的形式参数类型使用
    
  • 引用数据类型的赋值

    • 引用类型都是对象,所以赋值都使用new调用构造方法进行赋值
    • 例外:String类可以直接使用=赋值,不使用new
基本数据类型与引用数据类型的区别
-基本数据类型引用数据类型
概念变量(单纯的值)对象(引用)
存储位置在栈中存值在栈中存引用,在堆中存具体对象的属性值
赋值方式直接赋值new ,String类和包装器类可以直接赋值
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值