对象在 Java 中相当容易理解。对象被构造,在堆中分配空间,你将它分配给指向它的变量名(引用)。没什么大不了。但是原始类型是如何表示的呢?它们位于哪里(堆栈或堆)?
当我想知道该Integer.toString(int)
方法可能是什么样子时,我想到了这个问题。它无法解析文本,因为......它不是文本。它不能toString()
显式或隐式调用方法,因为这既是循环逻辑,也是公然无视原始类型不能分配给它们的方法(因为它们不是对象)这一事实。我认为该方法在逻辑上可能对and之间的所有可能值有大量if/else
条件,但这似乎也比它应该的复杂得多。int
Integer.MIN_VALUE
Integer.MAX_VALUE
那么这是如何工作的呢?