java数据类型转换

1,263 阅读2分钟

数据类型之间的转换

  • float 与 double:

    Java 不能隐式执行向下转型,因为这会使得精度降低,但是可以向上转型

图片.png

图片.png

图片.png

  • 隐士转换类型:

    字面量 1 是 int 类型,比 short 类型精度要高,因此不能隐式地将 int 类型向下转型为 short 类型

    使用 += 或者 ++ 运算符会执行类型转换:

图片.png

引用类型

引用数据类型:类,接口,数组都是引用数据类型,又叫包装类

包装类的作用:

  • 包装类作为类首先拥有了 Object 类的方法
  • 包装类作为引用类型的变量可以存储 null 值
基本数据类型                包装类(引用数据类型)
byte                      Byte
short                     Short
int                       Integer
long                      Long

float                     Float
double                    Double
char                      Character
boolean                   Boolean

Java 为包装类做了一些特殊功能,具体来看特殊功能主要有:

  • 可以把基本数据类型的值转换成字符串类型的值

    1. 调用 toString() 方法
    2. 调用 Integer.toString(基本数据类型的值) 得到字符串
    3. 直接把基本数据类型 + 空字符串就得到了字符串(推荐使用)
  • 把字符串类型的数值转换成对应的基本数据类型的值(重要

    1. Xxx.parseXxx("字符串类型的数值") → Integer.parseInt(numStr)
    2. Xxx.valueOf("字符串类型的数值") → Integer.valueOf(numStr) (推荐使用)

图片.png


类型对比

  • 有了基本数据类型,为什么还要引用数据类型?

    引用数据类型封装了数据和处理该数据的方法,比如 Integer.parseInt(String) 就是将 String 字符类型数据转换为 Integer 整型

    Java 中大部分类和方法都是针对引用数据类型,包括泛型和集合

  • 引用数据类型那么好,为什么还用基本数据类型?

    引用类型的对象要多储存对象头,对基本数据类型来说空间浪费率太高。逻辑上来讲,Java 只有包装类就够了,为了运行速度,需要用到基本数据类型;优先考虑运行效率的问题,所以二者同时存在是合乎情理的

  • Java 集合不能存放基本数据类型,只存放对象的引用?

    不能放基本数据类型是因为不是 Object 的子类。泛型思想,如果不用泛型要写很多参数类型不同的但功能相同的函数(方法重载)

  • ==

    == 比较基本数据类型:比较的是具体的值 == 比较引用数据类型:比较的是对象地址值

本文正在参加「金石计划 . 瓜分6万现金大奖」