数组中最大的子数组之和
一.单元测试
什么是单元测试
单元测试,是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义。单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
实例应用
输入一个数组和它的大小
输出这个数组中最大子数组的和
import java.util.Scanner; public class Maxsum { public int Max(int Array[],int size){ int max=Array[0]; int num; int sum=max; for(num=1;num<size;num++) { if(sum<0) sum=Array[num]; else sum+=Array[num]; if(sum>max) max=sum; } return max; } public static void main(String[] args){ Maxsum sum=new Maxsum(); Scanner in=new Scanner(System.in); int size=in.nextInt(); int []Array=new int[size]; int num; for(num=0;num<size;num++) Array[num]=in.nextInt(); System.out.println(sum.Max(Array,size)); in.close(); } }
import static org.junit.Assert.*; import org.junit.Test; public class MaxsumTest { Maxsum sum=new Maxsum(); public void setUp() throws Exception { } public void tearDown() throws Exception { } @Test public void testMax1() { int []Array=new int[]{1,-2,4,-1,-5}; assertEquals(4, sum.Max(Array,5)); } @Test public void testMax2() { int []Array=new int[]{1,-2,-4,1,5}; assertEquals(6, sum.Max(Array,5)); } @Test public void testMax3() { int []Array=new int[]{1,2,3,1,1}; assertEquals(8, sum.Max(Array,5)); } @Test public void testMax4() { int []Array=new int[]{-1,-2,-4,-1,-5}; assertEquals(-1, sum.Max(Array,5)); } @Test public void testMax5() { int []Array=new int[]{0,0,0,0,0}; assertEquals(0, sum.Max(Array,5)); } }
运行测试截图:
二.效能分析
什么是效能分析
效能分析,指对某种事物或系统执行某一项任务结果或者进程的质量好坏、作用大小、自身状态等效率指标的量化计算或结论性评价。效能是指系统在规定条件下达到规定使用目标的能力。“规定的条件”指的是环境条件、时间、人员、使用方法等因素;“规定使用目标”指的是所要达到的目的;“能力”则是指达到目标的定量或定性程度。
jprofiler实现
JProfiler是一个商业授权的Java剖析工具,它把CPU、执行绪和内存的剖析组合在一个强大的应用中,可提供许多IDE整合和应用服务器整合用途。
堆遍历:
cpu视图:
线程视图:
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位,一个进程中可以并发多个线程,每条线程并行执行不同的任务。