摘要: 代码注释很重要,没有注释的代码简直就是噩梦。可就是有人想要没注释的源码,真无奈。。。写了个小工具,去掉java中的代码注释,奉上。其实很简单,就是一些递归,遍历,IOView Code 1 package mxf.study.java; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileNotFoundException; 7 import java.io.FileReader; 8 import java.io.Fi.. 阅读全文
posted @ 2012-04-08 00:09 海贼王路飞 阅读(344) 评论(0) 推荐(0)
摘要: 【转】PreparedStatement和Statement区别第一: 数据库在执行sql语句的时候如果使用PreparedStatement语句会有一点优势:因为数据库会preparedStatement语句进行预编译,下次执行相同的sql语句时,数据库端不会再进行预编译了,而直接用数据库的缓冲区,提高数据访问的效率(但尽量尽量采用使用?号的方式传递参数),如果sql语句只执行一次,以后不再复用.第二: 在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement.基于以下的原因:一.代 阅读全文
posted @ 2012-04-07 21:31 海贼王路飞 阅读(143) 评论(0) 推荐(0)
摘要: 【转】http://my.oschina.net/hunzi/blog/9729范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库.目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进 阅读全文
posted @ 2012-04-06 10:49 海贼王路飞 阅读(473) 评论(0) 推荐(0)
摘要: 在(一)中只用了一个线程来处理客户端连接,显然这样是不合适的,客户端只能一个一个的去连接服务器。现在原来的程序,每次获取到一个客户端连接之后,启动一个线程去处理它,服务器主线程继续等待客户端的其他连接。怎么做呢?只要在获取到客户端的连接之后,启动新线程就可以了。这个服务器还是只有一个功能,只是把客户端获取的数据,直接写回去。package mxf.study.java.nio;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket 阅读全文
posted @ 2012-03-30 09:01 海贼王路飞 阅读(144) 评论(0) 推荐(0)
摘要: 很久不写Socket了,很多API生疏了,最近准备把它整理一下,写一些实例。java为Socket提供了两个比较重要的类:ServerSocket和Socket。其中ServerSocket用于建立服务器端,但是一旦Socket建立完成,服务器端和客户端就是一样的了。Socket通过InputStream和OutputStream来接受发送数据。第一个服务器很简单,只有一个线程,接受到了客户端请求,就把客户端发送过来的内容,直接写回去。package mxf.study.java.nio;import java.io.IOException;import java.io.InputStream 阅读全文
posted @ 2012-03-30 08:37 海贼王路飞 阅读(277) 评论(0) 推荐(0)
摘要: 写一个简单的多线程的生产者消费者问题,练手。第一版比较简陋,后面改进。package mxf.study.java.thread;/*** 多线程的生产者和消费者问题。* 使用 synchronized 版本*/public class ThreadSync { private static final int size = 10; public static void main(String[] args) throws InterruptedException { final MyBag bag = new MyBag(); //同一个锁对象 Thread writerThre... 阅读全文
posted @ 2012-03-29 21:26 海贼王路飞 阅读(139) 评论(0) 推荐(0)
摘要: 在ReentrantLock中主要定义了static的内部类:Sync。static abstract class Sync extends AbstractQueuedSynchronizer {然后又分别派生出:NonfairSync,FairSync两个类。这两个区别是:NonfairSync中的tryAcquire就看当前(锁)的状态是否是0,如果是则 state=acquires; owner = current; //owner==null, 表示没有锁定,否则表示被owner线程锁定 如果原来owner就是current thread, state +=acquires;一般ac 阅读全文
posted @ 2012-03-05 17:57 海贼王路飞 阅读(174) 评论(0) 推荐(0)
摘要: 文章链接地址!java序列化规范:http://hi.baidu.com/%BE%C5%BE%C5%D6%D8%D1%F4%BB%E1/blog/item/355a960af78669c57acbe167.html 阅读全文
posted @ 2012-02-10 17:07 海贼王路飞 阅读(290) 评论(0) 推荐(0)
摘要: As a programmer, it is your job to put yourself out of business. What you do today can be automated tomorrow.作为一个程序员,如果你脱离业务,那么你今天的工作明天就能被自动化实现。 阅读全文
posted @ 2012-02-09 10:30 海贼王路飞 阅读(118) 评论(0) 推荐(0)
摘要: 分析 JUnit 框架源代码理解 JUnit 测试框架实现原理和设计模式文档选项<tr valign="top"><td width="8"><img alt="" height="1" width="8" src="//www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" width="16" h 阅读全文
posted @ 2012-02-06 11:54 海贼王路飞 阅读(617) 评论(0) 推荐(1)