我正在制作一个应用程序,并且我有一个User类,其中包含最终的用户名,电子邮件和密码。我读到对象创建会减慢应用程序的速度,那么将这些字段转换为char数组是一种好习惯吗?我的逻辑是,如果我有100万用户,那么其中的许多String可能会使应用程序变慢。
答案 0 :(得分:1)
不。您将陷入过早优化的陷阱。
使用常规String
对象保存名称等。
如果您要自己管理文本,则必须了解char
类型已经过时,并且只能容纳Unicode定义的137,000个字符中的一半。因此,当表示字符UTF-16之外的字符时,您将不得不学习如何使用四进制octets而不是双字节的char数组来处理Basic Plane。因此,您将学习有关将高surrogates和低JEP 254: Compact Strings值识别为映射到其他代码点的知识。即使管理了所有这些内容,您的char
数组也不会从JEP 280: Indify String Contcatenation中讨论的this presentation和You probably just need to change the PATH
order之类的创新中受益。
要在此处学习的课程:在没有非常了解有关技术细节和的知识之前,不要试图使Java团队和JVM胜过智能事实证明,这样的需求非常严重,需要进行这种干预。 使用明显的类编写简单的代码,并让编译器和JVM进行优化工作,可以为您的应用提供最佳的服务。
高度优化了现代JVM实现。除了最极端的条件外,您不必担心对象创建的负担。
即使如此,您仍需要使用概要分析和调试工具来证明和诊断问题,然后才能寻求解决方案。事实证明,即使是最聪明的程序员,在预防/解决假定的性能问题上也很糟糕。
此外,您已将问题标记为Android。您在Android应用程序上只有一个用户,而不是一百万。如果您指的是服务器端编码,那么当您拥有一百万用户时,您会遇到很多问题。用户名的String
和char[]
不在该列表中。