java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java数据类型转换

Java数据类型(八种基本数据类型+四种引用类型)以及数据类型转换

作者:寻求出路的程序媛

java中除了基本数据类型之外,剩下的都是引用数据类型,下面这篇文章主要给大家介绍了关于Java数据类型(八种基本数据类型 + 四种引用类型)以及数据类型转换的相关资料,需要的朋友可以参考下

1.总览

2.基本数据类型

2.1 类型概述

2.2 基本数据类型详解

基本类型存储大小初始化默认值取值范围包装类型
byte1字节(8位)0-128~127Byte
short2字节(16位)0-32768~32767Short
int4字节(32位)0-2^31 ~ 2^31 - 1Integer
long8字节(64位)0L。"L"理论上不分大小写,但若写成"l"容易与数字"1"混淆,不容易分辨,所以最好大写。-2^63 ~ 2^63 - 1Long
float4字节(32位)0.0f符合IEEE754标准的浮点数,1.4E-45 ~ 3.4028235E38Float
double8字节(64位)0.0d符合IEEE754标准的浮点数,4.9E-324 ~ 1.7976931348623157E308Double
char2字节(16位)‘\u0000’\u0000 ~ \uffff(十进制等效值为 0~65535,本质也是数值)Character
boolean1字节(8位)/4字节(32位)falsetrue/falseBoolean

char 数据类型可以储存任何字符。
float、double不能用来表示精确的值,运算不精确——>解决方案:BigDecimal。创建BigDecimal对象的方式:

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中

//long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();

//double
System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
System.out.println("包装类:java.lang.Double");
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();

//其他类型方法同上类似

2.3 基本数据类型与引用数据类型区别

注意:Java中的包装类(Wrapper Classes)对基本数据类型进行了封装,使其也具有了对象的特性,可以调用方法和进行类型转换等操作。

2.4 基本数据类型与包装类区别

注意:在Java 5及其之后的版本中,基本类型和包装类型之间的转换会通过自动装箱、拆箱来自动进行,使得基本类型和包装类型之间的使用更加方便

补充:

String str1 = "7";
Integer m = Integer.valueOf(str1);
int n = Integer.parseInt(str1);

String str2 = "5.4";
Double d2 = Double.valueOf(str2);
double d3 = Double.parseDouble(str2);

//输出  7,  7,  5.4,  5.4
System.out.println(m + ",  " + n + ",  " + d2 + ",  " + d3);

3.数据类型转换

Java中的数据转换主要分为两种:自动类型转换(也称为隐式转换)、强制类型转换(也称为显式转换)。

转换从低级到高级:byte、short、char(三者同级)——> int ——> long ——> float ——> double

数据类型转换必须满足如下规则

3.1 具体示例

int 和 long 互转、int和double互转、int和byte互转、int和char互转、int和String互转

public static void main(String[] args) {
    int aInt = 20;
    long bLong = 50L;
    double cDouble = 4.8;

    //低优先级类型数据 + 高优先级类型数据 ——> 结果会自动转换为高优先级数据
    long sum = aInt + bLong;

    //long -> int 需要强制类型转换
    int d = (int) bLong;
    //double -> int 需要强制类型转换
    int e = (int) cDouble;

    System.out.println("自动类型转换 int—>long:  " + sum);
    System.out.println("强制类型转换 long—>int:  " + d);
    System.out.println("强制类型转换 double—>int:  " + e);
    System.out.println();


    //int 和 byte 转换
    byte fByte = (byte) aInt;  //高转低,强转
    int gInt = fByte;          //低转高,自动
    System.out.println("高转低-强转,int->byte:  " + fByte);
    System.out.println("低转高-自动,byte->int:  " + gInt);
    System.out.println();

    //int 和 char 转换
    char hChar = 'a';
    int iInt = hChar;
    char j = (char) iInt;
    System.out.println("低转高-自动,char->int:  " + iInt);
    System.out.println("高转低-强转,int->char:  " + j);
    System.out.println();

    //int 和 String 转换
    //int转String: 1)使用String的ValueOf方法   2)直接使用 String类+ (即字符串拼接),任意字符串和其他类型"+" 都会把其他类型转为字符串
    String str1 = String.valueOf(aInt);
    String str2 = "" + aInt;
    System.out.println("int转String: " + str1 + ",  " + str2);
    //String转int:调用包装类的Integer.parseInt方法,当字符串中包含非数字时会出错
    String str3 = "18";
    int k = Integer.parseInt(str3);
    System.out.println("String转int: " + k);
    System.out.println();

    //byte 和 char 互转
    byte m = (byte) hChar;
    char n = (char) m;
    System.out.println("char->byte,强转:  " + m);
    System.out.println("byte->char,强转:  " + n);
}

输出:

自动类型转换 int—>long:  70
强制类型转换 long—>int:  50
强制类型转换 double—>int:  4

高转低-强转,int->byte:  20
低转高-自动,byte->int:  20

低转高-自动,char->int:  97
高转低-强转,int->char:  a

int转String: 20,  20
String转int: 18

char->byte,强转:  97
byte->char,强转:  a

总结

到此这篇关于Java数据类型(八种基本数据类型+四种引用类型)以及数据类型转换的文章就介绍到这了,更多相关Java数据类型转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文