h0: 0x67452301 
h1: 0xEFCDAB89 
h2: 0x98BADCFE 
h3: 0x10325476
h0,h1,h2,h3都是32位的.要实现c中的如下功能,也就是复制到char数组中:
  memmove ( r +  0, (char *)&h0, sizeof(h0) ); 
  memmove ( r +  4, (char *)&h1, sizeof(h1) ); 
  memmove ( r +  8, (char *)&h2, sizeof(h2) ); 
  memmove ( r + 12, (char *)&h3, sizeof(h3) );          for ( i = 0; i < 16; i++ ) 
              printf ( "%02x", r[i] ); 请问各位高手用java怎么实现.据说java中类似memcopy的内存操作的方法???

解决方案 »

  1.   

    r[0]=(char)h0;
    r[1]=(char)h1;
    r[2]=(char)h2;
    r[3]=(char)h3;java不允许对内存直接操作,但是由于数组是连续的,所以直接把h0,h1,h2,h3强制转换成char类型并赋给各个元素即可。
      

  2.   

    java的不足就存在于这里,同时它也是java的优点,所有东西都由jvm为我们做好了
    对于数组,和c一样,它会自动为它分配相匹配的连续存储单元
    而在c中,应该也不用像lz这样复杂的方法吧