§ 2.7 举 例

例 2.1.下 例 中 用 到 了 前 面 提 到 的 数 据 类 型 ,并 通 过 屏 幕 显 示 它 们 的 值 。

public class SimpleTypes{

public static void main( String args[] ){

byte b=0x55;

short s=0x55ff;

int i=1000000;

long l=0xfffL;

char c='c';

float f=0.23F;

double d=0.7E-3;

boolean bool=true;

System.out.println("b = "+b);

System.out.println("s = "+s);

System.out.println("i = "+i);

System.out.println("c = "+c);

System.out.println("f = "+f);

System.out.println("d = "+d);

System.out.println("bool = "+bool);

}

}

编译并运行该程序,输出结果为:

C:\>java SimpleTypes

b = 85

s = 22015

i = 1000000

l = 4095

c = c

f = 0.23

d = 0.0007

bool = true

§ 2.8 各 类 数 值 型 数 据 间 的 混 合 运 算

一 、 自 动 类 型 转 换

整 型 、 实 型 、 字 符 型 数 据 可 以 混 合 运 算 。 运 算 中 , 不 同类 型 的 数 据 先转 化 为 同 一 类 型 ,然 后 进 行 运 算 。 转 换 从 低 级 到 高 级 ,如 下 图:

转 换 规 则 为 :

① (byte或 short) op int→ int

② (byte或 short或 int) op long→ long

③ (byte或 short或 int或 long) op float→ float

④ (byte或 short或 int或 long或 float) op double→ double

⑤ char op int→ int

其 中 ,箭 头 左 边 表 示 参 与 运 算 的 数 据 类 型 ,op为 运 算 符 (如加 、 减 、 乘 、除 等 ),右 边 表 示 转 换 成 的 进 行 运 算 的 数 据 类 型 。

例2.2

public class Promotion{

public static void main( String args[ ] ){

byte b=10;

char c='a';

int i=90;

long l=555L;

float f=3.5f;

double d=1.234;

float f1=f*b;

// float * byte -> float

int i1=c+i;

   // char + int -> int

long l1=l+i1;

// long + int ->ling

double d1=f1/i1-d;

// float / int ->float, float - double -> double}

}

二 、 强 制 类 型 转 换

高 级 数 据 要 转 换 成 低 级 数 据 ,需 用 到 强 制 类 型 转 换 ,如 :

int i;

byte b=(byte)i; //把 int型 变 量 i强 制 转 换 为 byte型

这 种 使 用 可 能 会 导 致 溢 出 或 精 度 的 下 降 ,最 好 不 要 使 用。


[Java入门目录]
[第六节] | [第八节]