- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 java 中 Map 按值排序方法
Map<String, Integer> map = new TreeMap<String, Integer>(); map.put("j2se", 20); map.put("j2ee", 10); map.put("j2me", 30); List<Map.Entry<String, Integer>> infoIds = n
2010-01-03 18:56:37
182
JAVA四种基本排序方法
JAVA四种基本排序,包括冒泡法,插入法,选择法,SHELL排序法.其中选择法是冒泡法的改进,SHELL排序法是插入法的改进.所以从根本上来说可以归纳为两种不同的排序方法,即:插入法和冒泡法 。 一 插入法:遍历排序集合,每到一个元素时,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素挨个移动到当前范围内它最应该出现的位置。交换是相邻遍历移动,双重循环控制实现.这种排序法...
2009-10-07 14:59:51
132
原创 策略模式
一,鸭子问题:Joe上班公司做了一套相当成功的模拟鸭子游戏:SimUDuck。游戏中有各种鸭子,边游泳戏水,边呱呱叫(注意是“呱呱叫”)。显然Joe使用了OO技术,设计了鸭子的基类。由于每个鸭子的长相不同所以Display()方法是抽象的,Duck类也是抽象类。但是,最近公司为了开了头脑风暴会议,要更新产品,并决定通过让鸭子会飞来击败竞争者。这时Joe应该怎么办呢?二,Joe的方案...
2009-09-30 10:07:21
207
导致线程停止的条件
总结一下,一个线程有10种方式可以暂停: 1. I/O 阻塞 2. 同步阻塞 3. 放弃: 执行Thread.yield()方法可以让当前线程暂停(不会放弃自己的同步锁),将资源让给具有同等优先 级的,已经准备好运行的其它线程(也可能是自己)。 4. 休眠: 这是比放弃(Thread.yield())更有力的放弃方式,不管其...
2009-09-27 17:00:27
1138
原创 使用Synchronized关键字实现线程同步
要想解决“线程同步”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下:public synchronized void run(){ } 从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以使run方法同步,也就是说,对于同一个Java类的对象实例,run方法同时只能被一个线程调用,并当前的r...
2009-09-26 13:04:02
289
原创 Decorator模式
Java IO 包中的Decorator模式 转载收藏: http://hi.baidu.com/young_amy/blog/item/194b4543f7e1f0109313c6e3.html JDK为程序员提供了大量的类库,而为了保持类库的可重用性,可扩展性和灵活性,其中使用到了大量的设计模式,本文将介绍JDK的I/O包中使用到的De...
2009-09-16 17:31:03
118
原创 Apache James 安装配置
一、简介 Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。James提供了比较完善的配置方案,尤其是关于...
2009-09-14 13:33:12
241
执行 rmic 提示找不到类文件错误的解决方法
最近学习RMI, 在执行 rmic 时,总是提示找不到类文件, 可能有一下原因: 1. 【java环境变量没配置正确】 在系统变量中加入:以下 名 值 对(根据具体安装路径有所不同) 名: jdk 值: ;C:\Program Files\Jav...
2009-09-10 16:47:58
252
原创 用Sysctl 调整Linux操作系统的性能
Sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。 查看所有可读变量: % sysctl -a 读一个指定的变量,例如 kern.maxproc: % ...
2009-09-03 20:44:11
90
原创 http 请求/响应头 header 介绍
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误...
2009-09-03 10:48:40
164
关于设置http响应头connection的作用
有的网站会在服务器运行一段时间后down掉,有很多原因可能造成这种现象:比如tomcat堆和非堆内存设置不足,程序没能释放内存空间造成内存溢出,或者某些进程一直运行没能释放,造成cup资源大量消耗。 但除了程序本身的原因,还有可能是客服端访问造成(当然这个客户端也包含如蜘蛛软件等搜索引擎),如果服务器和客户端建立的是长链接(可以用"netstat -a"命令查看网络访...
2009-09-03 10:26:46
1760
Thread.sleep() 和 Thread.yield() 区别
1. Thread.yield(): api中解释: 暂停当前正在执行的线程对象,并执行其他线程。 注意:这里的其他也包含当前线程,所以会出现以下结果。 public class Test extends Thread { public static void main(String[] args) { for (int i = 1...
2009-08-25 11:02:25
474
IE中出现 "Stack overflow at line" 错误的解决方法
出现该错误提示,主要有两种原因: 1. 使用系统的事件名称作为自定义函数名如: onclick / onsubmit ... 都是系统保留的事件名称,不允许作为重定义函数名称。 2. 出现死循环 : 如:在图片对象定义了 onerror 事件的循环处理、 <img src="http://...
2009-08-24 11:09:30
994
原创 JVM垃圾回收(GC)原理
一、相关概念 基本回收算法 1. 引用计数(Reference Counting) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 2. 标记-清除(Mark-Sweep) 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此...
2009-08-23 18:54:52
270
使用jprofiiler远程监控tomcat【入门使用篇】
使用JProfiler剖析Java Application中对象的分配和回收(gc)2008年09月02日 星期二 13:01JProfiler是一款Java的性能监控工具。可以查看当前应用的对象、对象引用、内存、CPU使用情况、线程、线程运行情况(阻塞、等待等),同时可以查找应用内存使用得热点,即:哪个对象占用的内存比较多;或者CPU热点,即:哪儿方法占用的较大的CPU资源。...
2009-08-23 13:26:16
113
使用jprofiiler远程监控tomcat【安装篇】
有时web网站会在运行一段时间后,莫名死掉。于是用jdk自带的jconsole监控了一下,发现内存不断增加,cpu也会达到90%以上。于是去检查程序是否有代码造成死循环,或者内存溢出。最后是借助于jprofiler工具找到了错误原因。觉得在这方面jprofiler是个不错的工具。以下总结一下jprofiler的安装和基本用法。 1.测试环境 服务器:Linux ...
2009-08-23 13:17:54
146
原创 tomcat配置文件简介(server.xml)
本文链接地址:http://bbs.163jsp.com/posts/list/606.html感谢作者● Server ○ port 指定一个端口,这个端口负责监听关闭tomcat的请求 ○ shutdown 指定向端口发送的命令字符串 ● Service ○ name 指定service的名字 ● Connector (表示客户端和service之间的连接) ○ port ...
2009-08-23 12:54:55
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人