`
robertliudeqiang
  • 浏览: 121828 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
用来考女球迷的世界杯选择题: 1、阿根廷主教练叫什么? A:猪拉多纳 B:牛拉多纳 C:马拉多纳 D:羊拉多纳 2、以下哪个是葡萄牙球星? A:A罗 B:B罗 C:C罗 D:D罗 3、以下哪个是阿根廷球星? A:梅东 B:梅南 C:梅西 D:梅北 4、以下哪个是韩国球星? A:李东国 B:李南国 C:李西国 D:李北国 5、以下哪个是英格兰球星? A:黑帕德 B:兰帕德 C:绿帕德 D:红帕德 6、以下哪个是法国球星? A:上贝上B:下贝下 C:里贝里 D:外贝外 7、以下哪个是荷兰球星? A:东风破 B:范佩西 C:双结棍 D:千里之外 8、以下哪个是日本队的球星? A:川口能活 B:川口能 ...
不报告所有异常有什么坏处 例如:你在一个方法里捕获了一个异常,但是在catch里没有做任何事情,也没有向外扩散这个异常。那么,当日后程序在生产环境中运行时发生错误,抛出这个异常时,方法返回了,运行结果错误,最 ...
看到一篇写的非常好的文章,揭示了java序列化算法(Serializable)的细节。 http://www.javaworld.com/community/node/2915 主要序列化过程(先写类的元数据,再写数据): 1 写和类相关的元数据 2 递归的写和父类相关的元数据,知道遇到Object类 3 从最高层的父类开始写数据 4 直到最低层的类的数据被写入
持续更新。 成功的软件项目的特点(优先级排序): 1 满足用户的需求 2 可维护性 3 性能好 程序员应该遵循的规范: 1 尽量使用自动排版工具,对工具进行定义满足自己的需求 2 建立一套变量,函数,过程等命名规范 3 建立模板使程序员能方便地(最后是自动地)根据模板产生文档和代码 4 编写出具有自解释的代码,同时添加必要的注释 5 添加必要注释的地方包括   - 程序头   - 关键逻辑   - 复杂逻辑   - 待完成的逻辑 编译成功之后: 跟踪,调试,运行。 1 修正bug不要立即开始调试,可以先使用跟踪信息缩小错误范围   关键在于是否有一套好的方式记录跟踪信息。
网站登陆分类 不考虑HTTPS,网站通过浏览器登陆大约可以分为如下几类 密码明文传输,用户在浏览器输入用户名密码,然后用明文传输到网站。人人网就是这种做法。 使用HTTP协议Authentication机制,一般网站使用的少。 使用JS对用户输入的密码进行处理,网络上不用传输明文密码了。开心001采用的这种做法。 另外: 有些网站也提供接口,让用户可以编写客户端来访问网站,例如amazon s3。 开心001的登陆开发实践 和人人一样,我在做开心001登陆开始的时候也是使用badboy录制登陆过程,用jmeter重放。发现登陆时并没有直接发送密码明文,而是用如下两个参数代替: ...
目的: 使用HTTPClient4.0.1登录到人人网,并从特定的网页抓取数据。 总结&注意事项: HttpClient(DefaultHttpClient)代表了一个会话,在同一个会话中,HttpClient对cookie自动进行管理(当然,也可以在程序中进行控制)。 在同一个会话中,当使用post或是get发起一个新的请求时,一般需要对调用前一个会话的abort()方法,否则会抛出异常。 有些网站登录成功后会重定向(302, 303),比如这里的人人网。如果发出的是post请求,需要从响应头中取出location,并再次向网站发送请求,以获取最终数据。 抓取程序不要运 ...
Spring负责Action的产生 1 除了struts core,在WEB-INF/lib下加入struts2-spring-plugin-2.1.8.1.jar和spring.jar包。 2 web.xml 配置一个listener <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 3 applicationContext.xml 放到 ...
JAXP(Java API for XML Parsing) Sun(现在属于oracle)提供的一套操作解析和操作XML文档的接口,主要包括三个包: javax.xml包及子包: 用来获取解析器,并解析文档。 org.w3c.dom包及子包: 使用DOM操作XML需要的接口 org.xml.sax包及子包: 使用SAX操作X ...
B树算法及其变种多用于文件,数据库索引,下面是参考“算法导论”的java实现,可以加入节点,没有提供删除结点功能,打印的信息还行,仅供学习。 import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /* * Author: Robert Liu */ public class BTree<E extends Comparable<E>> { private BTNode root = null; private int t; pri ...
先搞清servlet的几个概念: RequestURI(请求URI) 表示客户端(浏览器)请求的URL,例如一个链接http://localhost/app/test,那么request URL就是/app/test。RequestURI不浩瀚查询参数。 RequestURI可以使用request.getRequestURI()获取。 context path(上下文路径) 表示了一个应用(web application),例如一个链接http://localhost/app/test,那么context pathL就是/app。 context path可以使用request.getCont ...
早上看了一篇写单例模式的文章,总结的比较全,可惜仍然没有对单例模式在不同classloader甚至是多个jvm上的分析,在网上搜了一下,找到一个例子并改写如下: 定义一个空接口: // Null interface, do nothing but you'll see the usage later public interface IAntiSingleton { } 定义一个通用的单例模式 public class AntiSingleton implements IAntiSingleton { private static final AntiSingleton instan ...
java中存在对多个对象加锁的情况,例如: 在银行系统转账时,需要锁定两个账户,这个时候,顺序使用两个synchronized可能存在死锁的情况,在网上搜索到下面的例子: public class Bank { final static Object obj_lock = new Object(); // Deadlock crisis public void transferMoney(Account from, Account to, int number) { synchronized (from) { synchronized (to) { fr ...
起因: 源于在java.util.BitSet的源码中发现这样一条语句: 1L << bitIndex 当bitIndex为64时,上面语句的返回值为1,据此猜测java的移位运算使用的是循环移位规则,内容可以参考上一篇博客 "JDK源码 - BitSet的实现" http://robblo ...
java.util.BitSet是个很有趣的类,了解其内部实现对正确的使用非常重要。 对象构造: private final static int ADDRESS_BITS_PER_WORD = 6; private final static int BITS_PER_WORD = 1 << ADDRESS_BITS_PER_WORD; private long[] words; private static int wordIndex(int bitIndex) { return bitIndex >> ADDRESS_BITS_PER_WORD; ...
归并排序用来合并排好序的数组,常用于外部排序,常见的归并排序是对两个数组进行归并,如果两个数组长度为m和n的话,比较的时间最大是m+n。 新的问题是,如果有多个排好序的数组,如果进行归并? 一种可以想到的方法是:逐个进行归并排序(第一个数组和第二个数组合并,合并和的数组再和第三个数组合并...),这种情况下时间复杂度是O(n*n)。 算法导论里提到过一个用堆来进行多路排序的算法,时间复杂度是nlogn,java里面的PriorityQueue就是现成的堆的结构,实现起来还是比较方便的,代码如下: 用到的内部数据结构: // 如果用链表存储数据,就不用这么麻烦了, // 用数组的话 ...
Global site tag (gtag.js) - Google Analytics