繁体   English   中英

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

[英]Should I use char array instead of String for usernames of players?

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

不。您会陷入过早优化的陷阱。

使用常规的String对象保存名称等。

如果要自己管理文本,则必须了解char类型已过时,并且只能容纳Unicode定义的137,000个字符中的一半。 因此,您必须学习在表示字符的基本平面范围之外的字符时,如何使用四字节而不是双字节将char数组作为UTF-16进行处理。 因此,您将学习有关将高和低替代值识别为映射到其他代码点的知识。 即使您已完成所有工作,您的char数组也不会从本演示文稿中讨论的JEP 254:紧凑字符串JEP 280:Indify String Contcatenation等事物的创新中受益。

的教训在这里: 不要试图智取Java团队和JVM而不很有教养有关的技术细节,并有一个行之有效的需求严重到需要这种干预。 通过使用明显的类编写简单的代码 ,并让编译器和JVM进行优化工作,可以最好地为您的应用程序提供服务。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM