我的有水平的代码

我们常用的Iterator方法实践

private class ListItr extends Itr implements ListIterator<E> {
    ListItr(int index) {
        cursor = index;
    }

    public boolean hasPrevious() {
        return cursor != 0;
    }

        public E previous() {
            checkForComodification();
            try {
                int i = cursor - 1;
                E previous = get(i);
                lastRet = cursor = i;
                return previous;
            } catch (IndexOutOfBoundsException e) {
                checkForComodification();
                throw new NoSuchElementException();
            }
        }

    public int nextIndex() {
        return cursor;
    }

    public int previousIndex() {
        return cursor-1;
    }

    public void set(E e) {
        if (lastRet == -1)
        throw new IllegalStateException();
            checkForComodification();

        try {
        AbstractList.this.set(lastRet, e);
        expectedModCount = modCount;
        } catch (IndexOutOfBoundsException ex) {
        throw new ConcurrentModificationException();
        }
    }

    public void add(E e) {
            checkForComodification();

        try {
        AbstractList.this.add(cursor++, e);
        lastRet = -1;
        expectedModCount = modCount;
        } catch (IndexOutOfBoundsException ex) {
        throw new ConcurrentModificationException();
        }
    }
    }

HashMap中的resize方法和putAll方法

 void resize(int newCapacity) {
        Entry[] oldTable = table;
        int oldCapacity = oldTable.length;
        if (oldCapacity == MAXIMUM_CAPACITY) {
            threshold = Integer.MAX_VALUE;
            return;
        }

        Entry[] newTable = new Entry[newCapacity];
        transfer(newTable);
        table = newTable;
        threshold = (int)(newCapacity * loadFactor);
    }
  public void putAll(Map<? extends K, ? extends V> m) {
        int numKeysToBeAdded = m.size();
        if (numKeysToBeAdded == 0)
            return;
        if (numKeysToBeAdded > threshold) {
            int targetCapacity = (int)(numKeysToBeAdded / loadFactor + 1);
            if (targetCapacity > MAXIMUM_CAPACITY)
                targetCapacity = MAXIMUM_CAPACITY;
            int newCapacity = table.length;
            while (newCapacity < targetCapacity)
                newCapacity <<= 1;
            if (newCapacity > table.length)
                resize(newCapacity);
        }

        for (Iterator<? extends Map.Entry<? extends K, ? extends V>> i = m.entrySet().iterator(); i.hasNext(); ) {
            Map.Entry<? extends K, ? extends V> e = i.next();
            put(e.getKey(), e.getValue());
        }
    }

我自己写的 服务器监控中的应用日志,继承了Runnable接口

 public void run() {
        String curStopedReasonMsg;
        try {
            if (this.applicationModel.getOnPreRunCallBack() != null) {
                this.applicationModel.getOnPreRunCallBack().callBack(this);
            }
            int firstFlag = this.applicationModel.getFirstFlag();
            String command = CmdUtil.getCommand(this.applicationModel);
            log.info("exe command====>:" + command);
            File filePath = StringUtils.isNotBlank(this.applicationModel.getProgramPath())
                    ? new File(this.applicationModel.getProgramPath() + File.separator) : null;
            this.process = Runtime.getRuntime().exec(command, null, filePath);
            if (this.applicationModel.getOnRunCallBack() != null) {
                this.applicationModel.getOnRunCallBack().callBack(this);
            }
            InputStream stdin = this.process.getInputStream();
            InputStream stderr = this.process.getErrorStream();
            Thread tIn = new Thread(new AppConsole(stdin, this.applicationModel));
            Thread tErr = new Thread(new AppConsole(stderr, this.applicationModel));
            tIn.start();
            tErr.start();
            if (this.applicationModel.getOnRunMoniCallBack() != null) {
                this.applicationModel.getOnRunMoniCallBack().callBack(this);
            }
            int result = this.process.waitFor();
            tIn.join();
            tErr.join();
            if (result == 0) {
                log.info("服务器[" + this.applicationModel.getAppName() + "]停止成功! ");
            } else {
                log.info("服务器[" + this.applicationModel.getAppName() + "]停止失败! ");
            }
            String stopTime = DateUtil.getNow();
            if (AppStatusEnum.RUNNING.equals(this.applicationModel.getAppStatusEnum())) {
                this.stopedMsg = (AppConstants.STOPED_EXCEPTION_MSG + "[" + stopTime + "]");
            } else {
                this.stopedMsg = (this.applicationModel.getStopedReasonMsg() + "[" + stopTime + "]");
            }
        } catch (Exception e) {
            log.error("", e);

            this.stopedMsg = (AppConstants.RUNNING_EXCEPTION_MSG + "[" + e.getMessage() + "]");
            try {
                if (this.applicationModel.getOnStopCallBack() != null) {
                    this.applicationModel.getOnStopCallBack().callBack(this);

                    curStopedReasonMsg = this.applicationModel.getStopedReasonMsg();
                    if ((StringUtils.isNotBlank(curStopedReasonMsg))
                            && (curStopedReasonMsg.indexOf(AppConstants.STOPED_RESTART_MSG) != -1)) {
                        Thread.sleep(3000L);
                        AppManager.getInstance().startApp(this.applicationModel);
                    }
                }
            } catch (Exception ex) {
                log.error("", ex);
                throw new RuntimeException(ex);
            }
        } finally {
            try {
                if (this.applicationModel.getOnStopCallBack() != null) {
                    this.applicationModel.getOnStopCallBack().callBack(this);

                    curStopedReasonMsg = this.applicationModel.getStopedReasonMsg();
                    if ((StringUtils.isNotBlank(curStopedReasonMsg))
                            && (curStopedReasonMsg.indexOf(AppConstants.STOPED_RESTART_MSG) != -1)) {
                        Thread.sleep(3000L);
                        AppManager.getInstance().startApp(this.applicationModel);
                    }
                }
            } catch (Exception e) {
                log.error("", e);
                throw new RuntimeException(e);
            }
        }
    }
时间: 2024-11-10 13:10:44

我的有水平的代码的相关文章

调整窗口大小也能够实现div水平垂直居中代码实例

调整窗口大小也能够实现div水平垂直居中代码实例:将一个div在窗口内实现居中效果,基本上没有什么难度,具体可以参阅CSS实现div屏幕居中效果代码一章节. 但是有时候我们可能会有这样的需求,就是在调整窗口大小的情况下也能够实现div垂直水平居中效果,下面通过代码实例做一下简单介绍,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="

项目经理的管理技巧-代码规范

一.系统里面存在的糟糕代码情况有: 1. 代码规范,命名规范和注释 2. 公用代码的抽取和封装 3. 性能低下的代码 4. 表现层.业务层.数据持久层位置存放混乱问题 二.问题 岗位调动,接手一个新的项目组.旧项目一踏糊涂,全部无规范和设计. 组成员各做各的,毫无团队协作能力,更别说团队凝聚力.简直不能更糟糕. 新项目.新成员,新项目重新做了明确规范和框架设计,但组员很多时候不能很好的按照规范进行开发 我有强迫症  三.开始犯的错误,也是最笨的做法 定时核查,自己看到不正确代码同时指出,让开发优

代码大全读后感 第1篇

在王老师的推荐下,我在1个月左右时间内大略读完此书.感觉确实受益匪浅,感受颇多.此书英文名叫:code complete ,诚如书中译序所说,这本书讲的正是为了到达“编码完成”这一重要里程碑所需的软件构建技术,确切地说,就是如何编写高质量的代码. 高质量的代码既可以说是一个节省成本的问题,也可以说是一个软件安全性的问题.特别是针对金融行业的软件开发者而言, 提高软件质量显得尤为重要.为了使我们能够编写出高质量的软件,书中讲述了软件构建的 方方面面,详细讨论了源代码的可读性,类和函数命名.变量命名

css中元素水平垂直居中4种方法介绍

table-cell轻松设置文本图片水平垂直居中 让一个元素垂直居中的思路:把这个元素的容器设置为table-cell,也就是具有表格单元格的特性,再使用vertical-align(这个属性对block元素不起作用,但对table-cell元素是有效的)设置元素垂直居中,即可达到我们想要的效果. IE7及以下版本不支持此方法,IE8及以上版本及大部分的主流浏览器都很好的支持. HTML代码  代码如下   <div class="img">    <img src=

麻省理工18年春软件构造课程阅读04“代码评审”

本文内容来自MIT_6.031_sp18: Software Construction课程的Readings部分,采用CC BY-SA 4.0协议. 由于我们学校(哈工大)大二软件构造课程的大部分素材取自此,也是推荐的阅读材料之一,于是打算做一些翻译工作,自己学习的同时也能帮到一些懒得看英文的朋友.另外,该课程的阅读资料中有许多练习题,但是没有标准答案,所给出的答案均为译者所写,有错误的地方还请指出. 译者:李秋豪 审校: V1.0 Thu Mar 8 22:58:41 CST 2018 本次课

我的&quot;Hello World!&quot;之旅

不知从何谈起,回想起三年前的自己,那会是高三:同时也是一个让无数骚年悸动的年代,那时候的我也在一个叫做“召唤师峡谷”神奇的地方闯荡了两年.那么,记忆又会回到2012年的元旦,伴随着几个好友,偷偷摸摸地闯进了这一片天地...(咳咳,跑题了)那时候,虽然有着做不完的试题,繁重的学业,可每个周末还是会去网吧来一次五连坐.时间转瞬即逝,高中生涯也结束了,曾经幻想着的咸鱼翻身并没有发生,最终的结果和我那滥的一发不可收拾的游戏技术一样.. 从来没有觉得自己会进入计算机这个行业,也从来没了解过计算机这方面的知

红皮书:变量、作用域和内存问题(四)

基本类型和引用类型的值 ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型的值指那些可能有多个值构成的对象. 动态的属性 var person = new Object(); person.name = "Nicholas"; alert(person.name); // Nicholas var name = "Nicholas"; name.age = 27; alert(name.age);

结对编程作业

这是第一次尝试结对编程,在本次结对编程作业中为了更好地体会它的好处和特点,我和我的搭档分别扮演了驾驶员和领航者的角色. 作为驾驶员:在我编程的过程中,出现了一些小问题,比如忘加分号,这些小问题可以及时的发现.有时我也会问我的领航者一些疑问,省去了上网查资料的过程,提高了编程的效率.在代码复审的过程中,有的问题我在自己调试的时候没有发现.比如输入某些数据的时候,离黄金点最近的玩家得0分.还有程序的功能上的一些缺陷,也被进一步完善.编程的时候我们会有一些交流,交流使我们互相更加了解对方的编程风格,在

CSS line-height浅析(3)

这一部分我们来简单应用一下line-height属性. 一.单行文本垂直居中 代码如下: 1 <style> 2 div { 3 width:200px; 4 height:80px; 5 background-color:cyan; 6 line-height:80px; 7 } 8 </style> 9 </head> 10 <body> 11 <div> 12 <p>单行文本垂直居中</p> 13 </div&