根据https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html,Java中的一个字节是:
"字节数据类型是一个8位带符号的二进制补码整数.它的最小值为-128,最大值为127(含)."
如果我在Java中以二进制补码形式写入最大值(127),我可以将其保存为字节类型.
byte positive127 = 0b01111111;
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试对最小值-128执行相同操作,则将其解释为整数.我无法将其保存在一个字节中.
byte negative127 = 0b10000000;
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么当文档声明字节类型应该能够保存这个值时,这是不可能的吗?
提前致谢!
以下代码生成StackOverFlowException.问题是为什么?它看起来合法......
using System;
namespace learning
{
public class TestClass
{
private String name;
public String Name
{
get => Name;
set => name = value;
}
}
class Program
{
static void Main(string[] args)
{
TestClass e = new TestClass();
Console.WriteLine(e.Name);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试删除名称空间学习{...},但它没有改变任何东西.