- 浏览: 176871 次
- 性别:
- 来自: 深圳
最新评论
-
jljf_hh:
总结的真心不错,学习了。
JVM垃圾回收(GC)原理 -
啦登2010:
...
JVM垃圾回收(GC)原理 -
aspnetdb:
总结的挺棒
JVM垃圾回收(GC)原理 -
xiaobadi:
...
java 中 Map 按值排序方法 -
vieri122:
30秒是不是太短了一点。
关于设置http响应头connection的作用
文章列表
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 = new ArrayList<Map.Entry<String, Integer>>( map.entrySet()); //排序前 ...
JAVA四种基本排序,包括冒泡法,插入法,选择法,SHELL排序法.其中选择法是冒泡法的改进,SHELL排序法是插入法的改进.所以从根本上来说可以归纳为两种不同的排序方法,即:插入法和冒泡法 。
一 插入法:
遍历排序集合,每到一个元素时,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素
- 2009-10-07 14:59
- 浏览 1100
- 评论(0)
一,鸭子问题:
Joe上班公司做了一套相当成功的模拟鸭子游戏:SimUDuck。游戏中有各种鸭子,边游泳戏水,边呱呱叫(注意是“呱呱叫”)。显然Joe使用了OO技术,设计了鸭子的基类。由于每个鸭子的长相不同所以Display()方法是抽象的,Duck类也是抽象类。
但是,最近公司为了开了头脑风暴会议,要更新产品,并决定通过让鸭子会飞来击败竞争者。这时Joe应该怎么办呢?
二,Joe的方案:
方案一:
毕竟Joe是个OO程序员,这个对他来说一周不到就可以搞定了。他的做法是在
- 2009-09-30 10:07
- 浏览 904
- 评论(0)
总结一下,一个线程有10种方式可以暂停:
1. I/O 阻塞
2. 同步阻塞
3. 放弃:
执行Thread.yield()方法可以让当前线程暂停(不会放弃自己的同步锁),将资源让给具有同等优先
级的,已经准备好运行的其它线程(也可能是自己)。
4. 休眠:
这是比放弃(Thread.yield())更有力的放弃方式,不管其他线程有没有准备运行,先自己暂停了再说。
5. 连接到另一个线程:
join() :永久等待
join(long milliseconds) :等待指定时间
6. ...
- 2009-09-27 17:00
- 浏览 1645
- 评论(0)
要想解决“线程同步”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下:
public synchronized void run(){ }
从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以使run方法同步,也就是说,对于同一个Java类的对象实例,run方法同时只能被一个线程调用,并当前的run执行完后,才能被其他的线程调用。即使当前线程执行到了run方法中的yield方法,也只是暂停了一下。由于其他线程无法执行run方法,因此,最终还是会由当前的线程来继续执行。先看看下面的代码:
...
- 2009-09-26 13:04
- 浏览 1367
- 评论(0)
Java IO 包中的Decorator模式
转载收藏: http://hi.baidu.com/young_amy/blog/item/194b4543f7e1f0109313c6e3.html
JDK为程序员提供了大量的类库,而为了保持类库的可重用性,可扩展性和灵活性,其中使用到了大量的设计模式,本文将介绍JDK的I/O包中使用到的Decorator模式,并运用此模式,实现一个新的输出流类。 Decorator模式简介 Decorator模式又名包装器(Wrapper),它的主要用途在于给一个对象动态的添加一些额外的职责。与生成 ...
- 2009-09-16 17:31
- 浏览 991
- 评论(0)
一、简介
Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。
James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail ...
- 2009-09-14 13:33
- 浏览 2921
- 评论(0)
最近学习RMI, 在执行 rmic 时,总是提示找不到类文件, 可能有一下原因:
1. 【java环境变量没配置正确】
在系统变量中加入:以下 名 值 对(根据具体安装路径有所不同)
名: jdk 值: ;C:\Program Files\Java\jdk1.6.0\bin
名: jre 值: ;C:\Program Files\Java\ ...
- 2009-09-10 16:47
- 浏览 4129
- 评论(1)
Sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。
查看所有可读变量:
% sysctl -a
读一个指定的变量,例如 kern.maxproc:
% sysctl kern.maxproc kern.maxproc: 1044
要设置一个指定的变量,直接用 variable=value 这样的语法:
# sysctl kern.maxfile ...
- 2009-09-03 20:44
- 浏览 3914
- 评论(0)
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以 ...
- 2009-09-03 10:48
- 浏览 3342
- 评论(0)
有的网站会在服务器运行一段时间后down掉,有很多原因可能造成这种现象:比如tomcat堆和非堆内存设置不足,程序没能释放内存空间造成内存溢出,或者某些进程一直运行没能释放,造成cup资源大量消耗。
但除了程序本身的原因,还有可能是客服端访问造成(当然这个客户端也包含如蜘蛛软件等搜索引擎),如果服务器和客户端建立的是长链接(可以用"netstat -a"命令查看网络访问信息),这就需要对http响应头的connection做一定的设置。
介绍如下:
1. 解释一下:
在http1.1中request和r ...
- 2009-09-03 10:26
- 浏览 52418
- 评论(1)
1. Thread.yield():
api中解释: 暂停当前正在执行的线程对象,并执行其他线程。
注意:这里的其他也包含当前线程,所以会出现以下结果。
public class Test extends Thread {
public static void main(String[] args) { ...
- 2009-08-25 11:02
- 浏览 28498
- 评论(0)
出现该错误提示,主要有两种原因:
1. 使用系统的事件名称作为自定义函数名如:
onclick / onsubmit ... 都是系统保留的事件名称,不允许作为重定义函数名称。
2. 出现死循环 :
如:在图片对象定义了 onerror 事件的循环处理、
<img src="http://www.hoocar.com/1.gif" onerror="this.src='/image/default.gif'" />
这 ...
- 2009-08-24 11:09
- 浏览 18295
- 评论(0)
一、相关概念 基本回收算法 1. 引用计数(Reference Counting) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循 ...
- 2009-08-23 18:54
- 浏览 44991
- 评论(3)
使用JProfiler剖析Java Application中对象的分配和回收(gc)
2008年09月02日 星期二 13:01
JProfiler是一款Java的性能监控工具。可以查看当前应用的对象、对象引用、内存、CPU使用情况、线程、线程运行情况(阻塞、等待等),同时可以查找应用内存使用得热点,即:哪个对象占用的内存比较多;或者CPU热点,即:哪儿方法占用的较大的CPU资源。
下面结合一个简单的例子说明Jprofiler如何使用
package my;
import java.io.IOException;import java.util.ArrayList;
p ...
- 2009-08-23 13:26
- 浏览 1983
- 评论(1)