Java中是否有内置方法来查找任何数据类型的大小?有什么方法可以找到尺寸?
否。标准Java SE类库中没有这种方法。
设计者的观点是Java不需要它,因为该语言使应用程序1无需知道需要为原始值,对象或具有给定数量的元素的数组保留多少空间。
您可能会认为sizeof运算符对需要了解其数据结构占用多少空间的人很有用。但是,您还可以使用Java内存分析器简单,可靠地获得此信息以及更多信息,因此不需要sizeof方法。
先前的评论者指出,该观点sizeof(someType)
比更具可读性4
。如果您接受该可读性参数,那么补救方法就在您手中。只需定义一个这样的类…
public class PrimitiveSizes {
public static int sizeof(byte b) { return 1; }
public static int sizeof(short s) { return 2; }
// etcetera
}
…并静态导入…
import static PrimitiveSizes.*;
或定义一些命名常量;例如
public static final int SIZE_OF_INT = 4;
或(Java 8及更高版本)使用Integer.BYTES
常量,依此类推。
Java设计人员为何未在标准库中实现此功能?我的猜测是:
还有一个问题是,下一个需求将是一种sizeof(Object o)
充满技术困难的方法。
上面的关键词是“他们”!
无论您或我对它有什么看法都没关系。 进而,在评论中辩论这个话题是没有意义的。请,只是,不要。
1-程序员可能需要知道以便设计空间高效的数据结构。但是,我无法想象为什么在运行时通过方法调用在应用程序代码中需要该信息。
问题内容: 我从来没有见过这样的声明,它是否存在于Java世界中? 问题答案: Java的版本是-它创建指定类型的新对象。 在Java中,内存是为您管理的,因此您不能显式或对象。
问题内容: Java中是否有类似.NET的东西? 问题答案: 下议院郎有它。或者你可以扔一个。
问题内容: 在C#中,您可以将一个类标记为,以便只能从同一包中对其进行访问。Java有什么类似的东西吗? 问题答案: 您可以通过从类的声明中省略安全修饰符(公共,私有)来创建程序包专用类。
问题内容: 是否有与Java或JVM语言的Python virtualenv类似的东西? 问题答案: 据我了解,virtualenv使您能够拥有单独的库安装路径,从而有效地分隔“虚拟” Python安装。 Java没有“系统范围内已安装”库(*)的概念:它总是在类路径中搜索要加载的库。由于可以为每个应用程序定义类路径(并且需要将其定义!),因此每个应用程序都可以选择要加载的库和版本。 如果您更深入
问题内容: 开始使用C#学习LINQ。 尤其是LINQ to Objects和LINQ to XML。 我真的很喜欢LINQ的强大功能。 我了解到有一种叫做JLINQ的JavaScript实现。 此外(如Catbert所言),Scala将具有LINQ 您知道LINQ或类似的东西是否将成为Java 7的一部分吗? 更新:2008年的有趣帖子-LINQ forJava工具 问题答案: 看一下Scala
问题内容: 是否有类似C#/。NET的东西 在Java中? 问题答案: 编辑:作为Java 8,这可能与 在Java8之前: Java中没有这样的东西, 但是您可以有如下内容: 例如,您可以通过以下方式使用Range: 另外,如果您不喜欢直接使用,则可以使用工厂类: 这是我们的工厂测试: 我希望这些会有用:)