在Java中,长,双,字节,字符的目的是什么?
所以我正在学习java,我有一个问题。似乎类型,并且对于我在变量方面需要的几乎所有东西都有好处,除了也许可以在数字中需要十进制数时使用。int
boolean
string
float
我的问题是,其他类型,如,,等,是否曾经在正常的日常编程中使用过?这些可以用来做什么实际的事情?它们存在的目的是什么?long
double
byte
char
所以我正在学习java,我有一个问题。似乎类型,并且对于我在变量方面需要的几乎所有东西都有好处,除了也许可以在数字中需要十进制数时使用。int
boolean
string
float
我的问题是,其他类型,如,,等,是否曾经在正常的日常编程中使用过?这些可以用来做什么实际的事情?它们存在的目的是什么?long
double
byte
char
除了“短”之外,这可以说是浪费空间 - 有时从字面上看,它们都是课程的马:
[*]例如,在奔腾架构上的热点中,除除法外,float和双重操作通常需要完全相同的时间。
不要太沉迷于这些类型的内存使用,除非你真正理解它。例如:
显然,有一些API调用(例如,由于某种原因需要浮点数的非CPU密集型任务的各种调用),您只需要将其传递它所要求的类型...!
请注意,String 不是基元类型,因此它实际上不属于此列表。
java int 是 32 位,而 long 是 64 位,所以当你需要表示大于 2^31 的整数时,long 是你的朋友。有关使用 long 的典型示例,请参阅 System.currentTimeMillis()
一个字节是8位,是大多数现代硬件上最小的可寻址实体,因此从文件中读取二进制数据时需要它。
双精度型的大小是浮点数的两倍,因此您通常使用双倍数而不是浮点数,除非您对大小或速度有一些限制,并且浮点数具有足够的容量。
短是两个字节,16 位。在我看来,这是最不需要的数据类型,我还没有在实际代码中真正看到这一点,但同样,它可能对于读取二进制文件格式或执行低级网络协议很有用。例如,IP 端口号为 16 位。
Char 表示单个字符,即 16 位。这与短整型的大小相同,但短整型有符号(-32768 到 32767),而 char 则无符号(0 到 65535)。(这意味着IP端口号可能更准确地表示为char而不是短,但这似乎超出了chars的预期范围...)
对于这些细节的真正权威来源,请看 java 语言规范。