我应该使用char数组代替String作为玩家的用户名吗?

时间:2019-06-11 21:38:14

标签: java android string android-studio char

我正在制作一个应用程序,并且我有一个User类,其中包含最终的用户名,电子邮件和密码。我读到对象创建会减慢应用程序的速度,那么将这些字段转换为char数组是一种好习惯吗?我的逻辑是,如果我有100万用户,那么其中的许多String可能会使应用程序变慢。

1 个答案:

答案 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 presentationYou probably just need to change the PATH order之类的创新中受益。

要在此处学习的课程:在没有非常了解有关技术细节的知识之前,不要试图使Java团队和JVM胜过智能事实证明,这样的需求非常严重,需要进行这种干预。 使用明显的类编写简单的代码,并让编译器和JVM进行优化工作,可以为您的应用提供最佳的服务。

高度优化了现代JVM实现。除了最极端的条件外,您不必担心对象创建的负担。

即使如此,您仍需要使用概要分析和调试工具来证明和诊断问题,然后才能寻求解决方案。事实证明,即使是最聪明的程序员,在预防/解决假定的性能问题上也很糟糕。

此外,您已将问题标记为Android。您在Android应用程序上只有一个用户,而不是一百万。如果您指的是服务器端编码,那么当您拥有一百万用户时,您会遇到很多问题。用户名的Stringchar[]不在该列表中。