以前学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的地址看他们是不是连续的。
请大侠们, 多指教!
byte a = (byte)0x01;
byte b = (byte)0x02;
char c = (char)a;
强制转换后c=?
java的强制转换是怎样实现的,在C里如果a,b地址连续,c读出的值可能是0x0102.在java里我想测试一下,测试后的结果是0x01。所以我想得到a,b的地址看他们是不是连续的。
请大侠们, 多指教!
java并不是编译成机器码,是一种伪代码,所以变量值是被编译成一个索引,并不像C直接编译成一个相对内存地址
另,在C里面,char c = (char)a;也不能实现c读出0x0102,c也只是0x01,要用char指针指向a的地址才可以,如
char *c = (char*)(&a);
........... 在Java中,类型转换定义很广泛、不好说呀.....
........... 自己多做点练习,就明白叻