第3章 操作符

3.4 赋值

基本类型的赋值与C++/C一样

View Code
 1 import static java.lang.System.out;
 2 public class HelloWorld{
 3 
 4      public static void main(String []args){
 5         int a = 3;
 6         int b = a;
 7            b = 5;
 8            out.println("a : " + a + ",  b : " + b); 
 9      }
10 } 
11 /*Output : 
12 a : 3,  b : 5
13 */

对于引用类型,可以看作是C++的shared_ptr的赋值

View Code
 1 import static java.lang.System.out;
 2 public class HelloWorld{
 3 
 4      public static void main(String []args){
 5         Integer a = new Integer(3);
 6         Integer b = a;
 7            out.println("a : " + a + ",  b : " + b); 
 8            Integer c = new Integer(0);
 9            b = c;
10            out.println("a : " + a + ",  b : " + b);    
11            b = 5; /* or b = new Integer(5) */
12            out.println("c : " + c + ",  b : " + b);           
13      }
14 }/*Output
15 a : 3,  b : 3
16 a : 3,  b : 0
17 c : 0,  b : 5
18 */
19    

如果对于shared_ptr不熟悉的话,可以试着变换一下上面的代码,更深入理解一下Java的引用与赋值的概念。

3.15 类型转换操作符

Java中没有Sizeof,Sizeof为了移植而生,Java不存在移植的问题。

boolean不允许进行转换。

char, byte, short进行运算,统统转换成int然后再运算(比如char + char的结果一定是一个int型,同理byte + short也是一个int型,甚至 byte ^ char也是一个int型;

int转到long不会失去精度,int转到float会失去精度,long转到double也会失去精度,int转到double不会失去精度。

向上的类型转换会自动进行(比如从int到long,从derived class到base class),但从上向下的类型转换就需要使用Java的类型转换。

Java的类型转换与C的类型转换格式一样:(derived class)base object。

posted on 2013-05-01 12:54  peter9606  阅读(113)  评论(0编辑  收藏  举报

导航