可以改善循环中新对象的性能

时间:2015-01-28 16:25:39

标签: java

如何提高此代码的性能?我必须创造 我通过查询返回的查询返回的每个项目的对象 价值数组。我不知道预先分配对象是否会有所帮助 因为每次检索结果项目时我都在新建一个对象 此外,我将对象存储在ids =>的地图中。对象和ID正在存在 存储在id列表中以便以后更快地访问。

        java.util.Vector<Integer> resultList = new java.util.Vector<Integer>();
        while (result.next()) {
            Ptrobject ptrobject = new Ptrobject(connection());

            DataValue[] values = result.getValues();

            int idx = 0;
            ptrobject.id           = values[idx++].getInt();
            ptrobject.unty        = values[idx++].getString();
            ptrobject.tumCode     = values[idx++].getString();
            ptrobject.eldName     = values[idx++].getString();
            ptrobject.atTD        = values[idx++].getString();
            ptrobject.stOper      = values[idx++].getString();
            ptrobject.aseName     = values[idx++].getString();
            ptrobject.aseNbr      = values[idx++].getString();
            ptrobject.erator      = values[idx++].getString();
            ptrobject.odFM        = values[idx++].getString();
            ptrobject.marks       = values[idx++].getString();
            ptrobject.ate         = values[idx++].getString();
            ptrobject.mCode       = values[idx++].getString();
            ptrobject.jectLabel     = values[idx++].getString();
            ptrobject.jectName      = values[idx++].getString();
            ptrobject.jectNumber    = values[idx++].getString();
            ptrobject.ud             = (Timestamp) values[idx++].getPtrobject();

            s_cache.getMap().put(ptrobject.id, ptrobject);
            resultList.add(ptrobject.id);
        }

1 个答案:

答案 0 :(得分:-1)

将对象定义放在while语句

之外
Ptrobject ptrobject;
DataValue[] values;
int idx;
while (result.next()) {
        ptrobject = new Ptrobject(connection());
        values = result.getValues();
        idx=0;
        .....

我知道最小范围说不要这样做,但如果你想要速度,那就是。 这里是内部与外部声明的标记。

http://www.gunduru.com/post/107249109253/declaring-variables-inside-or-outside-of-a-loop