如果我的问题看起来很不自然,请原谅我.这是我在这里的第一个问题.
我脑子里有一个简单的查询.Java语言已经使用C和C++实现.
我的问题是
在C语言中,使用与给定数据类型不同的修饰符时,未定义C的格式化行为.
int c=10; printf("%f",c); // unspecified behaviour
而在Java中,如果我们使用类似的概念来使用不同的格式说明符打印数字,我们得到一个IllegalFormatConversionExceptoion
.
例外细节: -
线程"main"中的异常java.util.IllegalFormatConversionException:f!= java.lang.Integer
我的问题是: -
为什么Java和C之间存在差异,尽管Java是从C派生的!请清除我的怀疑.我会感谢天才......
在printf
Java中,通过在C同样的方法的启发,但工程完全不同.如果你给它一个BigDecimal
例子,它将打印它,即使C没有BigDecimal.
简而言之,仅仅因为Java类似于C,并不意味着它使用相同的底层函数.在大多数情况下,Java有自己的实现来确保;
定义的行为
这与Java的使用方式一致.
在所有操作系统平台上都能正常工作
为什么Java和C之间存在差异,尽管Java是从C派生的
为什么不?为什么这会有什么不同呢?
让我举个不同的例子."制造"的动词字面意思是人造的,但今天它几乎意味着相反.仅仅因为一种语言来自另一种语言并不意味着它们必须是相同的.