从零开始的Java之旅——数据类型详解

类型总览

类型分类 

语法格式

     数据类型 变量名 = 初始值

     Java使用变量时一定要初始化,否则会报错(初始化:在定义变量时就对其赋值)

使用示例

(下面只讨论使用方法和使用特殊规定 大小和范围在上面表格)

int类型  包装类为:Integer

     int a = 10;  //定义整形变量a,a是变量名(也被称为标识符),该变量中放置的值为10

short类型    包装类为:Short

     short a = 25;

long类型    包装类为:Long

     long a = 10L    //整数默认为int类型,L使10为长整型(long)

     (当long a =2147483648时会报错,而long a =2147483648L时不会)

byte类型    包装类为:Byte

double类型     包装类:Double

     double d = 3.14;

float类型      包装类:Float

      float f = 12.5F   //小数默认为double类型,F使12.5为float类型

char类型       包装类:character

     char  a =  'a'

     char  a =  '正'

     中文英文都可以(阿拉伯语都能用) (太复杂的中文会报错)

      一个中文占两字节 也就是说一个 char类型只能储存一个中文字

boolean类型    包装类:Boolean

   boolean a = true;

   boolean b = false;

注意:boolean类型只有true和false两种取值(没有c语言中的0为假,非零为真)且boolean类型不可参与运算。

类型转换

     简单来说就是把这种类型的数据转换成另一种类型

     1.隐式转换,范围从小到大自动进行

        int a = 10;

        long b = 100L;    a,b什么值都行

        b = a;//隐式转换

     2.强制转换,范围由大到小,手动操作且可能丢失一部分精度就是本来人家有八个字节大,硬要放在四字节的空间里,放不下

        int a = 10;

        long b = 100L;         

        a=(int)b;//强制转换    在变量前加一个(类型)就可以转换

       注:强制类型转换不一定能成功,两个不相干类型不可以转,比如布尔(boolean)类型转不了。

类型提升

       不同类型数据进行运算时,范围小的类型会自动变成大的类型再进行运算的过程叫做整形提升,由于cpu按照四字节从内存中读取数据,所以小于四字节的类型(short,byte)在运算时,会先转变成int型。

我们来看下面这段代码:

      int a = 10;

      long b = 120;

      int c = (int)(a+b);  //可以运行但丢失精度 a+b是int+long然后提升为long+long 结果再强转为int(丢失精度)再赋给c;

      long b = a+b;   // a+b是int+long然后提升为long+long再赋给c

那么再看下一段

    byte a = 10;

    byte b = 50;

    long c = a+b;  //程序报错 a+b是byte+byte然后提升为int+int 直接赋给long类型的c会丢失精度

c语言学了27天啊.........多少天能学完java呢.......(任重道远) 

猜你喜欢

转载自blog.csdn.net/chara9885/article/details/126006664