繁体   English   中英

原始类型只是不从java.lang.Object继承的类型吗?

[英]Are primitive types only types not inherited from java.lang.Object?

我正在审查java角色的原始类型面试问题。 我在测试期间被问到这样的陈述。

基本类型是不从java.lang.Object继承的任何类型。

还有其他类型不扩展java.lang.Object 例如, null是一个值,因此它不会扩展它。 虽然抽象类可以,但接口也不会扩展它。

关于原始类型,答案是肯定的,不是。 当你编写它们时,原始类型不会从java.lang.Object 但是,在将java代码编译为java字节码时,编译器会执行一项称为自动装箱的操作

简而言之,在编译时,编译器将所有原始值转换为它们的包装类( Integer为int, Boolean值为Boolean值等)。 但是,他有效地做到了这一点,因为它转换了int i = 0; into Integer i = Integer.valueOf(0); 在幕后,包装类型的valueOf函数是一个Flyweight Factory,它最多只有一个Integer 0的实例,一个Integer 1等...

因此,在编码时使用基本类型,但JVM使用原始类型的包装器,它实现了java.lang.Object

不,他们不是。 接口也不从java.lang.Object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM