可能重复:
之间的差异
有人能解释一下
签名右移运算符“
更多信息
遵循此链接
您可以通过一个简单的程序看到区别:
public static void main(String[] args) throws InterruptedException, IOException {
int i = -1;
int j = i >> 1;
int k = i >>> 1;
System.out.println("i = " + i + "\t\t<=> " + Integer.toBinaryString(i));
System.out.println("j = " + j + "\t\t<=> " + Integer.toBinaryString(j));
System.out.println("k = " + k + "\t<=> " + Integer.toBinaryString(k));
}
输出:
i = -1 <=> 11111111111111111111111111111111
j = -1 <=> 11111111111111111111111111111111
k = 2147483647 <=> 1111111111111111111111111111111
从Java教程:
无符号右移运算符“
我知道Java不支持运算符重载,但我看到您可以为Integer对象赋值,例如,使用运算符,而不是使用setter。 所以我想知道是否有可能将这种行为实现到任何类?
java运算符"的含义是什么-
问题内容: 请告诉我Java是否可以重载运算符?如果可以在Java中的任何地方使用它,请告诉我。 问题答案: 不,Java不支持用户定义的运算符重载。Java唯一接近“自定义”运算符重载的方面是对字符串+的处理,这将导致常量的编译时串联或使用StringBuilder / StringBuffer的执行时串联。但是,您无法定义自己的操作符,它们的操作方式相同。 对于确实支持运算符重载的类Java(
Rust可以让我们对某些运算符进行重载,这其中大部分的重载都是对std::ops下的trait进行重载而实现的。 重载加法 我们现在来实现一个只支持加法的阉割版复数: use std::ops::Add; #[derive(Debug)] struct Complex { a: f64, b: f64, } impl Add for Complex { type Outpu
问题内容: 有人可以解释运算符在Java中的作用。我在HashMap中的Hash方法这个问题中遇到了它。从其在问题中的用法来看,它似乎是移位运算符- 和之间有什么区别? 问题答案: 从Java教程: 无符号右移运算符“ >>>”将零移位到最左位置,而“ >>”之后的最左位置取决于符号扩展名。
问题内容: 嗨,我可以知道Java?:运算符是什么,我正试图查找有关其工作方式的信息,但我不知道它叫什么,在Google中键入?:不能给出正确的结果。 问题答案: 它是 条件 运算符。 有人称它为 三元 运算符,但这实际上只是在说它有多少个操作数。特别是,Java的未来版本可以(完全合理地)引入 另一个 三元运算符-而运算符的_名称_ 是条件运算符。 参见语言规范的15.25节: 条件运算符?:使