假设我在Java 8中做了类似的事情(特别是Android)
String name = someObject.getname() != null ? someObject.getname() : "null";
并且方法getname()可能会有很多调用其他方法来解析名称.还假设我经常调用这段代码.
做这样的事情会更好,性能更好吗?
String name = someObject.getname();name = name != null ? name : "null";
解决方法:
这看起来像是一种可能的优化,称为CSE; JVM AFAIK做到了这一点(但不确定AndroID).
但这很大程度上取决于getname的作用,如果它在内部分配其他对象并做其他一些事情.不幸的是,我甚至无法告诉如何证明我错了或在这里(可能需要调查);老实说,我有自己这样做的习惯.例如:
for(int i=0;i<List.size();++i){}
我尝试在循环之前总是提取int size = List.size();即使这在我的理解中受到标量替换优化的影响.
总结以上是内存溢出为你收集整理的java – 在编译器优化的同一语句中多次调用同一个方法?全部内容,希望文章能够帮你解决java – 在编译器优化的同一语句中多次调用同一个方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)