Java 重复函数调用与将结果存储在临时变量中
我的代码看起来像:Java 重复函数调用与将结果存储在临时变量中,java,performance,Java,Performance,我的代码看起来像: class Main { public static void main(String args[]){ String[] s1 = {"This ", "is ", "a ","sentence ", "."}; String sentence = Arrays.toString(s1); System.out.println(sentence.substring(4, sentence.length()-1)
class Main {
public static void main(String args[]){
String[] s1 = {"This ", "is ", "a ","sentence ", "."};
String sentence = Arrays.toString(s1);
System.out.println(sentence.substring(4, sentence.length()-1));
}
private static <T> String arrayToString(T[] t){
StringBuilder sb = new StringBuilder();
for(T val: t){
sb.append(val.toString());
}
}
}
我的问题是,为了避免存储对计算值的引用,我多次调用了arrayToString()方法
arrayToString
,另一方面,它更具可读性,因为我们现在知道arrayToString
返回某种“类似句子”的对象。使用变量可以添加更有用的上下文,并使代码更具可读性arrayToString
,另一方面,它更具可读性,因为我们现在知道arrayToString
返回某种“类似句子”的对象。使用变量可以添加更有用的上下文,并使代码更具可读性arrayToString
,另一方面,它更具可读性,因为我们现在知道arrayToString
返回某种“类似句子”的对象。使用变量可以添加更有用的上下文,并使代码更具可读性arrayToString
,另一方面,它更具可读性,因为我们现在知道arrayToString
返回某种“类似句子”的对象。使用变量可以添加更有用的上下文,并使代码更具可读性一般来说,在用Java编写代码时,您应该认识到,当代码执行得更频繁时,它是及时编译的。自从
arrayToString(s1).substring(4, arrayToString(s1).length())
是相当可预测的,您可以预期,一旦实时编译器启动,性能损失应该得到解决,因为它将自己为您的计算创建缓存。对于任何需要优化的代码来说,这当然是一个过于乐观的假设,但对于Java来说,通常最好坚持编写可读代码,而不要太担心性能,Java虚拟机在一定程度上弥补了代码抽象和性能之间的差距
通常,您可以使用一个工具(例如,我只能推荐的工具)来监视编译代码的性能。有时很难找出性能瓶颈,但根据我的经验,像您这样的代码永远不会导致糟糕的用户体验,因为它仅仅是处理一个简单字符串,需要几个时钟周期,这甚至不足以ping数据库。就在你阅读这篇文章的时候,我的手机可能已经计算了数十亿次了
总而言之,人们过于担心性能。编写可维护和可读的代码应该始终是您的主要目标。一般来说,在用Java编写代码时,您应该认识到,在更频繁地执行代码时,您的代码是及时编译的。自从
arrayToString(s1).substring(4, arrayToString(s1).length())
是相当可预测的,您可以预期,一旦实时编译器启动,性能损失应该得到解决,因为它将自己为您的计算创建缓存。对于任何需要优化的代码来说,这当然是一个过于乐观的假设,但对于Java来说,通常最好坚持编写可读代码,而不要太担心性能,Java虚拟机在一定程度上弥补了代码抽象和性能之间的差距
通常,您可以使用一个工具(例如,我只能推荐的工具)来监视编译代码的性能。有时很难找出性能瓶颈,但根据我的经验,像您这样的代码永远不会导致糟糕的用户体验,因为它仅仅是处理一个简单字符串,需要几个时钟周期,这甚至不足以ping数据库。就在你阅读这篇文章的时候,我的手机可能已经计算了数十亿次了
总而言之,人们过于担心性能。编写可维护和可读的代码应该始终是您的主要目标。一般来说,在用Java编写代码时,您应该认识到,在更频繁地执行代码时,您的代码是及时编译的。自从
arrayToString(s1).substring(4, arrayToString(s1).length())
是相当可预测的,您可以预期,一旦实时编译器启动,性能损失应该得到解决,因为它将自己为您的计算创建缓存。对于任何需要优化的代码来说,这当然是一个过于乐观的假设,但是对于Java来说,通常最好坚持编写可读代码,而不要太担心性能,代码抽象和