Java各个类型变量边界

转自:http://blog.sina.com.cn/s/blog_5eab3d430101fdv6.html ,

         http://www.360doc.com/content/10/0915/10/2795334_53771845.shtml       十分感谢博主!

代码片段:

byte bmax, bmin;

short shmax, shmin;

char cmax, cmin;

int imax, imin;

long lmax,lmin;

float fmax,fmin;

double dmax,dmin;

fmax = Float.MAX_VALUE;

fmin = Float.MIN_VALUE;

dmax = Double.MAX_VALUE;

dmin = Double.MIN_VALUE;

bmax = Byte.MAX_VALUE;

bmin = Byte.MIN_VALUE;

cmax = Character.MAX_VALUE;

cmin = Character.MIN_VALUE;

shmax = Short.MAX_VALUE;

shmin = Short.MIN_VALUE;

imax = Integer.MAX_VALUE;

imin = Integer.MIN_VALUE;

lmax = Long.MAX_VALUE;

lmin = Long.MIN_VALUE;

System.out.println("float max="+fmax);

System.out.println("float min="+fmin);

System.out.println("double max="+dmax);

System.out.println("double max="+dmin);

System.out.println("byte max="+bmax);

System.out.println("byte min="+bmin);

System.out.println("char max="+cmax);

System.out.println("char min="+cmin);

System.out.println("short max="+shmax);

System.out.println("short min="+shmin);

System.out.println("int max="+imax);

System.out.println("int min="+imin);

System.out.println("long max="+lmax);

System.out.println("long min="+lmin);

输出:

float max=3.4028235E38

float min=1.4E-45

double max=1.7976931348623157E308

double max=4.9E-324

byte max=127

byte min=-128

char max=?

char min=

short max=32767

short min=-32768

int max=2147483647

int min=-2147483648

long max=9223372036854775807

long min=-9223372036854775808

说明:

实际上是每种类型的Container类定义的常量。

简单数据类型之间的转换

    在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int--long--float--double
 简单数据类型之间的转换又可以分为:
  ●低级到高级的自动类型转换
  ●高级到低级的强制类型转换
  ●包装类过渡类型能够转换

低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:
    byte b;
    int i=b;
    long l=b;
    float f=b;
    double d=b;

如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如r
    char c='c';
    int i=c;
    System.out.println("output:" i);
输出:output:99;


对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
    short i=99;

    char c=(char)i;

    System.out.println("output:" c);
输出:output:c;


但根据笔者的经验,byte,short,int三种类型都是整型,因此如果操作整型数据时,最好统一使用int型。

将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换。即你必须采用下面这种语句格式:
    int i=99;

    byte b=(byte)i;

    char c=(char)i;

    float f=(float)i;
可以想象,这种转换肯定可能会导致溢出或精度的下降,因此笔者并不推荐使用这种转换。

态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
原文地址:https://www.cnblogs.com/neversayno/p/5052829.html