请求高手帮帮忙,本人初学Java是遇到一个问题

2024-12-03 18:39:36
推荐回答(4个)
回答1:

存的是实地址值。说是哈希码的其实是说反了:Java里的对象有一个默认的哈希码:对象的内存地址。Object 类的 int hashcode() 默认返回对象的地址。但也可以覆盖它让它返回任意别的什么数,并不需要和内存地址有任何的联系。
说句柄的是面对熟悉C和Windows等操作系统的开发员的。在给Windows编程的时候要用到和引用变量相对应的一个东西,称为句柄。
比如用C在Windows中创建一个窗口可以用这样一句(比较恐怖的)话
HWND hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, SCREEN_WIDTH, SCREEN_HEIGHT, NULL, NULL, hInstance, NULL);
没有接触过的话就不用去理它。

回答2:

举例:
Object a=new Object();
a:称为引用又叫句柄(台湾的叫法)
引用(句柄)里面存的是 地址(如@de6ced),不存hashcode,hashcode是计算出来的,
基本来说hashcode相同2对象地址相同,但内容不一定会相同,还可以根据hashCode来提取在hash容器中提取对象,涉及到hashcode()一般会追出equals()

回答3:

引用变量保存的是地址(在栈内),哈希吗值相当于是一个地址的编码方式,也就是说地址是以哈希吗值的形式保存的,不知道兄弟伙你懂没得?

回答4:

引用类型保存在栈中..
好像与哈希码没有关系。