当前位置: 首页 > 面试题库 >

为什么String没有原始类型?

陆信瑞
2023-03-14
问题内容

为什么大多数其他数据类型都没有Java的String基本类型?


问题答案:

字符串是一个对象,根本不是原始类型,只是一个字符数组。James
Gosling的访谈
摘录摘述了Java中根本存在原始类型的原因,这很有趣。

Bill Venners: Java为什么会有原始类型?为什么不是所有事物都只是一个对象?

James Gosling:
完全是效率问题。有各种各样的人已经建立了以int为对象的系统。有多种方法可以做到这一点,并且所有方法都有一些非常严重的问题。其中一些速度很慢,因为它们为所有内容分配内存。他们中的一些人尝试在有时是对象的地方做对象,有时又不是(这是标准LISP系统所做的事情),然后事情变得很奇怪。有点用,但是很奇怪。

只要做到有原始和对象,它们就不同了。您解决了很多问题。

简而言之,出于效率原因,存在原始类型。



 类似资料:
  • 问题内容: 在Java中,我们可以直接用于声明字符串变量名称并指定其值。即使String是非原始数据类型,也不必通过使用new关键字将字符串定义为数组。 有人可以解释为什么String是非原始数据类型吗? 问题答案: 这是字符串文字。像这样声明字符串时,实际上是在String上调用intern()方法。此方法引用内部字符串对象池。如果已经存在一个字符串值“ This is stringlitera

  • 我正在为新手程序员编写一个库,所以我试图保持API尽可能干净。 我的库需要做的事情之一是对大量的ints或long集合执行一些复杂的计算。我的用户需要从许多场景和业务对象中计算这些值,因此我认为最好的方法是使用流来允许用户将业务对象映射到或,然后在收集器中计算这些计算。 所以与其能够做到 我必须提供这样的供应商、累加器和组合器: 这对我的新手用户来说太复杂了,而且很容易出错。 在使用或的同时,是否

  • 问题内容: 如果有Wrapper类使Java成为纯面向对象的语言,那么为什么会有可在Java中使用的Primitive数据类型呢? 问题答案: 为了效率。基本类型的变量直接包含值。非基本类型的变量是引用,引用存储在内存中其他位置的对象。 每次您需要使用包装器类型的值时,JVM都需要在内存中查找对象以获取该值。对于原始类型,这不是必需的,因为变量本身包含值,而不是对包含该值的对象的引用。 但是,这不

  • 问题内容: 什么是原始类型? 问题答案: Java语言规范对原始类型的定义如下: JLS 4.8原始类型 原始类型定义为以下之一: 通过采用通用类型声明的名称而没有随附的类型参数列表形成的引用类型。 数组类型,其元素类型为原始类型。 未从的超类或超接口继承static的原始类型的非成员类型。RR 这是一个例子说明: 这是参数化类型(JLS 4.5)。通常,通俗地简称MyType为这种类型是很常见的

  • 使用泛型,原始类型不能作为类型参数传递。 在下面给出的示例中,如果我们将int基本类型传递给box类,那么编译器会抱怨。 为了缓解这种情况,我们需要传递Integer对象而不是int基本类型。 例子 (Example) package com.wenjiangs; public class GenericsTester { public static void main(String[] a