Java 有人在实际应用程序中使用短字节和字节基元类型吗?

Java 有人在实际应用程序中使用短字节和字节基元类型吗?,java,types,primitive,Java,Types,Primitive,自2004年以来,我一直在用Java编程,主要是企业和web应用程序。但我从来没有使用过short或byte,除了一个玩具程序,只是为了知道这些类型是如何工作的。即使在一个100次的for循环中,我们通常使用int。我不记得除了一些公共api和框架之外,我是否遇到过任何使用byte或short的代码 是的,我知道,在内存节省非常重要的情况下,您可以在大型阵列中使用短字节或字节来节省内存。有人愿意练习吗?或者只是书上的东西 [编辑] 使用字节数组进行网络编程和套接字通信是一种非常常见的用法。达伦,

自2004年以来,我一直在用Java编程,主要是企业和web应用程序。但我从来没有使用过short或byte,除了一个玩具程序,只是为了知道这些类型是如何工作的。即使在一个100次的for循环中,我们通常使用int。我不记得除了一些公共api和框架之外,我是否遇到过任何使用byte或short的代码

是的,我知道,在内存节省非常重要的情况下,您可以在大型阵列中使用短字节或字节来节省内存。有人愿意练习吗?或者只是书上的东西

[编辑]


使用字节数组进行网络编程和套接字通信是一种非常常见的用法。达伦,谢谢你指出这一点。现在来点短的怎么样?Ryan举了一个很好的例子。谢谢你,Ryan。

请记住,Java也用于内存非常有限的移动设备。

我在C/C++代码中经常使用“byte”,实现图像压缩(即对黑白位图的每个字节运行压缩算法)和处理二进制网络消息等功能(通过解释消息中的字节)


然而,我实际上从未使用过“float”或“double”。

我经常使用byte。通常以字节数组或ByteBuffer的形式,用于二进制数据的网络通信


我很少使用float或double,我也不认为我曾经使用过short。

在进行模型检查时,我在保存状态时使用了字节。在该应用程序中,节省的空间值得做额外的工作。否则,我从不使用它们。

我看到的它们的主要用法是在处理具有未知结构的数据时,甚至没有真正的数据网络编程是前者的一个例子(发送数据的人知道它的意思,但你可能不知道),类似256色(或灰度)图像的图像压缩就是后者的一个例子


我突然想到grep是另一种用途,任何类型的文件复制也是如此。(当然,操作系统会这么做——但有时还不够好。)

我发现我在做一些低级图像处理时使用的是字节变量。.Net GDI+绘图例程非常慢,所以我自己动手做了


然而,大多数时候,我坚持使用有符号整数,除非考虑到问题的限制,我被迫使用更大的数值。我所做的任何物理建模通常都需要浮点或双精度,即使我不需要精度。

Java语言本身使得使用
字节
类型。每当您对
字节
short
值执行任何操作时,Java会首先将其提升为
int
,操作结果将以
int
的形式返回。此外,它们是有符号的,并且没有无符号的等价物,这是另一个常见的问题


因此,你最终大量使用
字节
,因为它仍然是所有网络事物的基本组成部分,但是
类型也可能不存在。

直到今天,我才注意到我很少使用它们

我使用字节来处理网络相关的东西,但大多数时候它们是用于我自己的工具/学习

短?几乎从来没有

长?都不长

对于循环、计数器等,我首选的整数文本总是int

当数据来自另一个地方(例如数据库)时,我使用正确的类型,但对于文本,我总是使用int。

使用
short
很多次。可能是因为Excel的行/列数限制

几个月前,他们改为
int
替换


查看int的语义可能更有趣。这些任意限制和静默截断是您想要的吗?对于应用程序级代码来说,真正需要的是任意大小的整数,只是Java无法合理地表达这些整数。

我在许多不同的地方使用字节,主要涉及低级数据不幸的是,Java语言的设计者使用字节签名。我想不出在什么情况下使用负字节值是有用的。使用0-255范围会更有帮助

我认为我从来没有在任何合适的代码中使用过short。我也从来没有使用float(如果我需要浮点值,我总是使用double)


我同意。理想情况下,在高级语言中,我们不应该关心底层的机器表示。我们应该能够定义自己的范围或使用任意精度的数字。

当我们为手机等电子设备编程时,我们使用字节和短字符。在这种情况下,我们应该注意内存管理在内存数据网格上,它可能很有用。 像Gemfire这样的数据网格的概念是拥有一个巨大的分布式地图。 当您没有足够的内存时,您可以使用LRU策略溢出到磁盘,但映射的所有条目的键都保留在内存中(至少使用Gemfire)

因此,使密钥占用空间小是非常重要的,特别是在处理非常大的数据集时。
对于输入值,如果可以,最好使用内存占用小的适当类型…

byte
s和
short
s在Java卡开发中被广泛使用。请看我的答案。

我在Java应用程序中使用了与自定义usb或串行微控制器通信的short和bytes来记录我将10位值包装在2个字节中作为短值。

Ahan..可能是因为您所在的域。我可能也是这样。同意。int文本更易于编程(循环、计数器等),但是对于其他人提到的特定功能,这些类型非常方便。对于数据库,我