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

是否缓存了ArrayList.size()方法?

刘德义
2023-03-14
问题内容

我想知道,size()您可以在现有ArrayList<T>缓存中调用的方法吗?还是在性能关键代码中最好将其存储size()在本地int中?

当您在调用之间不添加/删除项目时,我希望它确实已缓存size()

我对吗?

更新
我不是在谈论内联或类似的东西。我只想知道方法size()本身是否在内部缓存值,或者每次调用时它都会动态计算。


问题答案:

我想我不会说它是“缓存的”-但是它只是存储在一个字段中,因此它足够快以经常调用。

Sun JDK的实现size()只是:

public int size() {
    return size;
}


 类似资料:
  • 问题内容: 它可能是实现细节,但是对于Oracle和IBM JDK而言,至少是对已编译模式进行了缓存,还是作为应用程序开发人员我们需要自己对已编译模式进行缓存? 问题答案: 我不认为结果会被缓存,并且代码或文档中也没有这种行为的证据。自己实现这样的缓存(当然)是比较琐碎的,但是我对这样的缓存很有用的用例感兴趣。 回覆。下面的注释和String.split(),有一种不同的方法,即代码采用简单的1或

  • 我注意到,每次我运行一个新作业时,它所花费的时间比我再次启动它时长20%左右? 如果一个作业运行多次,flink是否缓存一些结果并重用它们?如果是,我如何控制这一点? 我想测量我的任务运行了多长时间,但每次我重新运行它们时,速度都比以前快。

  • void is_cached(string template, [string cache_id]) This returns true if there is a valid cache for this template. This only works if caching is set to true. 在指定模板的缓存存在是返回真。只有在缓存设置为真时才可用。 Example 13-18

  • 问题内容: 但 为什么仅在分配字符串时才获得相同的id()结果? 编辑:我用“字符串”代替“ ASCII字符串”。感谢您的反馈 问题答案: 这与ASCII与非ASCII无关(您的“非ASCII”仍然是ASCII,只是标点符号,而不是字母数字)。CPython作为实现细节,将仅包含“名称字符”的字符串常量进行实习。在这种情况下,“名称字符”与正则表达式转义的含义相同:字母数字加下划线。 注意:这可以

  • 有人能解释一下Spark Streaming是如何执行window()操作的吗?从Spark 1.6.1文档来看,窗口批处理似乎会自动缓存在内存中,但从web UI来看,似乎会再次执行以前批处理中已执行的操作。为方便起见,我在下面附上了我正在运行的应用程序的屏幕截图: 通过查看webUI,看起来好像是在缓存的是194 MapValures()RDD(绿点-这是我在DStream上调用windows

  • 但是 为什么只有在赋值字符串时才能得到相同的id()结果? 编辑:我将“ascii字符串”替换为“字符串”。感谢您的反馈