以前学C, 刚接触java。求教:
byte a = (byte)0x01;
byte b = (byte)0x02;
char c = (char)a;
强制转换后c=?
java的强制转换是怎样实现的,在C里如果a,b地址连续,c读出的值可能是0x0102.在java里我想测试一下,测试后的结果是0x01。所以我想得到a,b的地址看他们是不是连续的。
请大侠们, 多指教!

解决方案 »

  1.   

    java不允许直接访问内存,所以没法查看变量的内存地址
    java并不是编译成机器码,是一种伪代码,所以变量值是被编译成一个索引,并不像C直接编译成一个相对内存地址
    另,在C里面,char c = (char)a;也不能实现c读出0x0102,c也只是0x01,要用char指针指向a的地址才可以,如
    char *c = (char*)(&a);
      

  2.   

    ...........  C语言,没学过,学过C#、
    ...........  在Java中,类型转换定义很广泛、不好说呀..... 
    ...........  自己多做点练习,就明白叻
      

  3.   

    关于强行转换的实现,在LZ的另一个帖子里也回复了http://topic.csdn.net/u/20120426/12/41e1b6d2-c057-4093-b5ae-2c453a9d2831.html
      

  4.   

    <a target="_blank" href="http://qun.qq.com/#jointhegroup/gid/102760896"><img border="0" src="http://cgi.qun.qq.com/gscgi/s1/gp.do?gid=102760896" alt="点击这里加入此群" title="点击这里加入此群"></a>
      

  5.   

    强制转换就是前面加需要转换的类型名称、、如String s='a',要强制转换城int 型,只需int n=(int)s;