摘要: public class NIOClient { static int SIZE = 2; final static int bufferSize = 500 * 1024; static InetSocketAddress ip = new InetSocketAddress("localhost", 12345); static CharsetEncoder encoder = Charset.forName("GB2312").newEncoder(); static class Download implements Runnable { p.. 阅读全文
posted @ 2013-07-20 00:18 傅心词 阅读(440) 评论(0) 推荐(0) 编辑
摘要: package org.fxc.nio.server;import java.io.FileInputStream;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.CharBuffer;import java.nio.channels.FileChannel;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.ch 阅读全文
posted @ 2013-07-20 00:18 傅心词 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 在主流的商用程序语言中大多都是用根搜索算法(GC Roots Tracing)判断对象是否存活,比如java,c#等。当从GC Roots到某个对象不可达,则证明此对象是不可用的,将要被回收。商业虚拟机都采用分代收集算法,根据对象的存活周期的不同将内存分为几块:新生代,老年代。新生代,每次垃圾收集都会有大批量对象死去,只有少量存活,所以适合采用“复制算法”;老年代,对象存活率比较高,没有额外的分配担保,所以一般采用“标记-清理”活着“标记-整理”算法;1.标记-清除缺点: 效率低下,标记和清除的过程效率都不高; 空间问题,标记清除之后会产生大量不连续的内存碎片;2.复制算法它可以将内存按照.. 阅读全文
posted @ 2013-07-13 14:56 傅心词 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点:首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。在C++中,内存泄漏的范围更大一些。有些对象被分配了内存空间,然后却不可达,由于C++中没有GC,这些内存将永远收不回来。在Java中,这些不可达的对象都由GC负责回收,因此程序员不需要考虑这部分的内存泄露。通过分析,我们得知,对于C++,程序员需要自己管理边和顶点,而对于Java程序员只需要管理边就可 阅读全文
posted @ 2013-07-13 14:14 傅心词 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 解压缩tar -zxvf xxx.tar.gz文件显示及查找常用于分析log//显示file中包含aaa的行cat |grep aaa查看cpu memory基本信息cat /proc/cpuinfocat /proc/meminfolinux的任务管理器top 用于动态的显示系统信息$ toptop - 01:41:40 up 9:06, 2 users, load average: 0.23, 0.25, 0.26Tasks: 77 total, 1 running, 76 sleeping, 0 stopped, 0 zombieCpu(s): 0.4%us, ... 阅读全文
posted @ 2013-07-13 13:06 傅心词 阅读(397) 评论(0) 推荐(0) 编辑
摘要: Struts 1.x和Struts 2的Action是不是线程安全的?Struts 1.x在第一次请求某个Action时,会创建这个Action实例。但之后再请求该Action实例时,就用之前创建好的这个Action处理,即它是单例模式。所以Struts 1.x的Action不是线程安全的。但是为什么我们在使用Struts 1.x开发的时候一般不用考虑线程安全问题呢?那是因为Struts 1.x的方法调用模式用到的参数一般都是局部变量(包括request, response,session,config,page,pageContext等,如下面的方法定义),局部变量是线程安全的,因此不存在线 阅读全文
posted @ 2013-07-13 10:02 傅心词 阅读(830) 评论(0) 推荐(0) 编辑
摘要: 一、线程池的创建我们可以通过ThreadPoolExecutor来创建一个线程池。 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ... 阅读全文
posted @ 2013-07-01 17:54 傅心词 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 1、实例化MemcachedClient client = new XMemcachedClient();public XMemcachedClient()public XMemcachedClient(List addressList)public XMemcachedClient(final String server, final int port)public XMemcachedClient(final String host, final int port, int weight)public XMemcachedClient(final InetSocketAddress ine 阅读全文
posted @ 2013-06-20 17:47 傅心词 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 1、创建SSH Key$ cd ~/.ssh$ ssh-keygen -t rsa -C "your_email@example.com"拷贝id_rsa.pub文件到Settings->SSH Keys->Add SSH key2、测试$ ssh -T git@github.comHi username! You've successfully authenticated, but GitHub does not provide shell access.3、设置用户名和emailgit config --global user.name " 阅读全文
posted @ 2013-06-18 10:54 傅心词 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 1、nvl('A','B') 如果a为null,则显示B2、DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )3、grouping函数用法,带一个参数,参数为字段名,结果是根据该字段得出来的就返回1,反之返回04、Overover不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。其参数:over(partition by col1 order by col2)含义:按col1指定的字段进行分组,然后再按照col2进行排序4、开窗函数:ran 阅读全文
posted @ 2013-06-11 15:36 傅心词 阅读(446) 评论(0) 推荐(0) 编辑