gpt4 book ai didi

java - 类型转换和泛型,有什么性能差异?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:22 26 4
gpt4 key购买 nike

我最近经常用Android写代码,虽然我对JAVA很舒服,但缺少一些关于那里使用的核心概念的想法。

我很想知道这两个代码之间是否存在任何性能差异。

第一种方法:

//Specified as member variable.   
ArrayList <String> myList = new ArrayList <String>();

并用作 String temp = myList.get(1);

第二种方法:

ArrayList myList  = new ArrayList(); //Specified as member variable.   

并使用

String temp1 = myList.get(1).toString();   

我知道它是关于类型转换的。第一种方法是否比第二种方法有很大优势,大多数时候在实际编码中我必须使用第二种方法,因为 arraylist 可以采用不同的数据类型,我最终指定

ArrayList <Object> = new ArrayList <Object>(); 

或更通用的方式。

最佳答案

简而言之,没有值得担心的性能差异(如果存在的话)。无论如何,通用信息不会在运行时存储,因此实际上并没有发生任何其他事情来减慢速度 - 正如其他答案所指出的那样,它甚至可能更快(尽管假设它稍微慢一些,我仍然主张使用泛型。)在这个层面上养成过多考虑性能的习惯可能是件好事。可读性和代码质量通常比微优化重要得多!

简而言之,泛型将是首选,因为它们可以保证类型安全并使您的代码更清晰易读。

就您在数组列表中存储完全不同的对象类型(即与您正在使用的某些继承层次结构无关)这一事实而言,这几乎肯定是您的设计缺陷!这样做的次数我一只手都能数过来,而且总是暂时的。

关于java - 类型转换和泛型,有什么性能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6916538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com