开发者社区> 问答> 正文

数组需要如何设置以提升Java高效程度?

已解决

数组需要如何设置以提升Java高效程度?

展开
收起
游客lmkkns5ck6auu 2022-10-26 19:08:27 381 0
1 条回答
写回答
取消 提交回答
  • 推荐回答
    1. 不要使用循环拷贝数组,尽量使用 System.arraycopy 拷贝数组 推荐使用 System.arraycopy 拷贝数组,也可以使用 Arrays.copyOf 拷贝数组。

    2. 集合转化为类型 T 数组时,尽量传入空数组 T[0] 将集合转换为数组有 2 种形式:toArray(new T[n])和 toArray(new T[0])。在旧的 Java 版本中,建议使用 toArray(new T[n]),因为创建数组时所需的反射调用 非常慢。在 OpenJDK6 后,反射调用是内在的,使得性能得以提高,toArray(new T[0])比 toArray(new T[n])效率更高。此外,toArray(new T[n])比 toArray(new T[0])多获取一次列表大小,如果计算列表大小耗时过长,也会导致 toArray(new T[n])效率降低。 建议 集合应该提供一个 toArray(Class clazz)方法,避免无用的空数组初始化(new T[0])。

    3. 集合转化为 Object 数组时,尽量使用 toArray()方法 转化 Object 数组时,没有必要使用 toArray[new Object[0]],可以直接使用 toArray()。 避免了类型的判断,也避免了空数组的申请,所以效率会更高。

    以上内容摘自《Java工程师必读手册》电子书,点击https://developer.aliyun.com/ebook/download/7780 可下载完整版

    2022-10-26 20:46:31
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载