代码片--实现一个简单的模版方法设计模式(获取一段程序运行的时间)

package com.dreamy.day03;

/**
 * @author dreamy
 * 需求:获取一段程序运行的时间
 * 原理:获取程序开始和结束的时间并相减即可。
 * 获取时间:System.currentTimeMillis()
 *
 *
 * 当代码完成优化后,就可以解决这类问题
 * 这种方式叫做模版方法设计模式。
 *
 * 什么是模版方法呢?
 * 在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用的不确定的部分,
 * 那么这时就将不确定的部分暴露出去,由该类的子类去完成。
 */
public class TempleDemo {
    public static void main(String[] args) {
//        GetTime gt=new GetTime();
//        gt.getTime();
        SubTime st=new SubTime();
        st.getTime();
    }
}
abstract class GetTime{
    public final void getTime() {
        long start =System.currentTimeMillis();

        runcode();

        long end=System.currentTimeMillis();
        System.out.println("毫米:"+(end-start));
    }
    public abstract void runcode();
}
class SubTime extends GetTime {
//    public void getTime() {
//        long start =System.currentTimeMillis();
//        for(int x=0;x<4000;x++) {
//            System.out.println(x);
//        }
//        long end=System.currentTimeMillis();
//        System.out.println("毫米:"+(end-start));
//    }
    public void runcode() {
        for(int x=0;x<4000;x++) {
            System.out.println(x);
        }
    }
}
时间: 2024-08-24 12:15:58

代码片--实现一个简单的模版方法设计模式(获取一段程序运行的时间)的相关文章

起步 简介整个项目、组件、和如何使用一个简单的模版入门

1. 下载 下载之前先检查一下是否准备好了一个代码编辑器(我们推荐使用 Sublime Text 2) ,你是否已经掌握了足够的HTML和CSS知识以开展工作.这里我们不详述源码文件,但是它们可以随时被下载.在这里我们只着重介绍使用已经编译好的Bootstrap文件进行入门讲解. 下载编译好的文件 快速开始:立即下载编译好的版本吧,里面已经包含了CSS.JS和图片文件了,而且所有文件已经经过了压缩处理.不过,文档和源码文件不包含哦. 下载Bootstrap 下载源码 从GitHub直接下载到的最

二、模版方法设计模式

模板方法设计模式: 解决的问题:当功能内部一部分实现是确定,一部分实现是不确定的.这时可以把不确定的部分暴露出去,让子类去实现. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 abstract class GetTime{     public final void getTime(){ //此功能如果不需要复写,可加final限定         long start

请给出程序,功能为获取“一段程序代码”运行时长

有一天看到了几个java题目,我就写了一下,废话少说,直接上代码了 3.已知int型数组arr[t], 请:① 打印该数组.输出格式为:[arr1,arr2,arr3,...]. ② 输出数组的最大值max与最小值min. ③ 使用冒泡排序对数组进行排序,并打印排序后数组. 4. 请给出程序,功能为获取“一段程序代码”运行时长.要求: ① 程序框架在父类中定义. ② “一段程序代码”在子类中给出,并覆盖父类中对应方法. ③ “一段程序代码”为:打印一个由“*”组成的图形,见图1. 图1 第三题:

js 一个程序运行的时间计算

js 一个程序运行的时间计算 console.time(timeName) console.timeEnd(timeName) MDN 释义 你可以启动一个计时器(timer)来跟踪某一个操作的占用时长.每一个计时器必须拥有唯一的名字,页面中最多能同时运行10,000个计时器. 当以此计时器名字为参数调用 console.timeEnd() 时,浏览器将以毫秒为单位,输出对应计时器所经过的时间 console.time('x') for(var i=0; i<100000; i++){ } co

【代码示例】 一个简单的Java死锁

在实际编程中,要尽量避免死锁情况的出现,但是有些面试中故意让你写一个死锁的程序,这似乎也不太简单(有些公司会出这样的面试题),下面讲解一个简单的死锁例子. 代码说明: 第一步: 当DeadLock的线程对象td1的属性flag为1时,第一个线程先锁定资源O1,睡眠500毫秒,然后尝试锁定资源O2(假如没有被锁定的话): 第二步:而第一个线程在睡眠的时候,第二个线程对象td2启动了,其属性flag为0,它首先锁定资源O2,然后睡眠500毫秒,尝试锁定资源O1,但是此时第一个线程已锁定资源O1,它只

Java实现一个简单的缓存方法

缓存是在web开发中经常用到的,将程序经常使用到或调用到的对象存在内存中,或者是耗时较长但又不具有实时性的查询数据放入内存中,在一定程度上可以提高性能和效率.下面我实现了一个简单的缓存,步骤如下. 创建缓存对象EntityCache.java public class EntityCache {   /**    * 保存的数据    */   private Object datas;   /**    * 设置数据失效时间,为0表示永不失效    */   private long time

模版方法设计模式

什么是模板方法 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的 重复代码全部在父类里面,不同业务的,抽取给子类进行实现.抽取过程---抽象方法. 某些特定步骤. 核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定.因此,我们采用工厂方法模式,将这个节点的代码实现转移给 子类完成.即:处理步骤在父类中定义好,具体的实现延迟到子类中定义. 说白了,就是将一些相同操作的代码,封装成一个算法的骨架.核心的部

007 - 策略模式对模版方法设计模式改进

如果我只需要获取User 的name 怎么办? 需要在重新创建一个方法 单独获取方法吗? 那可以通过返回User 对象 这种方法 虽然说可以, 但不怎么符合设计规范 我需要什么样的数据, 你应该就返回给我什么数据, 而不是需要我在处理而且当数据量的时候 会影响网络数据的传输性能 public String findName(int id){     String sql = "select name from user where id = ?";     Object[] args 

apue编程之参考df代码写的一个简单的df命令的源代码

代码: #include <stdio.h> #include <mntent.h> #include <string.h> #include <sys/vfs.h> static const unsigned long long G = 1024*1024*1024ull; static const unsigned long long M = 1024*1024; static const unsigned long long K = 1024; sta