zoukankan      html  css  js  c++  java
  • java中基本数据类型转换及运算

    在讲解基本类型数据运算之前我们首先来了解各种基本数据类型:

    Java中一共有8中基本数据类型,并且每种数据类型所占的存储空间是固定的,这种特性也增加了java的可移植性,这一点和c语言c++是不同的,因为java是在虚拟机上运行的,数据类型和操作系统以及硬件间的适配是通过虚拟机来实现的。

    基本介绍

    Java中的8中基本数据类型:byte  short  int  long  float   double   boolean  char

    byte  short  int  long都表示有符号数,即最高位是用来表示正负的,0表示正,1表示负;

    byte占一个字节,表示范围:-~2^7-1 即-128~127

    short 占两个字节,表示范围:--~2^15-1

    int  占四个字节 ,表示范围:-~2^31-1

    long 占八个字节,表示范围:-~2^63-1

    float 占四个字节, double占八个字节

    char 占两个字节,一个char代表一个unicode码,范围:0~2^16

    boolean 占一个字节,只有true和false两个值

    使用注意事项:

    一、            在程序中使用整数常量,默认该常量为int型

    二、            如果一个整数的值大于int类型的范围,则需要将其赋值给一个long类型的变量,并且必须在该数的后面加上l或者L

    三、            程序中小数是默认为double类型的,若要将其赋值给float类型的数据则需要在数据后面加上f或者F,或者直接强制转换

    四、            可以直接将byte、short、int、long类型的数值赋值给float和double;

    类型转换与运算

    类型转换包括强制类型转换和自动类型转换;

    Java允许整型、字符型、浮点型数据进行混合运算,运算时不同类型的数据线转换为同一类型后再进行运算,转换的原则为:

    操作数1

    操作数2

    转换后的类型

    byte 、short、int

    byte 、short、int

    int

    byte 、short、int

    long

    long

    byte 、short、int、long

    float

    folat

    byte 、short、int、long、float

    double

    double

    char

    int

    int

    当发生上述的运算时就会进行自动类型转换,转换结果如上;

    而强制类型转换是不管是什么类型都可以将其转换为其他的类型(可能会出错),格式如下:

    (想转换为的类型)类型变量;

    例如:int a=(int)1.2;

    这样做可能会造成精度的丢失,还有有些类型是不可以相互转换的,这样的话就会出错,可以强制类型转换的前提是要可以相互转换。例如boolean是不能进行类型转换的。

    隐式类型转换

    隐式类型是这样一种现象,前面我们说到整数是默认为int型的,如果没有做其他优化的话 byte a=3;是有错误的,但是实际上这句话是可以正常编译的,这是因为虚拟机做了隐式类型转换,当我们将一个整数赋值给byte、short、char类型的变量时,如果该整数不超过对应变量的取值范围时就会进行隐式类型转换,隐式类型转换的前提是赋值的数是整数常量。例如:

    byte a=9;//正确

    int b=9; byte c=b;//错误,因为b是一个int类型的变量

    常见错误举例

    例如:byte a=1;

             a=a+1;//错误,因为等号右边已经转换为了int类型,而左边为byte类型

           a+=1;//正确,这句话等效于a=(byte)(a+1);

    例如:

    byte a=3+4;//正确,编译时先算出3+4等于10,再进行隐式类型转换

    byte b=3; byte c=4;

    byte d=b+c;//错误,因为在计算是就会发生自动类型转换将等式右边转换为int,见上面表格第一行;

    大家有如有遇到基本类型数据相关问题的欢迎留言

    心有多大,天有多高,一起奋斗!!
  • 相关阅读:
    分公司下拉框赋值-从后台传到前端jsp
    EASYUI DATAGRID加合计
    Quartz_TimeJob例子(C#)
    JAVA项目如何打开,打开乱码怎么办,字体太小怎么办,感叹号是什么情况
    下拉框设置下拉列表宽度
    获取dataset结果集的第一行第一列字段
    安装visio冲突
    ubuntu创建普通用户,解决远程登录失败
    ubuntu中文环境配置
    stackoverflow访问慢
  • 原文地址:https://www.cnblogs.com/zhaolei1996/p/11094058.html
Copyright © 2011-2022 走看看