- 博客(12)
- 资源 (10)
- 收藏
- 关注
原创 从Java Collections源码分析迭代器模式
一、 引言 迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator it = list.iterator(); while(it.hasNext()){ //using “it.next();”do some businesss logic } 而这就是关于迭代器模式应用很好的例子。二、 定义与结构 迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(
2011-05-31 16:56:00 2631 1
原创 数据结构与算法(JAVA)-简单排序
简单排序包括冒泡排序,选择排序,插入排序三种排序方法,是入门级的排序,也是几种高级排序的基础。比如高级排序中的希尔排序是基于插入排序来延伸的。为实现排序代码,提前建立一个基类,将排序之外的细节先进行封装,下面的代码只关注具体的排序方法,基类代码如下:package algorithms.simpleSort;/*** * * @author mudalu * */public abstract class ArraySimple { protected long[] a;//待排
2011-05-26 14:59:00 1083
原创 一道面试题(大数据量 内存限制)
问题:3000w数据的表,取某项字段前50项数据 ,内存2g方案:一个数据文件,有3000W行,每行有一个id号,文件内容无任何排序。现在让你把id前 TOP 位取出来, TOP = 50.要求:你的程序最多能吃2G的内存,其他不限,要求考虑io/cup最优。解决思路:1 建一个top_array, 长度为50.2 再建一个buffer, 长度为2^20 (1G) 3 循环开始4 读取文件到buffer,直到buffer满为止5 将Buffer的前50位读到top_array7 将top_arr
2011-05-10 18:00:00 3308 1
转载 一道面试题(索引 分词)
<br />说有一个监控系统,会监控访问的url和ip还有时间。需求是可以存储1000亿条信息。 <br />1.可以按照url查询某个时间段内的访问量。 <br />2.可以按照ip查询某个时间段内的访问量。 <br />请设计一个系统? <br /> <br />假设就一张表,表里3个字段 <br /><br />url, ip, date <br /><br />存上1000亿条数据,你需要在这3个字段上都建立索引,利用分词 <br /><br />如果里面有一条数据 <br />url:http:/
2011-05-10 17:56:00 1261
转载 截取中英文混合文字方法
<br /><br /> java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的。因此java要对这些字节流经行转化。char是unicode的,而byte是字节。我们在写jsp页面时可能没注意到jsp作为回显终端,也是byte的,所以在从jsp页面中读取表单和写入数据(javabean)时要注意页面的编码.一个传统的解决方案是所有的应用包括页面编码设置/数据库编码设置都设定一致,比如gbk(gbk是gb2312的扩展集,支持的字符要多些)<br />
2011-05-10 16:53:00 1083
原创 JAVA 内存泄漏 垃圾回收 两篇
<br />Java的内存泄漏<br />http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/index.html<br /> <br />Java垃圾回收<br />http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak2/index.html#resources
2011-05-10 13:33:00 500
原创 SQL中通配符用法
<br /><br />%:匹配零个及多个任意字符; _:与任意单字符匹配; []:匹配一个范围; [^]:排除一个范围SymbolMeaninglike '5[%]'5%like '[_]n'_nlike '[a-cdf]'a, b, c, d, or flike '[-acdf]'-, a, c, d, or flike '[[]'[like ']']like 'abc[_]d%'abc_d and abc_delike 'abc[def]'abcd, abce, and abcflike '[^1-9
2011-05-10 11:28:00 4255
转载 JVM最大线程数计算方法
<br />最近在应用服务器跑压力测试过程当中,出现无法创建线程的错误。<br />在java应用中,有时候会出现这样的错误:OutOfMemoryError: unable to create new native thread.这种怪事是因为JVM已经被系统分配了大量的内存(比如1.5G),并且它至少要占用可用内存的一半。有人发现,在线程个数很多的情况下,你分配给JVM的内存越多,那么,上述错误发生的可能性就越大。<br /><br /><br />那么是什么原因造成这种问题呢?<br /><br />
2011-05-09 13:15:00 4017
原创 事务中的TRUNCATE命令
<br /><br />TRUNCATE命令符合多版本并发控制的要求,一个事务如果使用它清空了一个表,其它正在并发执行的事务立即会发现这个表已经被清空,不包含任何数据。如果有其它并发执行的事务曾经访问过被清空的表,它会持有ACCESS SHARE类型的锁在被清空的表上,TRUNCATE命令会被推迟执行,直到持有ACCESS SHARE锁的事务结束,才能执行。<br />TRUNCATE操作可以被回滚,只要回滚发出该命令的事务即可。
2011-05-06 17:23:00 2904
转载 memcache解决高并发的数据库瓶颈问题
<br />高并发面临的问题<br /> 对于高并发高访问的Web应用程序来说,数据库存取瓶颈一直是个令人头疼的问题。特别当你的程序架构还是建立在单数据库模式,而一个数据池连接数峰值已经达到500的时候,那你的程序运行离崩溃的边缘也不远了。很多小网站的开发人员一开始都将注意力放在了产品需求设计上,缺忽视了程序整体性能,可扩展性等方面的考虑,结果眼看着访问量一天天网上爬,可突然发现有一天网站因为访问量过大而崩溃了,到时候哭都来不及。所以我们一定要未雨绸缪,在数据库还没罢工前,想方设法给它减负,这也是这篇文章
2011-05-03 18:35:00 4375
转载 通过分区(Partition)提升MySQL性能
<br /><br />相信有很多人经常会问同样的一个问题:当 MySQL<br />的总记录数超过了100万后,会出现性能的大幅度下降吗?答案是肯定的,但是性能下 降>的比率不一而同,要看系统的架构、应用程序、还有>包括索引、服务器硬件等多种因素而定。当有网友问我这个问题的时候,我最常见的回 答>就是:分表,可以根据id区间或者时间先后顺序等多<br />种规则来分表。分表很容易,然而由此所带来的应用程序甚至是架构方面的改动工作却不>容小觑,还包括将来的扩展性等。<br />在以前,一种解决方案就是使用
2011-05-03 18:29:00 628
原创 应用OSCache提升J2EE系统运行性能
<br />文章摘要<br /><br />Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。本文中作者给大家介绍一个实现J2EE框架中Web应用层缓存功能的开放源代码项目----OSCache。通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善系统的稳定性。1 面临的问题<br />1.1 需要处理的特殊动态内容<br /><br />在信息系统建设过程中我们通常会遇到这样的问题:<br />1.
2011-05-03 17:50:00 664
DWR中文文档 v0.9版
2010-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人