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

Java中long,double,byte,char的目的是什么?

顾穆冉
2023-03-14
问题内容

所以我正在学习Java,但是我有一个问题。看来,类型intboolean并且string将是只是我会永远需要的变量方面的一切,也许除外好float时,需要在多个十进制数字都可以使用。

我的问题是,其他类型的如longdoublebytechar等曾经在正常的日常编程中使用?这些可以用于哪些实际用途?它们的作用是什么?


问题答案:

除了“ short”(可能是对空间的浪费)之外,“ short”可能是一个例外-有时候,从字面上看,它们都是上课的动力:

  • 当您不需要小数并且没有理由使用其他任何东西时,请使用 int 。在大多数处理器/ OS配置上,这是计算机可以最有效处理的数量大小;
  • 当您需要小数并且没有理由使用其他任何东西时,请使用 精度。
  • 当您要表示一个字符时(或在极少数情况下需要两字节无符号算术),请使用 char
  • 使用一个 字节 ,如果不是你特别需要操纵 签署 (!少见)字节,或者当你需要走动 字节;
  • 当您需要简单的“是/否”标志时,请使用 布尔值
  • 使用 为那些你需要一个整数的场合,但如果幅度可能超过2十亿(文件大小,时间度量单位为毫秒/纳秒,在先进的用途压缩几件数据转换为单号);
  • 对于以下几种罕见情况,请使用 浮点数: (a)存储了 大量浮点数 ,并且值得节省内存,或者(b)执行 大量的计算 ,并且可能会造成精度损失。对于大多数应用程序,“浮动”精度非常差,但是运算速度却可以快一倍-值得一提的是,在您的处理器上进行测试,发现确实如此![*]
  • 如果您确实需要2字节有符号算术,请使用 缩写 。没有太多的情况…

[*]例如,在奔腾架构的Hotspot中,除法运算和浮点运算通常需要完全相同的时间。

除非您 真正 了解它们,否则不要对这些类型的内存使用 感到 困惑。例如:

  • *在Hotspot中, *每个对象的大小均四舍五入为16个字节 ,因此具有单个字节字段的对象将占用与具有长字段或双字段的单个对象完全相同的空间;
  • 当将参数传递给方法时, 每种类型都占用4或8个字节的堆栈 :您不会通过将方法参数从int更改为short来节省任何内容!(我见过人们这样做…)

显然,有某些API调用(例如,由于某种原因而导致浮点数的非CPU密集型任务的各种调用),您只需要将其传递给它所要求的类型即可!!

请注意,String不是原始类型,因此它实际上并不属于此列表。



 类似资料:
  • 问题内容: 有人告诉我: 在x86-64下,FP算法是通过SSE完成的,因此long double是64位。 但是在x86-64 ABI中它表示: 参见:amd64-abi.pdf 和gcc说是16并给出= 和 所以我很困惑,64位怎么样?我认为这是一个80位的表示形式。 问题答案: 在x86-64下,FP算法是通过SSE完成的,因此long double是64位。 这就是 通常发生 X86-64

  • 问题内容: 我在工作的技术测试中遇到了这个问题。给出以下代码示例: 输出为65534。 此行为仅显示负值。0和正数产生相同的值,表示在SOP中输入的那个。此处的字节无关紧要;我尝试过没有它。 所以我的问题是:这到底是怎么回事? 问题答案: 在您了解这里发生的事情之前,我们需要达成一些先决条件。了解以下要点后,剩下的就是简单的推论: JVM中的所有原始类型都表示为一系列位。的类型是由32位,所表示和

  • 问题内容: 如何在Java中找到两个长数值的模(%)?我的代码说“整数太大”,后面跟我要修改的数字。我尝试将其强制转换很长时间,但没有成功。我是否必须将其转换为BigInteger并使用剩下的方法?谢谢。 问题答案: 该运营商做工作多头。听起来您可能忘记了放在数字文字的末尾,如中所示。我们可以看到您的代码吗?

  • 问题内容: ava中的Double Brace初始化语法()是什么? 问题答案: 双括号初始化将创建一个从指定类(外部括号)派生的匿名类,并在该类(内部括号)内提供一个初始化程序块。例如 请注意,使用这种双重括号初始化的作用是创建匿名内部类。创建的类具有this指向周围外部类的隐式指针。尽管通常不是问题,但在某些情况下(例如序列化或垃圾收集时)可能会引起悲伤,值得一提的是。

  • 问题内容: 在JDK中,它实现为: 这意味着该参数根本不执行任何操作。 它背后的想法是,在具有更准确时序的硬件上,针对它的JVM可以为其提供更好的实现吗? 问题答案: 常规操作系统没有足够细粒度的分辨率,无法一次睡眠数纳秒。但是,存在实时操作系统,其中安排事件在确切的时间发生是至关重要的,并且许多操作的延迟非常低。ABS系统是RTOS的一个示例。在此类系统上,纳秒级睡眠比在操作系统无法可靠地睡眠少

  • 问题内容: 和之间有什么区别? 问题答案: 是一个对象,并且是原始数据类型。 有关更多详细信息,请参见此答案。 Double类将原始类型double的值包装在对象中。类型为Double的对象包含单个类型为double的字段。 来源:http : //docs.oracle.com/javase/7/docs/api/java/lang/Double.html