`
文章列表
在一次面试的编程环节,面试官问我 “你用IPython么”。当时以为IPython是Python的某种实现或者某种框架,回来后查阅了一下,原来IPython是Python Shell的加强版。首先找到官网的Overview来看,才发现IPython的确是为Python Shell加强了太 ...
  在敏捷开发的理念被越来越多的人接受,实践,另一个名字也逐渐被人们熟悉:TDD。 TDD,Test Drive Development,测试驱动开发。在实践你的代码前,你应该先实现针对代码的测试代码。 测试驱动的好出显而易见: 用了丰富而全面 ...
我曾经很长一段时间不愿意接触web的东西,也不喜欢做web开发。究其原因,是被Div+Css的布局模式折磨的异常痛苦。不必提跨浏览器,但是所见!=所得,就常常令人焦头烂额了。所以,即便做web方面的,也是躲着css走。        ...
在程序设计语言的设计中,动态语言,静态语言两大阵营都有着大量的尤其是再现实应用中的成员。 像java  c++ c#这种重量级语言,还有Perl,python,ruby这等轻巧的语言。一直以来,孰优孰劣似乎一直是争论的焦点。我并不想, ...
熟悉linux的朋友,对diff这个工具一定不会陌生。diff可以用来比对两份文件的异同。而在cvs svn这种版本控制系统中,diff更是发挥着重要作用 。 由于同一个项目有多个子版本,所以某一个子版本在进行了一些bug修复后,想把同样的修复应用到其它的版本上。使用cvs不知道是不是支持这种功能。所以,自己想写一个脚本,来将一些改动自动应用。 首先,想自己动手实现diff。 最初的想法是这样的:   1. 将2份文件的所有行读取到两个list中,src与tar,每个list设置2个游标,分别是Current 和 position,代表当前处理的行数以及在行与行不匹配的情况下,进行超前 ...
在Python中,文件遍历是一件非常轻松简便的工作。官方给出的示例: import os from os.path import join, getsize for root, dirs, files in os.walk('python/Lib/email'): print root, "consumes", print sum([getsize(join(root, name)) for name ...
本文将简要介绍Windows 下安装 Linux的一些常遇到的问题及解决方案。 1.基本条件: 我使用的dell vestro 1400笔记本电脑,原有系统是Win7. 在Win7下安装Linux(Fedora 9),我的做法是这样的: a. 从windows系统中为Linux单独准备出20G大小的一块硬盘分区。需要将一个盘通过磁盘管理格掉,然后从中保留20g的大小的空间,并且不要新建硬盘分区,因为windows使用的NTFS文件系统,而Linux使用ext3.此时的20g空间在windows下是看不到的。 b. 重启系统,不管你是用Live CD还是USB启动盘,进入安装界面后,一路NEXT ...
Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面(当然是针对上面那条来说了) Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性 Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shift+Ctrl+En ...
很久之前就阅读过GoF的设计模式,由于才疏学浅,又没有什么实践经验,完全是一个学生的走马观花。现在由于在实际工作中的需要,还是要一遍遍反复回味这些优秀的设计模式,正所谓温故而知新。 首先来说一说单例(Singleton) ...
程序目的:为了练习刚刚复习的Thread及刚刚学习的Timer。 设计思路: 我们都知道,缓存是加快数据访问的非常重要的一种手段。现在,假设我们的内存中有多个缓存块(即内存块),为了确保数据的一致性,我们希望能够定时对这些缓存块进行数据同步,通过Timer,我们可以轻松实现这一目的。 概要: 项目包含3个类: MemoryBlock   缓存块 MemoryBlockManager  缓存管理类,集中负责缓存块的添加及同步 SyncMemTask   TimerTask的子类,用于执行同步任务 类图: 代码: MemroyBlock.java /** * MemoryBlock. ...
Queue interface 一个队列的接口定义: public interface Queue<E> extends Collection<E> { E element(); boolean offer(E e); E peek(); E poll(); E remove(); } 队列的每一个方法都有两种形式,一种当操作失败时会抛出异常,另一种失败时会返回特定的值,返回值的类型依赖于具体方法的定义。 Throws ExceptionReturns special valueInsertadd(e)offer( ...
List Interface 除了从Collections继承的标准方法外,List处于以下目的定义了自己的方法: 位置访问  通过元素所在位置访问元素 搜索      搜索List中的特定元素 并返回位置 迭代      提供更加丰富的迭代器 Range-view(范围视图)  对给定List实施范围操作。 List的接口定义如下: public interface List<E> extends Collection<E> { // Positional access E get(int index); E set(int index, ...
Set Interface 除了不能添加重复元素外,set也添加了一些强约束,在执行equals和hashCode方法,这使得集合可以进行有意义的比较操作,即使他们的实现类型不同。 一个Set接口的声明如下: public interface Set<E> extends Collection<E> { // Basic operations int size(); boolean isEmpty(); boolean contains(Object element); boolean add(E element); ...
在这一节中,讲详细探讨Java Collections Framework中的每一个接口。 1. Collection Interface 假如你有这样一个声明,Collection<String> c, 你可得到一个String对象的集合。这个集合可能是List,Set或其他的Collection类型。下面的这种用法会创建一个ArrayList,包含String对象。 List<String> list = new ArrayList<String>(c); 以下是Collection接口的声明: public interface Collection ...
集合(Collections):也常被叫做容器(Container),是一种将多个元素聚合起来组成一个单元的对象。它常常用来储存、检索、操作聚合的数据。 Java Collections Framework包含以下3个要素: 1.接口 使用抽象的数据类型来表示集合,使集合的操作具有数据独立性,不和特定的数据类型相关 2.实现 实现了接口的定义,可复用的数据结构 3.算法 算法是高效的可复用的功能单元,比如排序、搜索等。同时,算法又具有多态性,同一个算法可以被同一接口的不同实现进行调用。 从接口开始,来观察一下Collections的结构。 接口 核心的Collections接口封装了不同的集 ...
Global site tag (gtag.js) - Google Analytics