System.out.println((-1<<31));
Run Code Online (Sandbox Code Playgroud)
为什么这会给出输出-2147483648
我知道-1 << 31会给100000000000000000000000000000,所以它应该给ans (int)Math.pow(2,31) 等于2147483648
我所知道的是: -
" int hashCode()返回对象的内存地址作为对象的默认哈希值."
如果引用x并y表示两个不同的对象,则表达式
(x.hashCode() == y.hashCode())并不总是false
所以,我想询问在哪些情况下,2个不同对象的哈希值是相同的.
在Javadoc中写道:
public static String toString(double d)
返回double参数的字符串表示形式.下面提到的所有字符都是ASCII字符.
如果参数是NaN,则结果是字符串"NaN".
但是当我编译下面的代码时,它会给出错误:找不到符号NaN
String intStr2 =Double.toString(NaN);
Run Code Online (Sandbox Code Playgroud)