技术开发 频道

再读Think in Java的感受二


   【IT168 文档】
    String类型的’+’很有趣,如果表达式是以String 类型开始的,那么后面跟的操作数必须也是String 例如:
    String tString = “ x,y,z=”;
    Int x= 0,y=1,z=2;
    System.out.println(tString +x+y+z); 这里Java编译器会把x,y,z转化String形式,而不是先加起来在转化。注:在运算符方面常见的一个错误。也是从c 和c++转到Java的程序员要注意的,就是表达式While(x=y) 如果x,y是boolean类型,这时候程序就会进入死循环。就是因为本意是要比较x,y是不是相等,结果因为少写一个=,成了赋值了。Java 在这里还要好一点,如果x,y 是int 型的,Java就不会发生类似错误.c 和c++的编译器做不到这一点。

    如果你要描述任何一种语言,类型转换运算符都是必不可少的,Java也不例外,下面就一起看下Java的类型转化运算符:在特定条件下,Java会自动的将一种类型转化为另一种类型的。比方说,把整数值赋给浮点变量的时候,编译器会自动将int 转换成float类型。但是碰到一些不能自动转换的时候,你也可以告诉编译器进行转换或强制进行转换。要进行这种转换,你就得把目标数据的类型(包括所有的修饰符)放进变量左边的括号。Java允许你对除boolean类型之外的primitive 类型的数据进行任意转换,而boolean则根本不能进行转换。

    (5)常量(literals)
    16进制数表示方法:要用0x或0X开头,后面跟上0-9或大小写都可以的a-f 8进制 是由0 跟着一串0-7数字组成的。Java中没有用二进制表示常量的表示方法。

    说到指数时,有时候会觉得有点别扭,在Java程序里1.39e-47f,实际上它表示的是1.39×10-47f,提醒下,如果编译器能够确定数据类型,那么就不用加后缀表示符了。

    在运算的时候,表达式里最大的那个数据的类型决定了结果的类型。在进行数学运算时,char,short,byte都会先提升到int来运算的.如果还想把结果赋给原来的变量,这时候就需要强制类型转换(narrowing conversion)。不过不要太大意了,如果两个足够大的int 相乘,结果就有可能溢出。
0
相关文章