一道JAVA代码优化的题

问题描述

前2天面试的时候,遇到一个代码优化的题目没有什么头绪,发出来大家讨论讨论要求优化 第一个fctPasOptimalmodifList 修改list里的值, traiteResultat 数据存储用于之后处理部分代码如下。。。  public final List<Integer> fctPasOptimal() {        List<Integer> locNbList = new LinkedList<Integer> ();    for (int i = 0; i < 30000; ++i) {      Calendar locCalendar = new GregorianCalendar ();      locNbList.add(computeNewValue(locCalendar.get (Calendar.YEAR), i));    }    modifListe(locNbList) ;                          Double locResultat = 0.0 ;    for (int i = 0; i < locNbList.size(); ++i) {      final Double locTmpValue = doOperation(locNbList.get(i));      if (locTmpValue != null) {        locResultat += locTmpValue ;      }    }    traiteResultat (locResultat) ;    return locNbList ; }

解决方案

public final List<Integer> fctPasOptimal() { List<Integer> locNbList = new LinkedList<Integer>(); // 在for循环外在定义,可节省内存 Calendar locCalendar = null; for (int i = 0; i < 30000; ++i) { locCalendar = new GregorianCalendar(); locNbList.add(computeNewValue(locCalendar.get(Calendar.YEAR), i)); } // 便于回收 locCalendar = null; modifListe(locNbList); Double locResultat = 0.0; Double locTmpValue = null; // 如果集合过大,建议只求一次size() int count = locNbList.size(); for (int i = 0; i < count; ++i) { locTmpValue = doOperation(locNbList.get(i)); // for循环里应该减少if判断,降低圏复杂度 locResultat += (locTmpValue != null ? locTmpValue : 0.0); } traiteResultat(locResultat); return locNbList; }

时间: 2024-09-28 22:25:29

一道JAVA代码优化的题的相关文章

一道java代码优化的问题

问题描述 前2天面试的时候,遇到一个代码优化的题目没有什么头绪,发出来大家讨论讨论要求优化第一个fctPasOptimalmodifList修改list里的值,traiteResultat数据存储用于之后处理部分代码如下...publicfinalList<Integer>fctPasOptimal(){List<Integer>locNbList=newLinkedList<Integer>();for(inti=0;i<30000;++i){Calendarl

io流-一道很基础的题,卡住了,求解

问题描述 一道很基础的题,卡住了,求解 题目为:1.读取本地文件message.txt,输入年份,输出当年的世界杯举办国以及冠军国,如果该年份没有举办世界杯,请输出"没有举办". System.in--->year:1931 读出来:存Map集合 1930 乌拉圭|乌拉圭 1934 意大利|意大利 解决方案 用filestream读取,split分隔装入hashmap 解决方案二: 基础的一道题分享一道java基础题,测测你是不是基础扎实一道用冒泡排序做数组的题,求解

简介Java代码优化的过程

衡量程序的标准 衡量一个程序是否优质,可以从多个角度进行分析.其中,最常见的衡量标准是程序的时间复杂 度.空间复杂度,以及代码的可读性.可扩展性.针对程序的时间复杂度和空间复杂度,想要优化程序代码,需要对数据结 构与算法有深入的理解,并且熟悉计算机系统的基本概念和原理:而针对代码的可读性和可扩展性,想要优化程序代码,需 要深入理解软件架构设计,熟知并会应用合适的设计模式. 首先,如今计算机系统的存储空间已经足够大了,达到 了 TB 级别,因此相比于空间复杂度,时间复杂度是程序员首要考虑的因素.为

c++-一道OJ上的题,数的划分,求大神解答

问题描述 一道OJ上的题,数的划分,求大神解答 有N个排列好的数,不改变排列次序,要分成K个部分,每个部分至少有一个数, (其中K <=N),若将每一个部分的数相乘,然后将K个部分相加,则可以得到一个表达式,求这个表达式的最大数值. 输入格式文件第一行为2个整数N.K下面N行为N个整数(N<=100,整数的范围都在整型以内)样例输入5 2 12345 样例输出121 我的思路是动态规划:以f(ij)表示分成i组,最后一个数是j的最大数值.以下是我的代码: #include <iostre

代码分析-一道Java笔试题,求解答(关于类的加载与初始化)

问题描述 一道Java笔试题,求解答(关于类的加载与初始化) 自己查了一些资料,还是看不懂这个程序的输出结果,求各位详细解释初始化和执行过程,谢! public class Alibaba { public static int k = 0; public static Alibaba t1 = new Alibaba("t1"); public static Alibaba t2 = new Alibaba("t2"); public static int i =

使用 Jtest:一款优秀的 Java 代码优化和测试工具

Jtest 简介 Jtest 是 Parasoft 公司推出的一款针对 Java 语言的自动化代码优化和测试工具,它通过自动化实现对 Java 应用程序的单元测试和编码规范校验,从而提高代码的可靠性以及 Java 软件开发团队的开发效率. 主要功能 静态代码分析: 静态代码分析是指不运行源程序,仅通过分析源程序的语法.结构.接口等来检查程序正确性,找出代码隐藏的缺陷之处. Jtest 的静态代码分析功能能够按照其内置的超过 800 条的 Java 编码规范自动检查并纠正这些隐蔽且难以修复的编码错

一道java题目,请大虾们帮帮忙,我是个新手,谢谢

问题描述 一道java题目,请大虾们帮帮忙,我是个新手,谢谢 编写一个程序,对于输入的一段程序,可以获取该程序的单词符号.单词符号的类别有基本字.标识符.常数.算符和界符.关键字为基本字,由字母组成,如int.for和while:变量名和函数名为标识符,由字母和数字构成,如fun1和age:固定不变的数值为常数,如12.13.86和25e8(科学计数法):算符如+.-.*./ .%.&&:界符如 {.[.(. :和:等. 如, public?static?void?main (String

c++-求各位大神来看一道简单的C++题,

问题描述 求各位大神来看一道简单的C++题, 这里是题目,后面附上我码的程序 设计一个简单计算器.用户输入四则运算表达式,程序输出正确结果.当表达式中数据格式或运算符输入错误,程序给出错误信息.要求: (1)表达式的左.右操作数可以为整数或实数. (2)运算符限制为+,-,*,/ (3)输入表达式允许有前导空格,允许在运算符前后嵌入空格. 检测表达式由以下函数完成: void check(char *input, int &a, double &y, int &op, char *

java多线程问题-有一道Java面试题,没太理解明白,求大神指点啊~

问题描述 有一道Java面试题,没太理解明白,求大神指点啊~ package test2; /** 设计4个线程,其中两个线程每次对i增加1,另外两个线程对i每次减少1 @author liuyu * */ public class Test { private int i ; private synchronized void inc(){ i ++; System. out .println(Thread.currentThread().getName()+ "--inc--" +