java 能否根据内存地址获得内存数据?

sjcy007 2008-07-10 01:06:08
java 能否根据内存地址获得内存里的数据?
...全文
1365 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjcy007 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 da11393 的回复:]
引用 7 楼 sjcy007 的回复:
引用 5 楼 da11393 的回复:
不过这样很无聊,这地址是JVM的,不是物理的

刚才google了一下,Object的hashcode()默认也返回jvm的地址

就是说java无法直接的读取物理内存中的值了么?


对的。JVM对于Java而言就是物理了,Java无法超出JVM的范围
除非用JNI去调用c/c++
[/Quote]
恩,明白了,谢谢,红色的说的很恰当。经典!
sjcy007 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 da11393 的回复:]
引用 7 楼 sjcy007 的回复:
引用 5 楼 da11393 的回复:
不过这样很无聊,这地址是JVM的,不是物理的

刚才google了一下,Object的hashcode()默认也返回jvm的地址

就是说java无法直接的读取物理内存中的值了么?


对的。JVM对于Java而言就是物理了,Java无法超出JVM的范围
除非用JNI去调用c/c++
[/Quote]
恩,明白了,谢谢,红色的说的很恰当。经典!
da11393 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sjcy007 的回复:]
引用 5 楼 da11393 的回复:
不过这样很无聊,这地址是JVM的,不是物理的

刚才google了一下,Object的hashcode()默认也返回jvm的地址

就是说java无法直接的读取物理内存中的值了么?
[/Quote]

对的。JVM对于Java而言就是物理了,Java无法超出JVM的范围。
除非用JNI去调用c/c++
sjcy007 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 da11393 的回复:]
不过这样很无聊,这地址是JVM的,不是物理的

刚才google了一下,Object的hashcode()默认也返回jvm的地址
[/Quote]
就是说java无法直接的读取物理内存中的值了么?
sjcy007 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ZangXT 的回复:]
怎么有这样的想法?
[/Quote]

呵呵,玩游戏,想作弊...
da11393 2008-07-10
  • 打赏
  • 举报
回复
不过这样很无聊,这地址是JVM的,不是物理的

刚才google了一下,Object的hashcode()默认也返回jvm的地址
da11393 2008-07-10
  • 打赏
  • 举报
回复

import sun.misc.Unsafe;

public class DoUnsafe {
private static final Unsafe unsafe = Unsafe.getUnsafe();

public static void main(String args[]) throws Exception {
System.out.println("memory: " + unsafe.getByte(0x1b126c));
}
}


output:
memory: 0
ZangXT 2008-07-10
  • 打赏
  • 举报
回复
怎么有这样的想法?
老紫竹 2008-07-10
  • 打赏
  • 举报
回复
JNI可以,直接没戏。那是C/C++的强项。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧