Java和C之间关系不一致

asa*_*sad 1 c java format exception format-specifiers

如果我的问题看起来很不自然,请原谅我.这是我在这里的第一个问题.

我脑子里有一个简单的查询.Java语言已经使用CC++实现.

我的问题是

在C语言中,使用与给定数据类型不同的修饰符时,未定义C的格式化行为.

int c=10;
printf("%f",c);    // unspecified behaviour
Run Code Online (Sandbox Code Playgroud)

而在Java中,如果我们使用类似的概念来使用不同的格式说明符打印数字,我们得到一个IllegalFormatConversionExceptoion.

例外细节: -

线程"main"中的异常java.util.IllegalFormatConversionException:f!= java.lang.Integer

我的问题是: -

为什么Java和C之间存在差异,尽管Java是从C派生的!

请清除我的怀疑.我会感谢天才......

Pet*_*rey 5

printfJava中,通过在C同样的方法的启发,但工程完全不同.如果你给它一个BigDecimal例子,它将打印它,即使C没有BigDecimal.

简而言之,仅仅因为Java类似于C,并不意味着它使用相同的底层函数.在大多数情况下,Java有自己的实现来确保;

  • 定义的行为
  • 这与Java的使用方式一致.
  • 在所有操作系统平台上都能正常工作

为什么Java和C之间存在差异,尽管Java是从C派生的

为什么不?为什么这会有什么不同呢?

让我举个不同的例子."制造"的动词字面意思是人造的,但今天它几乎意味着相反.仅仅因为一种语言来自另一种语言并不意味着它们必须是相同的.