Java中利用final关键字inline编译优化真的有效吗?
为寻求java代码的性能优化,从网上搜到利用final关键字进行编译时inline优化的方法,但是真的有效吗?实际测试中发现未必,甚至性能影响巨大,最终放弃了使用final优化的想法。
测试环境:Windows XP SP2,JDK 1.6.0_15-b03,Eclipse 3.5 SR1。
package test;
public class Test {
public static void main(String[] args) {
int loop = 5000000;//测试500万循环
long start;
String num = "0";
//----第一遍----
start = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
Class1 c1 = new Class1();
c1.setF1(num);
c1.getF1();
}
System.out.println((System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
Class2 c2 = new Class2();
c2.setF1(num);
c2.getF1();
}
System.out.println((System.currentTimeMillis() - start) + "ms");
//----第二遍----
start = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
Class1 c1 = new Class1();
c1.setF1(num);
c1.getF1();
}
System.out.println((System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
Class2 c2 = new Class2();
c2.setF1(num);
c2.getF1();
}
System.out.println((System.currentTimeMillis() - start) + "ms");
//----第三遍----
start = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
Class1 c1 = new Class1();
c1.setF1(num);
c1.getF1();
}
System.out.println((System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
Class2 c2 = new Class2();
c2.setF1(num);
c2.getF1();
}
System.out.println((System.currentTimeMillis() - start) + "ms");
}
}
class Class1 {
private String f1;
public String getF1() {
return f1;
}
public void setF1(String f1) {
this.f1 = f1;
}
}
final class Class2 {
private String f
相关文档:
众所周知,java中int型和char型数据不像c语言中那样可以任意转换,即不可以将一个int型变量自动转换为char型,如下面代码中的演示:
public class TestSort{
public static void main(String args[]){
int x='a';//不会产生编译错误,因为'a'赋给x是隐式转换
System.out.println(x);
&nb ......
1、 串操作:使用字符串存贮一个英文句子“Java is an object oriented programming
language”。显示该句子,并算出每个单词的字母数和平均字母数,并按单词升序排列输出(不用数组,只用串操作)
public class homework21 {
public static void main(String[] args) {
&nb ......
1、编写一个简单的文本编辑器,要求:具有打开、保存、新建,粘贴、复制等功能;具有一个工具条。
1.1、程序源码(参见menu.java):
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.URL;
public class menu extends JFrame impl ......
在Java中如果List 结合存取的是许多类型不同的数据如int,String 类型都有,那么如何使用JSTL表达式循环获取List集合中的元素呢?
如:假如List list=new ArrayList(); int a=1; String b="sss"; String c="ddddddd";……在Servlet中 使用Session 保存
session.set ......