每次我必须转换int成String我选择的一个""+a或Integer.toString(a).现在我想知道哪种方式更快,所以我编写了一个简单的基准测试,调用function_1,function_2和function_3 10000000次并打印处理函数所需的时间.以下是功能:
public static String i="";
public static String j="";
public static String k="";
public static void function_1()
{
i=Integer.toString(getOne());
}
public static void function_2()
{
j=""+1;
}
public static void function_3()
{
j=""+getOne();
}
public static int getOne()
{
return 1;
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Benchmarking starting...
Executing function_1 10000000 time(s)...
Done executing function_1 in 476 ms.
Executing function_2 10000000 time(s)...
Done executing function_2 in 8 ms.
Executing function_3 10000000 time(s)...
Done executing …Run Code Online (Sandbox Code Playgroud) 我有程序,我必须加载PNG作为字符串,然后再次保存,但在我保存后,它变得不可读.如果我在编辑器中打开加载的PNG和保存的字符串,我可以看到java在整个文件中创建了换行符.如果这是问题所在,我该如何避免这种情况?
public static void main(String[] args)
{
try
{
File file1 = new File("C://andim//testFile.png");
StringBuffer content = new StringBuffer();
BufferedReader reader = null;
reader = new BufferedReader(new FileReader(file1));
String s = null;
while ((s = reader.readLine()) != null)
{
content.append(s).append(System.getProperty("line.separator"));
}
reader.close();
String loaded=content.toString();
File file2=new File("C://andim//testString.png");
FileWriter filewriter = new FileWriter(file2);
filewriter.write(loaded);
filewriter.flush();
filewriter.close();
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)