- 浏览: 38766 次
- 性别:
- 来自: 北京
最新评论
-
liomao:
...
Windows7与Linux双系统
文章列表
在一次面试的编程环节,面试官问我 “你用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接口封装了不同的集 ...