摘要: 今天想自己写个页面,发现页面内容不能铺满整个浏览器窗口,width设为百分百也不行,于是参考了一下网上的一些页面,发现原来要为body元素设置margin值为0才可以。body { margin: 0px 0px auto 0px;} 阅读全文
posted @ 2013-10-05 17:49 画水 阅读(809) 评论(0) 推荐(0) 编辑
摘要: sort命令既可以从文件中获取数据,也可以从stdin中获取输入,并将输出写入stdout。sort以行为单位进行排序。 选项-n代表按数字进行排序: 选项-r代表逆序排列: 选项-k可以指定按第几列来排序,其实不是列,是第几个单词: 选项-k还可以指定从第几个单词到第几个单词进行排序:uniq命令通过消除重复的内容,从给定输入中找出单一的行。uniq只能用于排过序的数据。sort的-u选项也可以只打印出不重复的行。 uniq的-c选项可以统计出各行在文件中出现的次数: uniq的-d选项只输出有重复的行: uniq的-f选项可以指定前几个单词不比较: 而uniq的-s选项则是... 阅读全文
posted @ 2013-08-29 07:06 画水 阅读(194) 评论(0) 推荐(0) 编辑
摘要: find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。 选项-name的参数指定了文件名所必须匹配的字符串。我们可以将通配符作为参数使用。 而-iname参数则是忽略大小写。 如果想匹配多个条件中的一个,可以采用OR条件操作: 如果是且的条件则可以什么都不写,也可以写-and。 选项-path可以使用通配符来匹配文件路径或文件。-path将文件路径作为一个整体进行匹配。 选项-regex基于正则表达式来匹配文件路径的。 可以用!否定参数的含义。 find命令在使用时会遍历所有的子目录。我们可以采用一些深度参数来限制find命令遍历的深度... 阅读全文
posted @ 2013-08-27 22:21 画水 阅读(7917) 评论(0) 推荐(1) 编辑
摘要: TR命令可以对来自标准输入的字符进行替换,删除以及压缩。它可以将一组字符变成另一组字符,因而通常也被称为转换命令。man手册中的解释是:Translate, squeeze, and/or delete characters from standard input, writing to standard output.翻译过来是:转换、压缩或者删除从标准输入中读到的字符,并写道标准输出中。下面来看具体用法:注:tr只能通过stdin(标准输入),而无法通过命令行参数来接受输入。①,转换将大写字符转为小写字符。'A-Z'以及'a-z'都是集合,我们可以用“起始字 阅读全文
posted @ 2013-08-24 20:41 画水 阅读(236) 评论(0) 推荐(0) 编辑
摘要: linux下的cat命令通常用于读取、显示或者拼接文件内容,不过cat所具备的能力远不止这些。man手册里说cat的作用是:concatenate files and print on the standard output(拼接文件并将其输入到标准输出中)。①,读取文件:输出file.txt文件内容:②,从标准输入中读取数据:输入标准输入中的数据以及文件的数据:注意,cat后面的短横线"-"的意思是让cat从标准输入中读取数据。③,-s 压缩空白行文件file.txt内容如下:文件中有多余的连续空白行。我们用cat -s命令可以去除多余的空白行。空白行被压缩成了一行。④, 阅读全文
posted @ 2013-08-22 22:10 画水 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 在网上看到一篇面试题,题目如下:写出下列代码的运行结果: 1 public class DispatchTest { 2 public static void main(String[] args) { 3 Base b = new Sub(); 4 System.out.println(b.x); 5 } 6 } 7 8 class Base { 9 int x = 10;10 11 public Base() {12 this.printMessage();13 x = 20;14 }... 阅读全文
posted @ 2013-08-10 22:25 画水 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 先上几个例子:①1 Integer it1 = 140;2 Integer it2 = 140;3 System.out.println(it1 == it2);输出false。②1 Integer it1 = 100;2 Integer it2 = 100;3 System.out.println(it1 == it2);输出true。很奇怪的是为什么一个是true一个是false。对这段代码反编译之后的结果如下:1 Integer it1 = Integer.valueOf(100);2... 阅读全文
posted @ 2013-08-03 16:15 画水 阅读(3022) 评论(3) 推荐(1) 编辑
摘要: ①,Struts1通过缓存来管理action对象,并且使用了单例模式,就是一个action只产生一个实例对象,这个实例对象要处理所有对应的request,所以Action类里面不应该有可变的全局变量,我们应该把所有的变量都封装到ActionForm里面。来看下Struts1的生成action实例对象的源代码: 1 protected Action processActionCreate(HttpServletRequest request, 2 HttpServletResponse response, ActionMapping mapping) 3 ... 阅读全文
posted @ 2013-07-28 09:51 画水 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 原题地址如下:http://hero.pongo.cn/Question/Details?ID=71&ExamID=69题目大意:我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同,而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。 现在给定一个字符串,输出它的最大可能的完美度。 例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。 函数头部 C int perfect(const char *s); C++ int perfect(const string 阅读全文
posted @ 2013-07-27 08:33 画水 阅读(377) 评论(0) 推荐(0) 编辑
摘要: CopyOnWriteArrayList是一个并发集合类,它实现了List接口,它是一个线程安全类而且它实现线程安全的机制和Vector不一样。JavaAPI文档说它是通过复制一个内部数组来实现写操作(包括add、set等等)的线程安全机制。这种方式会很耗费性能,但是在遍历操作次数远大于写操作的时候效率会很高。这种复制模式称为“snapshot style”,当调用iterator方法创建迭代器时,迭代器保留一个指向底层数组的引用,在迭代器的生命周期内,这个数组永远不会改变,并且迭代器不支持写操作,会产生UnsupportedOperationException异常。 来看看代码:1 /... 阅读全文
posted @ 2013-07-25 21:07 画水 阅读(280) 评论(0) 推荐(0) 编辑