摘要:
foo bar baz foo content bar content baz content 阅读全文
posted @ 2013-03-26 09:26
liangge0218
阅读(174)
评论(0)
推荐(0)
|
摘要:
foo bar baz foo content bar content baz content 阅读全文
posted @ 2013-03-26 09:26
liangge0218
阅读(174)
评论(0)
推荐(0)
摘要:
var Y = YUI();var EventProxy = function(){ this.event_list = {}; this.data_list = []; this.callback = null; this.trigger_flag = false;}EventProxy.prototype.assign = function(){ this.callback = Array.prototype.splice.call(arguments, arguments.length - 1, 1)[0]; if(typeof this.callb... 阅读全文
posted @ 2013-03-26 09:26
liangge0218
阅读(244)
评论(0)
推荐(0)
摘要:
1. LockSupport类AQS架构使用LockSupport来实现线程的休眠,时间性休眠,唤醒...2. AQS架构-所有同步器的基本架构----- a. 基于AQS架构的同步器基本上只需要实现四个函数 1. tryAcqurie(int) -- 线程会调用这个函数来做能否互斥的获取同步器资源的尝试的逻辑 2. tryRelease(int) -- 线程会调用这个函数来做能否互斥的释放同步器资源的尝试的逻辑 3. tryAcqurieShared(int) -- 线程会调用这个函数来做能否共享的获取同步器资源的尝试的逻辑... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(162)
评论(0)
推荐(0)
摘要:
最近在工作中有一个需求,需要对大段内容进行关键字替换,因数据量比较多,有几十万条,每一条为几千到上万个汉字不等,而且需要进行多次替换,但心在循环中有性能问题,所以拿java.lang.String的replace方法与apache-commons-lang的replace方法做了一个对比
String text = FileUtils.readFileToString(new File("E:/a.txt"), "GBK");int c =100000;long time = System.currentTimeMillis();for(int i=0; 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(1134)
评论(0)
推荐(0)
摘要:
从第11行开始显示,但不包括最后3行head -n -3 yum.conf |tail -n +11显示前20行,但从第11行开始head -n 20 yum.conf |tail -n +11显示除最后3行以外的所有行,但只显示最后10行head -n -3 yum.conf |tail -n 10显示前20行中的后10行head -n 20 yum.conf |tail -n 10从第11行开始显示,但只显示前10行tail -n +11 yum.conf |head -n 10从第11行开始显示,但不包括最后3行tail -n +11 yum.conf |head -n -3... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(333)
评论(0)
推荐(0)
摘要:
log4j是一个强大的日志记录工具,每次用的时候都不记得配置应该怎么写,记录在这里,以后要用的时候就可以直接拿了,log4j有很多功能,我相信大部分用log4j的只需要打印到控制台跟按日期输出日志就行了。log4j.properties:
log4j.rootLogger=info, stdout, filelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.Con 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(360)
评论(0)
推荐(0)
摘要:
最近工作中做一个数据对接时对方传过来的数据为xml格式,而我则接收数据并转换为java bean进行操作,传过来的数据格式如下:
100 ... ... ......转换过来大概就是一个java bean中有一个total成员变量,一个books的列表,而XStream默认对接的数据格式是有集合类的父节点的,即book只是列表中的项,如下: 100 ... ... ......而此时,我们需要将集合类的名称books隐藏掉XStream才可正常将其转换为java bean,XStream中的此方法就可以达到要求:
addImplicitColl... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(430)
评论(0)
推荐(0)
摘要:
最近在学习android,碰到些小问题,记录下来EditText可以在XML和代码中设置字数限制,在xml中android:maxLength =“50”在代码中可以editText.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 100 )});限制其只能输入数字的话可以android:numeric="integer" 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(1579)
评论(0)
推荐(0)
摘要:
由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。举个例子:假设有个表单products ,里面有id跟name二个栏位,id是主键。例1: (明确指定主键,并且有此笔资料,row lock)SELECT * FROM products WHERE id='3' FOR UPDATE;SELECT * FROM products WHERE id='3' and type=1 FOR UPDATE;例 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(2358)
评论(0)
推荐(0)
摘要:
最近工作中需要做一个爬虫去抓取指定页面的一些内容,准备使用HttpParser来解析页面结构,顺便看了一下httpclient4,可以将它们配合使用HttpParser有三种模式,filter模式,visitor模式,bean模式
publicstaticvoid parserByVisitor() throws Exception{ Parser parser =new Parser(); parser.setURL("http://www.baidu.com"); NodeVisitor visitor =new NodeVisitor()... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(234)
评论(0)
推荐(0)
摘要:
String str = "xxx第47297章33"; String regex = "\\d*"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(str);while (m.find()) {if (!"".equals(m.group())) System.out.println("come here:" + m.group());}打印结果为
come here:47297come here:33 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(593)
评论(0)
推荐(0)
摘要:
最近工作需求,需要在Linux中启动定时任务,每隔2分钟调用一个Java程序,碰到一系列的问题,总结如下1.crontab定时任务如果指定了结果输出流文件,则要输入 2>&1 才会将结果输出到指定的文件,如
*/2 * * * * /opt/a8box/mb_umdtasker/create_umd.sh >/opt/a8box/mb_umdtasker/out.log 2>&1如果要将标准流与错误流输出到Linux回收站中,即不显示任何东西,则需要加上 /dev/null 如
*/2 * * * * /opt/a8box/mb_umdtasker/creat 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(1219)
评论(0)
推荐(0)
摘要:
IP协议(Internet Protocol)是网络层协议,用在因特网上,TCP,UDP,ICMP,IGMP数据都是按照IP数据格式发送得。IP协议提供的是不可靠无连接得服务。IP数据包由一个头部和一个正文部分构成。正文主要是传输的数据,IP头部由20字节的固定长度和一个可选任意长度部分构成,以大段点机次序传送,从左到右,IP协议数据包格式如下TCP协议(TRANSMISSION CONTROL PROTOCOL)是传输层协议,为应用层提供服务,和UDP不同的是,TCP协议提供的可靠的面向连接的服务,跟IP头部差不多,基本的长度也是20字节。TCP数据包是包含在一个IP数据报文中的,TCP数据 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(2820)
评论(0)
推荐(1)
摘要:
Java中的汉字Unicode码在 \u4E00-\u9FA5\uf900-\ufa2d 范围内,所以1可以遍历字符串中每个char比较是否在这个范围内即可2利用正则表达public static void judgeChinese1(String str) { String regEx = "[\u4E00-\u9FA5\uf900-\ufa2d]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str);while (m.find()) { System... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(1184)
评论(0)
推荐(0)
摘要:
最近碰到一个Ant构建可运行jar包时关于依赖jar包路径问题,总结如下1.因依赖jar包需在主jar包程序的MANIFEST.MF的Class-Path中指出,而且有一系列的要注意的地方
Manifest-Version: 1.0Ant-Version: Apache Ant 1.7.1Created-By: 19.1-b02 (Sun Microsystems Inc.)Main-Class: com.umd.tasker.MainClass-Path: lib/activation.jar lib/commons-beanutil s.jar lib/commons-codec.jar 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(741)
评论(0)
推荐(0)
摘要:
在resin jboss中,类的热加载是做的比较完美的,而在tomcat中,当应用有class的变动时,tomcat会reload整个应用,造成很多不便,可以采用JVM的插件Jreloader来解决这个问题1下载 JReloader的jar包jreloader.jar,2在eclipse配置的Installed JREs中,在当前JVM的启动参数Default VM Argument中写上-noverify -javaagent:E:\jreloader-0.4\jreloader.jar -Djreloader.dirs=E:\workspace_mbook\.metadata\.plug. 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(448)
评论(0)
推荐(0)
摘要:
最近在mybatis多线程插入数据时出现两则问题,记录如下:问题1:我的逻辑如下1 select表中category_name字段,如果有的话则取出其ID2 如果木有的话则插入一条数据,同时用last_insert_id()函数将主键主增长ID找出mybatis配置如下 insert ignore into common_category (category_name,category_group) values(#{categoryName},#{categoryGroup})由于在多线程环境中,可能会导致逻辑同时进入2逻辑,此时会导致insert失败,las... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(8311)
评论(0)
推荐(0)
摘要:
在Mysql中,InnoDB的数据库磁盘存储是全部存储在data/ibdata1文件中的,数据量大了,该文件会变的越来越大,在my.ini的[mysqld]标签中加上innodb_file_per_table=1 ,将可以便每个InnoDB表使用独立的存储文件,如
[mysqld]basedir="D:/mysql-5.5.19-win32/"datadir="D:/mysql-5.5.19-win32/data"innodb_file_per_table=1character_set_server=utf8default-storage-engine= 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(276)
评论(0)
推荐(0)
摘要:
SELECT *FROM `list` AS tt1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `list`)-(SELECT MIN(id) FROM `list`))+(SELECT MIN(id) FROM `list`)) AS id) AS tt2WHERE tt1.id >= tt2.idORDER BY tt1.id LIMIT 5; 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(144)
评论(0)
推荐(0)
摘要:
lucene中,很多方法都不推荐使用了,写个示例public class IndexerCreate {private static Analyzer luceneAnalyzer = new IKAnalyzer();private static Directory indexDir = new RAMDirectory();// private static Directory indexDir;// static{// try {// indexDir = new SimpleFSDirectory(new File("D:/indexe... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(118)
评论(0)
推荐(0)
摘要:
方式1:select * from table order by id limit m, n;该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录。无疑该查询能够实现分页功能,但是如果m的值越大,查询的性能会越低(越后面的页数,查询性能越低)。 方式2:select * from table where id > #max_id# order by id limit n;该查询每次会返回n条记录,却无需像方式1扫描过m条记录,在大数据量的分页情况下,性能可以明显好于方式1,但该分页查询必须要每次查询时拿到上一次查询(上一页)的一个最大id(或最小id)。 方式3: ... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(134)
评论(0)
推荐(0)
摘要:
最近工作有个微博营销的需求需调用新浪微博API接口,碰到了不少问题,一一总结1.利用ajax调用新浪微博API接口牵扯到ajax跨域的问题,而ajax跨域的问题有几种解决方案,如jsonp、动态script标签、iframe,各种方案的要求与适应场景各不相同,网上一搜一大把。在新浪微博的API说明中,只说明了返回的数据类型,未说明是否支持jsonp方法回写,其实新浪微博API是支持jsonp回写的,如用jquery发ajax请求$.ajax({ // Weibo API. url: "https://api.weibo.com/2/users/show.json", ty. 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(601)
评论(0)
推荐(0)
摘要:
今天在移植一个HTML页面的时候发生了一个问题,在chrome下显示正常,而在IE9下始终显示不正常,页面七上八下的,似乎是CSS在IE9下不能正常解析,一开始心里又在骂万恶的IE,经过无数次的尝试后在HTML文档第一行加上了一句
后,整个世界正常了,总结如下:之前写HTML页面一般都是直接以开头了,完全忽略了HTML头文档的作用,一直以为它是无用的,事实上,它确实是有用的,目前的HTML头有如下几种
HTML4.01 Strict DTD:HTML4.01 Transitional DTD:HTML4.01 Frameset DTD:XHTML1.0 Strict DTD:XHTML1.0 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(202)
评论(0)
推荐(0)
摘要:
今天在写sql语句时有语句如下:
select article_id from articles where status=1 and (create_time between '2012-05-30 00:00:00' and '2012-06-30 00:00:00') order by read_num desc为优化该sql,我自信满满的建立组合索引(status,create_time,read_num),当sql语句解析时,却显示如下:
Using where; Using index; Using filesort出现了最不该出现的Using fi 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(104)
评论(0)
推荐(0)
摘要:
在mysql中,主键有auto_increment来保证其自增长,如果我们自定义函数来表示auto_increment的话可以如下:
create function select_autoincrement_id() returns int(11)beginselect max(id)+1 from table_name;end但是,此方法会有并发方面的问题,如两个事务中就可能获取到同一个id而其中一个失败,所以需要锁表
create function select_autoincrement_id() returns int(11)beginselect max(id)+1 from tab 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(398)
评论(0)
推荐(0)
摘要:
最近在用freemarker的时候碰到一个问题,在中的元素用进行比较
结果出现问题如下:
freemarker.template.TemplateException: The only legal comparisons are between two numbers, two strings, or two dates.Left hand operand is a freemarker.template.SimpleNumberRight hand operand is a freemarker.template.SimpleScalar其原因为左边与右边的类型不一样,将它们类型转换成一样. 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(1202)
评论(0)
推荐(0)
摘要:
从这段时间开始将开始全面从事前端开发的工作,开发工具的话初步选定Aptana Studio 3,但写起代码来有点问题需要设置一下,记录如下:1.编辑界面字体英文的话没什么问题,中文的话显示太小,在网上查了下应该是在WIN7中才会有的问题,因为以前的默认字体在WIN7中变成了Consolas,而以前的Courier New字体似乎不见了,在网上找到一解决方案,下载了一新字体,主要是在Consolas字体基础上将中文改大了些,不错,将附件中的字体复制到C:\windows\Fonts下,然后在Aptana Studio 3中设置Window--Preferences--General--Appea 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(612)
评论(0)
推荐(0)
摘要:
SublimeText是一款出色的代码编辑器,初次使用时有点习惯不太一样,系统与快捷键的设置全部通过配置文件完成,代码宅的福音!它的插件的安装可以将下载下来的文件全部放到packages目录即可,如果想要更方便一点的,首先给它安装一个插件管理器,进入http://wbond.net/sublime_packages/package_control将package controller安装好,然后就可以调用ctrl+shift+p来安装插件了目前安装了一个js文档注释的插件DocBlockr与js格式化的插件jsFormatter和GBK support插件(竟然不支持GBK),其余的以后再去发 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(567)
评论(0)
推荐(0)
摘要:
主要思路1.把input=file设为透明2.鼠标移在图片上时让input=file浮在图片上随着鼠标走3监控input=file的onchange事件将form表单提交4提交到隐藏的iframe上让页面无刷新相关说明:1.hidefocus=true,在IE中input=file浮在图片上点击时会有虚线框出现,用hidefocus=true即可隐藏2.position:absolute;width:10px,input=file绝对定位3.fi... 阅读全文
posted @ 2013-03-26 09:25
liangge0218
阅读(448)
评论(0)
推荐(0)
摘要:
最近在工作中有一个需求,要求N个子模块线程同时启动,等这N个子模块线程都完成后,再启动一个线程进行一些收尾工作,Java并发包中CountDownLatch与CyclicBarrier都可以达到此要求。CountDownLatch使用场景如下:public class Test {public static void main(String[] args) throws Exception{ Room r = new Room();new Thread(r).start(); r.startLatch.countDown(); }}class Room imp... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(216)
评论(0)
推荐(0)
摘要:
当一张表的多个字段没有唯一索引时,想要在sql语句中加上判断达到不插入重复记录的目的,可以使用mysql的dualINSERT INTO book_chapter_del(book_id, chapter_id,status)SELECT 20049198, 1000930, 0FROM dualWHERE not exists (select * from book_chapter_delwhere book_id = 20049198 and chapter_id=1000930) limit 1;select express [from dual]; mysql总是作为返回该表达式值的. 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(241)
评论(0)
推荐(0)
摘要:
String a = "abc"; Field f = a.getClass().getDeclaredField("value"); f.setAccessible(true); char[] ch = new char[3]; ch[0]='b'; ch[1]='c'; ch[2]='d'; f.set(a, ch); System.out.println(a);此时打印出来的就是bcd,具体在于这一句代码
f.setAccessible(true);值为 ... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(416)
评论(0)
推荐(0)
摘要:
关于JDBC支不支持批量操作,网上的答案各有各的说法,经过一翻测试,发现MySQL驱动JDBC确实不支持批量操作,如果需要其支持批量操作,需要在MySQL的连接url中加上rewriteBatchedStatements=true,加上后,无论MySQL是循环插入还是批量插入,均有改善测试环境win7 32位系统 mysql5 JDBC驱动为mysql-connector-java-5.1.16-bin.jar,数据库表user为InnorDBpublic static void test_mysql(){ String url="jdbc:mysql://localho... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(582)
评论(0)
推荐(0)
摘要:
一张表,里面有 id name state customerid 4个字段,其中status有3个值0 1 2 ,用一条sql查询出此种格式
customerid state-0 state-1 state-2 001 11 212 333 002 15 545 3 sql如下:
select customid, count(case status when 0 then status else null end) as status-0, ... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(162)
评论(0)
推荐(0)
摘要:
public static void quickSort(int[] sort, int start, int end) {// 设置关键数据key为要排序数组的第一个元素, // 即第一趟排序后,key右边的数全部比key大,key左边的数全部比key小 int key = sort[start]; // 设置数组左边的索引,往右移动判断比key大的数 int i = start; // 设置数组右边的索引,往左移动判断比key小的数 int j = end; // 如果左边索引比右边索引小,则还有数据没有排序 ... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(98)
评论(0)
推荐(0)
摘要:
ImageInputStream iis = ImageIO.createImageInputStream(new File( "E:/1.jpg")); Iterator iter = ImageIO.getImageReaders(iis); if (!iter.hasNext()) { System.out.println("null"); }else{ ImageReader reader = (ImageReader) iter.next(); ... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(1038)
评论(0)
推荐(0)
摘要:
$ find . -name "*.xml" -exec cp {} /home/data/sslib/sslib/ \;任务内容:把当前文件夹下的以“xml”为后缀名的所有文件复制到/home/data/sslib/sslib/ 目录下。在使用-exec参数时,必须以“\;”结尾,而且之前要有一个空格,否则,系统会提示“find遗漏-exec参数”,命令将无法执行 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(713)
评论(0)
推荐(0)
摘要:
碰到一个在上传完图片后需要将其转换为多种格式的问题,当然在Java程序里可以解决,但灵活性不高,所以就想到了用Process来调用外部命令linux的一个工具ImageMagick来解决问题。waitFor() 导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。在调用该方法时,经常会出现线程阻塞,Process需要向主线程汇报运行状态,要注意清空缓存区,即Process的InputStream与ErrorStream
Process p = Runtime.getRuntime().exec("cmd /c dir"); BufferedR 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(1060)
评论(0)
推荐(0)
摘要:
convert命令格式:-resize widthxheight{%} {@} {!} {} {^}1.默认时,宽度和高度表示要最终需要转换图像的最大尺寸,同时Convert会控制图片的宽和高,保证图片按比例进行缩放。如:convert -resize 600×600 src.jpg dst.jpg转换后的dst.jpg的图片大小(宽度为600,而高度已经按比例调整为450).2.如果需要转换成600×600,而图片无需保持原有比例,可以在宽高后面加上一个感叹号!.如:convert -resize 600×600! src.jpg dst.jpg3. 只指定高度 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(482)
评论(0)
推荐(0)
摘要:
public static Object arrayGrow(Object obj,int addlength){ Class c = obj.getClass();if(!c.isArray()){return null; } Class type = c.getComponentType();int length = Array.getLength(obj);int newlength = length+addlength; Object newArray = Array.newInstance(type, newlength); ... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(160)
评论(0)
推荐(0)
摘要:
public class Main { public static void main(String[] args) { Main main = new Main(); Set result = main.action("abc"); for(String str : result){ System.out.println(str); } } public Set action(String p){ if(p.length() == 1){... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(116)
评论(0)
推荐(0)
摘要:
在分布式缓存系统如memcached中,如果有N台memcached服务器,要存储一个对象的话,可以对其进行Hash取余的运算决定其存储在哪一个cache服务器上,如果某一天感觉cache服务器不够了,新增了一台cache服务器,那就会如同HashMap内部扩容一样,元素重新Hash取位置,所有的cache就会乱套了,一致性Hash算法就是解决在动态增减了cache服务器后,让cache的变动最小。 一致性Hash算法通常是将 value 映射到一个 32 为的 key 值,也即是 0~2^32-1 次方的数值空间;我们可以将这个空间想象成一个首( 0 )尾( 2^32-... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(185)
评论(0)
推荐(0)
摘要:
1.示例题目
pulbic class Something(){ public synchronized void isSyncA(){} public synchronized void isSyncB(){} public static synchronized void cSyncA(){} public static synchronized void cSyncB(){}} 那么,加入有Something类的两个实例a与b,那么下列组方法何以被1个以上线程同时访问呢 a. x.isSyncA()与... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(145)
评论(0)
推荐(0)
摘要:
Class.forName即完成了类加载步骤的静态块加载这一步,还没有完成成员初始化的工作。例如JDBC中首先要写一句Class.forName("com.mysql.jdbc.Driver"); 该类源代码如下 package com.mysql.jdbc public class Driver extends NonRegisteringDriver implements java.sql.Driver { // ~ Static fields/initializers // --------------------------------------------- / 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(144)
评论(0)
推荐(0)
摘要:
TCP TIME_WAIT阶段发生在断开连接四次握手主动端发出最后一次ACK后进入的阶段,其时间大概是1-4分钟左右(Windows与linux上稍有差别)1.之所以需要TIME_WAIT阶段,是因为假如客户端最后一次发出ACK后断开连接,该ACK在网络中丢失,服务端收不到ACK,根据重传机制,服务端会发送FIN要求客户端重新发送,而此时客户端已经释放所有资源识别不了该FIN,就会出现连接异常。2.而客户端在TIME_WAIT了最大存活时间后释放资源,也不一定能保证四次握手正常断开连接,因为可能其于以上原因但FIN报文也丢失了。所以,TIME_WAIT只是尽最大可能保证四次握手成功 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(393)
评论(0)
推荐(0)
摘要:
每个线程实例都具备有一个ThreadLocal的ThreadLocalMap,在Thread中定义如下 /* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */ ThreadLocal.ThreadLocalMap threadLocals = null;它以ThreadLocal的实例为key,以需要set的值为value,它与普通Map最大的区别就是它的Entry是针对ThreadLocal实例弱引用的,当外部Thread... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(381)
评论(0)
推荐(0)
摘要:
众所周知,Tomcat、Resin是servlet的容器,反应迅速,启动时间快,配置简单(Resin反应应该更迅速一些),但如果用到EJB工程的的话,它们就不能胜任了,比如seam工程就不能完整的在Tomcat中运行,这个时候就必须借助于一个鼎鼎大名的JBoss(当然Websphere、Weblogic也可以),但用了一段时间的JBoss,真的想说爱你不容易,启动一下竟然要1分多钟,给开发与调试带来极大的不便,而且配置文件一大堆,真是个重量级的Web应用服务器,但目前用的这个seam工程又不能在Tomcat中运行,程序员还是真的伤不起。 接老大的指令,专门花1天的时间来研究下如何... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(218)
评论(0)
推荐(0)
摘要:
有空测了下mina的连接数,代码很简单,就不贴出来了,一个for循环5W个连接,xp系统,发现到3900多个连接就不行了,客户端还是不停的在连,服务端已经不接收连接了。 经朋友指点,修改了下windows的注册表,将最大最大tcp连接数修改为65534,再测试,发现连接撑到了16000多个。 不死心,继续在Ubuntu上测试,同样先将Ubuntu的最大连接数改为65534,发现连接可以撑到28000多个了。 (以上均只是连接,连接后没有任何I/O操作)问题1:java不是跨平台么,为何在不同的os中不一样呢问题2:mina对一个端口撑的连接数的极限是多少呢问题3:m... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(653)
评论(0)
推荐(0)
摘要:
正在打dota,刚完成一个Triple Kills,内心的激动情何以堪,忽然一个0571的号码来电,我知道这是杭州的号码,而我似乎在之前投过淘宝网,这下就尴尬了,可怜我的Triple Kills,将人物拉回水泉后,接电话,可心里依然想着那盘游戏,似乎也就注定了悲剧,我想,人总要经历点这个那个的事,虽然我很期待淘宝网,但以后总有机会。 问题不多,在此总结,相信每次都会有提升1,jsp与servlet的区别与联系 servlet的内置对象都必须通过HttpServletRequest与HttpServletResponse生成,而jsp不需要 对于html页面,servl... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(126)
评论(0)
推荐(0)
摘要:
从大学到现在,参加过很多面试,经常会被问到一些基本的算法题,而大部分算法的理论及思想,我们曾经都能倒背如流,并且也用语言实现过,可由于在项目开发中应用的比较少,久而久之就忘记了,造成在面试中很尴尬的局面,然后回来查阅相关资料才发现就那么一回事,怎么在面试中就卡壳了呢?在此写下我在面试中经常被问到的一些基本的算法,全当复习。一、冒泡排序package sort.bubble;import java.util.Random;/** * 依次比较相邻的两个数,将小数放在前面,大数放在后面 * 冒泡排序,具有稳定性 * 时间复杂度为O(n^2) * 不及堆排序,快速排序O(nlogn,底数为2... 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(274)
评论(0)
推荐(0)
摘要:
早些天给深圳芒果网投了一份简历,接到了面试电话,经过三轮面试,最后也拿到了offer。前两轮面试还好,问的问题都还答的出,到第三轮的时候,出了一道算法题,可能太紧张,思考许久也只给出了解题思路,没有将具体代码想明白,回来花了些时间写了下,记录下来,以防以后忘记。题目很简单,如下:数组A与数组B均已排好序,用最有效率的办法将其合并成为数组C,要考虑到重复的数字将其去重我的代码如下:import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) . 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(1906)
评论(0)
推荐(0)
摘要:
闲来无事在网上看到一道有趣的算法题,相信很多人都见过,原题如下:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。在网上看到有很多人的答案,有用递归方法来解的,有用无向图连接遍历方法来解的,其实就是一个排列组合的问题,我觉得这道题不论用什么方法来解,最后总会回到递归上,只要将排列组合的算法实现了,那些条件限制无非就是IF ELSE的问题了,在此写下自己的方法,只为以后有需要的时候自己能有些资料复习,别一下子给搞忘了,毕竟是自 阅读全文
posted @ 2013-03-26 09:24
liangge0218
阅读(943)
评论(0)
推荐(0)
|