Java中的数组的长度是固定的。Java为什么要允许大小为0的数组呢?
String[] strings = new String[0];
它表示它为空。即您可以遍历它,就好像它有项目并且没有结果发生一样:
for(int k = 0; k < strings.length; k++){
// something
}
从而避免了检查的需要。如果所讨论的数组为null
,则会发生异常,但是在这种情况下,它什么也不做,这可能是适当的。
当我编写以下代码时,我得到了预期的错误
问题内容: 为什么Python 3允许“ 00”作为原义的0,却不允许“ 01”作为原义的1?有充分的理由吗?这种矛盾使我感到困惑。(我们正在谈论的是Python 3,它故意打破了向后兼容性以实现诸如一致性之类的目标。) 例如: 问题答案: 根据https://docs.python.org/3/reference/lexical_analysis.html#integer- literals :
如果字符串包含以下内容,则该字符串是有效的浮点数: 可选“-”(U+002D)字符。 按照给定的顺序,下列一项或两项: 一个或多个ASCII数字的序列。 一个单一的“。(u+002e)字符。 一个或多个ASCII数字的序列。 “E”(U+0065)字符或“E”(U+0045)字符。 可选“-”(U+002D)字符或“+”(U+002B)字符。 一个或多个ASCII数字的序列。 null 在IE11
问题内容: 作为实验,我尝试扩展-array,如下所示: 在类本身中添加一些与排序,交换,子数组构建等有关的方法。但是我在编译时遇到了这个错误: 我很好奇:为什么Java不允许扩展数组? 问题答案: 扩展基本类型(例如a 或数组)会打开安全漏洞。如果Java允许您扩展数组,则采用数组的方法将变得不安全。这就是字符串为,而数组根本不能扩展的原因。 例如,您可以重写该方法,并返回不正确大小的数组。这有
问题内容: 我读了这个问题,并认为如果可以写的话,很容易解决(不是没有它就不能解决): 我不确定在很多情况下它是否有用,但是我想知道为什么它没有用,以及其他语言中是否存在类似的东西。 你们有什么感想? 编辑: 澄清一下:是的,我知道,这在Java中是不可能的,我也不是很想念它。这不是我期望的工作,并且惊讶于出现编译器错误。我只是有这个主意,喜欢讨论它。 问题答案: 它违反了封装。你不应该能够绕过父
我在YouTube上跟随编译器教程视频,当我遇到这样一个事实,即C编程语言更快,因为它允许静态链接和动态链接,但Java只允许动态链接,这就是为什么C比Java快得多。 我的问题是,如果静态链接使程序运行得更快,为什么它不包括在Java中?我知道Java的开发人员做出不包括静态链接的决定肯定有一些真正的好理由,我只是想知道原因是什么。 注意:我不知道这个问题是否已经在SO上有答案,但是因为我找不到