java - DDMS java 分析器显示 : java/lang/StringBuilder. <init> - 它在我的代码中的什么位置?

标签 java android string optimization ddms

我有以下 java 方法,是为 android 应用程序编写的。

private String removeWifiFudge(String message, String removedFudge)
{
    int find1 = 255;   //FF
    int find2 = 0;     //00
    int find3 = 204;   //CC
    int find4 = 36;    //24

    char[] charMessage = message.toCharArray();

    boolean find1True = false;

    for (char eachCharacter : charMessage)
    {
        if (find1True)
        {
            if ((int) eachCharacter == find2)
            {
                removedFudge = removedFudge + String.valueOf((char)find1);
            }
            else
            {
                if ((int) eachCharacter == find3)
                {
                    removedFudge = removedFudge + String.valueOf((char)find4);
                }
                else
                {
                    removedFudge = removedFudge + String.valueOf((char)find1);

                    removedFudge = removedFudge + String.valueOf(eachCharacter);
                }
            }

            find1True = false;
        }
        else 
        {
            if ((int) eachCharacter == find1)
            {
                find1True = true;
            }
            else
            {
                removedFudge = removedFudge + String.valueOf(eachCharacter);
            }
        }
    }   

    return removedFudge;
}

简而言之,它接受一个字符串,消息,并逐个字符地搜索 0xFF00 和 0xFFCC 的实例。找到这些实例后,它分别用 0xFF 和 0x24 替换它们,并将其放入新字符串 removedFudge 中。

此方法占用了大量的 CPU 时间,并且在使用 Eclipse、DDMS 中嵌入的 Java 分析器时,它告诉我该方法花费了 53% 的时间:

java/lang/StringBuilder. (Ljava/lang/String;)V

这似乎是说它占用了初始化字符串的时间,但是当我将已初始化的字符串传递给它以放入新消息时,我看不到初始化字符串来自哪里。

有 DDMS 方面的专家吗?

最佳答案

字符串连接会导致在运行时使用 StringBuilder,因此它会出现在您的分析器中。

关于java - DDMS java 分析器显示 : java/lang/StringBuilder. <init> - 它在我的代码中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12004029/

相关文章:

c - while循环,当它运行 "string"数据时,如何用特定的单词或字母中止它?

android - 即时应用程序 apk 大于标准应用程序是否正常?

Android:强制横向但允许旋转

java - 启动 Activity 并通过 DialogFragment 传递输入

java - Apache POI 超出了 GC 开销限制

javascript - 从路径字符串获取所有父路径 - Javascript

java - 与 Map 的键相交的列表

java - 如何用一些分隔符分割字符串但不删除Java中的分隔符?

java - 在 IntelliJ IDEA 中测试小代码片段的快捷方式?

java - WebView 页面不可用 - “Upi://”