http://oldboy-bj.taobao.com/

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2010年12月31日

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:06 老男孩咖啡 阅读(193) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:06 老男孩咖啡 阅读(369) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:05 老男孩咖啡 阅读(185) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:05 老男孩咖啡 阅读(258) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:04 老男孩咖啡 阅读(271) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:03 老男孩咖啡 阅读(264) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:03 老男孩咖啡 阅读(265) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:02 老男孩咖啡 阅读(139) 评论(0) 推荐(0)

摘要: www.35java.com 阅读全文
posted @ 2010-12-31 22:01 老男孩咖啡 阅读(360) 评论(1) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:01 老男孩咖啡 阅读(244) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 22:00 老男孩咖啡 阅读(253) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:58 老男孩咖啡 阅读(443) 评论(1) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:55 老男孩咖啡 阅读(165) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:55 老男孩咖啡 阅读(225) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:54 老男孩咖啡 阅读(531) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:53 老男孩咖啡 阅读(195) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:52 老男孩咖啡 阅读(264) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:51 老男孩咖啡 阅读(215) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:51 老男孩咖啡 阅读(6981) 评论(0) 推荐(1)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:50 老男孩咖啡 阅读(392) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:49 老男孩咖啡 阅读(250) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:49 老男孩咖啡 阅读(160) 评论(0) 推荐(0)

摘要: 本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:48 老男孩咖啡 阅读(417) 评论(0) 推荐(0)

摘要: Java是一种伟大的语言。它管理内存,传授面向对象的编程(思想),使我们更好地用它来编码。另外,它确实是一种“编写一次,到处运行“的语言。然而,Java应用程会遇到一些常见的开发者和应用者独耳熟能详的性能挑战。内存泄露Java的最大的好处之一是它能够管理内存模型。当对象不再使用时,Java会做清理工作。较旧的语言需要人工来管理内存,但开发者宁愿花时间专注于核心语言逻辑而不愿为内存分配而忧心。话虽如此,却不能保证Java的内存管理没有问题,提供管理内存模型,或创建/销毁未使用的对象,(这些对象)都放在Java的“堆(Heap)“中,内存泄露通常是不正确编程的结果–通常,开发者没有消除某一对象的所 阅读全文
posted @ 2010-12-31 21:46 老男孩咖啡 阅读(177) 评论(0) 推荐(0)

摘要: Java是一门强大的语言, 和其他语言一样,可以用递归函数来删除一个包含文件和子目录的目录.首先需要import相关的单元.   import java.io.File;  以下是递归函数内容:   private Boolean pDeleteDirectory(String filePath) {   Boolean bTotalRlt = true;   File file = new File(filePath);   File[] fileList = file.listFiles();   String dirPath = null;   if (fileList != 阅读全文
posted @ 2010-12-31 21:45 老男孩咖啡 阅读(241) 评论(0) 推荐(0)

摘要: 会话状态的维持是开发Web应用所必须面对的问题,有多种方法可以来解决这个问题,如使用Cookies,hidden类型的表单域,或直接把状态信息加到URL中等,还有Servlet本身提供了一个HttpSession接口来支持会话状态的维持,在这里我们主要介绍基于这个接口的会话状态的管理。  Session的发明是为了填补HTTP协议的局限。请注意HTTP协议是如何工作的--用户发出请求,服务器作出响应,这种用户端和服务器97色色端的联系就是离散的,非连续的。HTTP协议不能提供允许服务器跟踪用户请求的功能。在服务器端完成响应用户的请求之后,服务器不能继续与该浏览器继续保持连接。从服务器这端来看, 阅读全文
posted @ 2010-12-31 21:45 老男孩咖啡 阅读(559) 评论(0) 推荐(0)

摘要: Java代码publicclass Problems { //判断是否为奇数,是就返回true public static boolean isOdd(int i){ return i % 2==1; } publicstatic void main(String[] args){ for(int i=-2;i=2;i++){ System.out.println(isOdd(i)); } System.out.println(2.00-1.10); }} //请问,这段程序将会输出什么? 请解释并优化该代码本文转自www.35java.com 阅读全文
posted @ 2010-12-31 21:44 老男孩咖啡 阅读(127) 评论(0) 推荐(0)

摘要: 异步通道 提供支持连接、读取、以及写入之类非锁定操作的连接,并提供对已启动操作的控制机制。Java 7 中用于 Java Platform(NIO.2)的 More New I/O APIs,通过在 java.nio.channels 包中增加四个异步通道,从而增强了 Java 1.4 中的 New I/O APIs(NIO): AsynchronousSocketChannel AsynchronousServerSocketChannel AsynchronousFileChannel AsynchronousDatagramChannel 这些类在风格上与 NIO 通道 API 很相似。 阅读全文
posted @ 2010-12-31 21:43 老男孩咖啡 阅读(286) 评论(0) 推荐(0)

摘要: 概述 作为 Java EE 6 体系中重要成员的 JSR 315 规范,将 Servlet API 最新的版本从 2.5 提升到了 3.0,这是近 10 年来 Servlet 版本号最大的一次升级,此次升级中引入了若干项令开发人员兴奋的特性,如: 可插拔的 Web 架构(Web framework pluggability)。 通过 Annotations 代替传统 web.xml 配置文件的 EOD 易于开发特性(ease of development)。 Serlvet 异步处理支持。 安全性提升,如 Http Only Cookies、login/logout 机制。 其它改进,如文件上 阅读全文
posted @ 2010-12-31 21:43 老男孩咖啡 阅读(273) 评论(0) 推荐(0)

摘要: 在Spring 2.0之前,Spring的JMS的作用局限于产生消息。这个功能(封装在 JmsTemplate 类中)当然是很好的,但是,它没有描述完整的JMS堆栈,比如像消息的 异步 产生和消耗。JMS堆栈缺少的这一部分已经被添加,Spring 2.0现在提供对消息异步消耗的完整支持。 让我们从一个例子开始。 首先我们打开ActiveMQ。从ActiveMQ的安装路径上的bin目录,那里有一个ActiveMQ.bat,双击执行即可。不过要注意必须先设置java_home环境变量。ActiveMQ默认的服务端口是61616。 然后我们开始配置Spring配置文件。我起名为spring-j 阅读全文
posted @ 2010-12-31 21:42 老男孩咖啡 阅读(1127) 评论(0) 推荐(0)

摘要: 缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能. Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问,使得程序的运行性能明显的提升. Hibernate缓存分类: Session缓存,一级缓存. SessionFactory的缓存分为内置缓存和外置缓存.内置缓存中存放的是SessionFactory对象的一些集合属性包含的数据(映射元素据及预定义SQL语句等),对于应 阅读全文
posted @ 2010-12-31 21:38 老男孩咖啡 阅读(172) 评论(0) 推荐(0)

摘要: 批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据。以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段: 如果CUSTOMERS表中有1万条年龄大于零的记录,那么Session的find()方法会一下子加载1万个Customer对象到内存。当执行tx.commit()方法时,会清理缓存,Hibernate执行1万条更新CUSTOMERS表的update语句: view plaincopy to clipboardprint? update CUSTOMERS set AGE=? …. where ID=i; up 阅读全文
posted @ 2010-12-31 21:37 老男孩咖啡 阅读(206) 评论(0) 推荐(0)

摘要: iBATIS , 又是一个O/R Mapping的解决方案(例如 hibernate的ORM 也是解决方案之一.)网上很多人便将其称为ORM , 但是用过的人, 应该都会觉得并不恰当.与其称之为一个OR Mapping , 倒不如叫它SQL Mapping...iBATIS 的特点是小巧, 简单. 但是要求需要熟悉SQL , 不像hibernate那样, 可以让你一句sql 都不用写同时, 我觉得要写挺多的配置文件的. 可能会比较繁琐.Java代码 publicclass User { privateint id; private String username; private String 阅读全文
posted @ 2010-12-31 21:35 老男孩咖啡 阅读(190) 评论(0) 推荐(0)

摘要: tomcat采用默认安装,要想tamcat直接绑定多个域名,这里我们需要修改配置文件:C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xmlserver.xml 的修改方式如下:(一)多域名绑定 1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80原始:Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLook 阅读全文
posted @ 2010-12-31 21:34 老男孩咖啡 阅读(180) 评论(0) 推荐(0)

摘要: 今天看见je上一帖,对于上亿数据求和的算法,采用多线程到底快还是慢,我认为需要按情况而定。1.单核,无IO,网络等资源操作情况下 结果:多线程比单线程理论上要慢 原因:多线程启动线程需要消耗cpu资源,多线程只是把这一计算过程分片,在同一时刻只会有一个线程占有cpu,所以采用多线程不但在启动时耗费资源,在线程调度上同样也耗费时间。所以单线程比多线程理论上要快。2.单核,有IO,网络等资源操作情况下 结果:多线程比单线程理论上要快 原因:如果这上亿数据需要从文件中或者网络的其它地方(数据库)获取,在IO和网络操作的时候,由于IO和网络操作比cpu慢的多,所以cpu等待io操作;多线程的时候,当一 阅读全文
posted @ 2010-12-31 21:33 老男孩咖啡 阅读(288) 评论(0) 推荐(0)

摘要: 这里分享的是一个分布式分析系统的Master内存消耗状况的优化,有些比较特定的优化未必适用于其他系统,但是从这一系列优化过程中,应该能带给其他系统在做设计时提前考虑一点优化点。 下面先描述一下背景,看了背景可以对后续的优化点可以比较清楚一些,注意,部分设计仅适用于大量计算中,会牺牲可维护性来换取性能提升。最后一点优化应该是比较有通用性意义的。背景: 开放平台每天产生大量的调用日志,希望能够从海量日志中即时的去分析业务指标和系统运行状况。当前实现的是类似MapReduce的设计,不过Master与Slave之间是松耦合的关系,比传统的MapReduce更利于扩展和即时分析(当然和Hadoop的目 阅读全文
posted @ 2010-12-31 21:32 老男孩咖啡 阅读(273) 评论(0) 推荐(0)

摘要: 1.数据库事务的概念数据库事务是指由一个或多个SQL语句组成的工作单元,这个工作单元中的SQL语句相互依赖,如果有一个SQL语句执行失败,就必须撤销整个工作单元。 在并发环境中,多个事务同时访问相同的数据资源时,可能会造成各种并发问题,可通过设定数据库的事务隔离级别来避免,还可采用悲观锁和乐观锁来解决丢失更新这一并发问题。 数据库事务必须具备ACID特征:A: Atomic原子性,整个事务不可分割,要么都成功,要么都撤销。 C: Consistency一致性,事务不能破坏关系数据的完整性和业务逻辑的一致性,例如转账,应保证事务结束后两个账户的存款总额不变。I:Isolation隔离性,多个事务 阅读全文
posted @ 2010-12-31 21:31 老男孩咖啡 阅读(193) 评论(0) 推荐(0)

摘要: 1.hibernate的优缺点 1.sql语句不用写了,它使用时只需要操纵对象,使开发更对象化,为我们提高了生产力;2.移植性会很好;3.它实现了透明持久化,如POJO,这个对象没有实现第三方框架或者接口;4.它没有侵入性,即所谓的轻量级框架;5.对象之间有很清晰的关系 一般场合:针对某一对象(单个对象)简单的查\改\删\增,不是批量修改、删除,适合用Hibernate;而对于批量修改、删除,不适合用Hibernate,这也是OR框架的弱点;要使用数据库的特定优化机制的时候,不适合用Hibernate2.hibernate的工作原理 1.配置好hibernate的配置文件和与类对应的配置文件 阅读全文
posted @ 2010-12-31 21:30 老男孩咖啡 阅读(190) 评论(0) 推荐(0)

摘要: 我们都知道使用线程池能够控制线程的数量,尤其是大量的“短命”线程存在时,线程池将大大降低系统消耗(内存和CPU)。不过,线程池也同样需要管理,于是我写了本篇。首先,我们来看看管理器的整个继承关系: 显而易见,有ThreadPoolExecutor和ScheduledThreadPoolExecutor两个实现类,当然Executor类里也有一些内部类实现了特定的功能(如class DelegatedScheduledExecutorService),我们也可以自己通过扩展这里所有的接口、抽象类、类来实现自己的特定功能,如继承ThreadPoolExecutor类,覆写beforeExecut 阅读全文
posted @ 2010-12-31 21:27 老男孩咖啡 阅读(642) 评论(0) 推荐(2)

摘要: 单例在多线程中存在同步问题,但是对那些变量有影响呢?原因? 以下纯属个人观点,不吝赐教: 先上代码:Test类代码 public class Test extends Thread { public void run() { Singleton.getInstance().print(this.getName()); } public static void main(String[] args) { Test test1= new Test (); Test test2= new Test (); test1.setName("T1"); test2.setName("T2"); tes 阅读全文
posted @ 2010-12-31 21:23 老男孩咖啡 阅读(478) 评论(0) 推荐(0)

摘要: 在开发Socket项目的时候,如果是开发一个自己玩玩,当然不用考虑效率、安全性等问题,可是如果是一个企业级的,你就不得不关注这几点。本系列文章将我们实验室里的Socket程序变成企业级的应用。 NIO编程肯定是一个很好的解决方案,不过这部分留在以后讨论。今天我想说说如何让你的阻塞的Scoket程序高效、安全的跑起来。 一开始,大家会编出一个单线程的Scoket程序,然后我们发现这个程序根本不能够连接多个客户端,于是我们引入“多线程”,使我们的程序能够同时处理多个客户端。 我相信,到现在为止如果没有深入研究过Socket编程,大家一般还是停留在“一客户一线程”的初级模式。如果是个位数的客户,当然 阅读全文
posted @ 2010-12-31 21:20 老男孩咖啡 阅读(382) 评论(0) 推荐(0)

摘要: public interface Contents {int value();}public interface Destination {String readLabel();}public class Goods {private class Content implements Contents {private int i = 11;public int value() {return i;}}protected class GDestination implements Destination {private String label;private GDestination(St 阅读全文
posted @ 2010-12-31 21:16 老男孩咖啡 阅读(220) 评论(0) 推荐(0)

摘要: 很多知识都可以通过书本学习,JAVA学习也需要书籍,尤其是对于JAVA初学者和JAVA自学者尤为重要选择了好的JAVA自学教材能够达到事半功倍的效果,下面我们为JAVA初学者、自学者推荐几本合适的书籍希望对大家有所帮助。学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java 阅读全文
posted @ 2010-12-31 21:12 老男孩咖啡 阅读(1350) 评论(0) 推荐(0)

摘要: Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”、“倚天剑”。Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助。1. 思考一下学习Java之前,先别急,静下心来好好想想: 1)你对学习Java是否有兴趣? 2)你是否能静下心来坚持不懈地学习?嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java!如果具备这两点条件,就请继续往下看……2. 准备一下请不要把你的学习Java之路和其它计算机技术分开看待,技术的联系往往是千丝万缕的,你应该掌握一些学习Java所涉及的基础 阅读全文
posted @ 2010-12-31 21:09 老男孩咖啡 阅读(232) 评论(0) 推荐(0)

摘要: 本文转自 www.35java.comjava中有两种包的导入机制,总结如下:  单类型导入(single-type-import),例如import java.io.File;  按需类型导入(type-import-on-demand),例如 import java.io.*;  关于这两种导入类型大家各有所爱,众说纷纭。这里分析一下这两种导入类型的大致工作原理供大家参考。  单类型导入比较好理解,仅仅导入一个public类或者接口。而对于按需类型导入,有人误解为导入一个包下的所有类,其实不然,看名字就知道,他只会按需导入,也就是说它并非导入整个包,而仅仅导入当前类需要使用的类。  既然 阅读全文
posted @ 2010-12-31 20:45 老男孩咖啡 阅读(254) 评论(0) 推荐(0)