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