JAVA
文章平均质量分 75
hty68024352
这个作者很懒,什么都没留下…
展开
-
JAVA ArrayList深层 拷贝 克隆
大家应该理解浅拷贝和深拷贝的区别:浅拷贝:被复制对象的任何变量都含有和原来的对象相同的值,而任何的对其他对象的引用仍然指向原来的对象。对拷贝后的引用的修改,还能影响原来的对象。深拷贝:把要复制的对象所引用的对象都复制了一遍,对现在对象的修改不会影响原有的对象。如果大家还不理解,在网上看到一个人的比喻很有意思:就好比一个爸爸一个儿子 浅拷贝:你克隆一下,只得到一个爸爸,这是浅 ...原创 2012-04-23 14:13:45 · 801 阅读 · 0 评论 -
用 PMD 铲除 bug
简介: PMD 是一个开源的静态分析工具,是一个值得您添加到捉虫工具箱中的工具。Elliotte Rusty Harold 将解释如何使用 PMD 内置的规则以及您自己定制的规则集来提高 Java 代码质量。Tom Copeland 的 PMD 是一个开源(BSD 许可)工具,它分析 Java 源代码,找出潜在的 bug。在一般意义上来说,它与 FindBugs 和 Lint4j 这类工具...原创 2011-06-08 17:33:08 · 186 阅读 · 0 评论 -
Java性能优化技巧
摘要: =================================== 可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。 =================================== 提...原创 2011-09-06 11:59:16 · 80 阅读 · 0 评论 -
java程序性能优化
一、避免在循环条件中使用复杂表达式在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。例子:import java.util.vector;class cel { void method (vector vector) { for (int i = 0; i < vec...原创 2011-09-06 11:58:15 · 59 阅读 · 0 评论 -
大家在普遍认识中对架构师这一职业有哪些误区
误区一架构师与项目经理没有区别。大家经常在谈论架构师时,混淆了项目经理的职责和架构师的职能。项目经理要对人、流程、钱等内容负责。但是架构师主要是对技术负责。所以我个人不是很喜欢在谈论系统架构时,过多的谈论流程或管理。虽然我也是流程方面和管理方面的专家。误区二技术好的人就能成为架构师。其实,职业架构师与职业编程人员有着同样重要的分量,只不过各自负责的工作内...原创 2011-09-04 10:26:58 · 96 阅读 · 0 评论 -
Maven 和 Ant 的区别
转载:http://jnn.blogbus.com/logs/2063359.html最近做的一个项目从Ant 转到Maven。有一点感想于是就写了这个小东东。Maven 和 Ant作为Java开发的利器,两者有很大不同Ant 将提供了很多可以重用的task,例如 copy, move, delete 以及junit 单元测试Maven 则提供了很多可以重用的过程。 我们可以把 Mav...原创 2010-10-28 10:38:37 · 116 阅读 · 0 评论 -
Ant的翅膀Ivy
有了Ivy的帮忙,我们不需要为了一个库依赖管理而舍弃Ant去学那个难搞的Maven了。基本配置步骤如下:1、copy Ivy插件(org.apache.ivy_2.1.0.cr1_20090319213629.jar )到ant_home/lib下;2、在项目根目录下新建ivysettings.xml ;3、在项目根目录下新建ivy.xml ,内容根据项目需要来;4、修改你原来的build.xml...原创 2010-10-28 10:16:55 · 71 阅读 · 0 评论 -
Spring下单元测试要点
1. 需要Spring 依赖注入的测试 为了测试Spring管理下的Bean,可以自行构造BeanFactory,也可以继承于AbstractDependencyInjectionSpringContextTests,实现public String[] getConfigLocations()函数, 返回applicationContext文件路径的数组。 protected String[...原创 2010-10-28 09:46:16 · 81 阅读 · 0 评论 -
JPA中的实体层次设计
这部分的内容基本与Hibernate一致.JPA同样支持3种类型的继承形式:1.Single Table Strategy ,单表策略,一张表包含基类与子类的所有数据,很多情况下都是采用这样的冗余设计,通过一个discriminator来区分2.Table Per Class Strategy ,每个子类对应一张表,每张表都拥有基类的属性3.Join Str...原创 2010-10-27 14:02:09 · 106 阅读 · 0 评论 -
JDK1.6的九大新特性
一:Desktop类和SystemTray类在JDK1.6中,AWT新增加了两个类:Desktop和SystemTray。 前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序。二:使用JAXB2来实现对象与...原创 2010-10-26 17:23:14 · 121 阅读 · 0 评论 -
JDK1.5新特性
JDK1.5"的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。 下面我们简单介绍一下这些新特性。 1.泛型(Generic) C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿...原创 2010-10-26 17:19:13 · 54 阅读 · 0 评论 -
RequestDispatcher说明
RequestDispatcher.forward()方法RequestDispatcher是一个Web资源的包装器,可以用来把当前request传递到该资源,或者把新的资源包括到当前响应中。RequestDispatcher接口中定义了两个方法,参见如下代码:public interface RequestDispatcher {void forward(ServletRequest...原创 2010-10-26 14:51:39 · 138 阅读 · 0 评论 -
深入研究Servlet线程安全性问题
转载:http://doc.redcome.com/servlet/Report?Node=23651&Language=1 介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。 关键字:Servlet 线程安全 同步 Java内存模型 实例...原创 2010-10-26 14:23:21 · 66 阅读 · 0 评论 -
Java高手论道:你还在用if else吗?
面向过程设计和面向对象设计的主要区别是:是否在业务逻辑层使用冗长的if else判断。如果你还在大量使用if else,当然,界面表现层除外,即使你使用Java/C#这样完全面向对象的语言,也只能说明你的思维停留在传统的面向过程语言上。 传统思维习惯分析 为什么会业务逻辑层使用if else,其实使用者的目的也是为了重用,但是这是面向过程编程的重用,程序员只看到代码重用,因为他看到if el...原创 2010-10-23 20:19:46 · 83 阅读 · 0 评论 -
设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 设计模式四人帮 GoF(“四人帮”Gang of Four,指Erich Gam...原创 2010-10-22 21:56:00 · 96 阅读 · 0 评论 -
JAVA读取大文件
/** * */package com.b2s.report.tool.util;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.RandomAccessFile;import java.nio.ByteBuffer;imp...原创 2011-09-13 10:27:36 · 70 阅读 · 0 评论 -
Java的弱引用(Weak Reference)
之前一直没有接触过弱引用这个概念,今天看到以后觉得挺新鲜,就查了查资料总结一下,希望对大家有所帮助。 要理解弱引用,首先要先了解一下强引用(Strong Reference), 其实我之前也并不了解强引用,虽然天天都在用。举例来说:String abc = new String ("abcdf");这就是创建了一个String的实...原创 2011-09-16 08:47:16 · 76 阅读 · 0 评论 -
Java搜索引擎 Lucene
Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单确强大的应用程式接口,能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具;就其本身而论,Lucene是现在并且是这几年,最受欢迎的免费java资讯检索程式库。人们经常提到资讯检索程式库,就像是搜寻引擎,但是不应该将资讯检索...原创 2011-09-19 10:43:58 · 113 阅读 · 0 评论 -
谈谈J2SE中的序列化之接受默认序列化
首先要了解java默认的序列化行为,java将一切关于对象的信息都保存了下了,也就是说,有些时候那些不需要保存的也被保存了下来。一般情况下,我们仅仅需要保存逻辑数据就可以了。不需要保存的数据我们可以用关键字transient标出。 以下是一个例子: import java.io.*; public class Serial implements Serializable { ...原创 2011-04-02 13:32:07 · 59 阅读 · 0 评论 -
JNI入门介绍
1.简介 JNI是Java Native Interface的缩写,它的设计目的是: The standard Java class library may not support the platform-dependent features needed by your application. You may already have a library or a...原创 2011-04-02 13:09:23 · 77 阅读 · 0 评论 -
认识理解Java中native方法
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口,其实现步骤: 1、在Java中声明native()方法,然后编译; 2、用javah产生一个.h文件; 3、写一...原创 2011-04-02 10:47:35 · 63 阅读 · 0 评论 -
浅谈java.util.concurrent包的并发处理
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等诸多因素,往往会采用一些较为复杂的安全策略,加重了程序员的开发负担.万...原创 2011-04-01 16:52:53 · 78 阅读 · 0 评论 -
Ibatis执行SQL操作把SQL打印到控制台
要想让Ibatis打印SQL语句到控制台,可以在log4j.xml文件加入以下语句:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta..原创 2011-08-10 10:46:11 · 1126 阅读 · 0 评论 -
抽象之美(载录)
OO直接翻译过来就是“面向对象”,它作为一种编程思想可以说是划时代的进化。虽说可能不是传说中的“银弹”(解决软件太复杂的万能灵丹),但是却能使挣扎在“焦油坑”中,那些绝望而无助的受难者猛然间看到希望。写《人月神话》的时候OO还没有出来,现在作者很可能对于这一项技术性的变革投以赞赏的目光。有 人说,编程是门艺术。而我认为,更重要的思想认识是——软件工程是门哲学。事实上,面向对象最...原创 2011-04-01 13:45:47 · 74 阅读 · 0 评论 -
再谈if &else(载录)
自从看了论坛里的那篇文章,‘你还在使用if else 吗’,感触太深了,一方面我觉得,作者说的的确很有道理,原来大量使用if else 是使用了面向过程的思维方式。 原来我使用java面向对象语言却一直使用面向过程的思维方式。更牛逼的是,原来我一直没有觉察到... 难道我中毒已深,无法自拔了吗。 然后我对现实的系统和自己的思维方式剖析了一番,发现了一个问题,或者说得到一个结论吧...原创 2011-04-01 11:15:47 · 65 阅读 · 0 评论 -
面向对象与面向过程区别(载录)
我还是有点不理解面向对象比面向过程的可维护性强,强在哪儿了。用面向过程,在service里做一些操作。面向对象,在对象里做操作,然后在领域服务里在调用对象的各种操作。要是需求变了,面向过程就是在service里改,面向对象就要改对象里的操作。看不出强在哪儿了。谁能解释解释……------------------------------------------------...原创 2011-04-01 10:36:08 · 80 阅读 · 0 评论 -
介绍自己各种优点的英语表达(转帖)
介绍自己各种优点的英语表达(转帖) Mature,dynamic and honest. 思想成熟、精明能干、为人诚实。 Excellent ability of systematical management. 有极强...原创 2011-03-29 10:24:43 · 1532 阅读 · 0 评论 -
java技术网站
备份。原创 2011-03-28 09:36:17 · 52 阅读 · 0 评论 -
spring 3.0中的校验
在weapon项目中,表单在客户端实现了校验,简单而有效。但是还要提防可能出现的客户端校验失效问题,在这种情况下也要做到服务器端不会录入问题数据。这就需要服务器端校验。spring 3.0引入了jsr 303的java校验工具框架。需要导入的类库: <dependency> <groupId>org.hibernate</group...原创 2011-03-22 20:43:37 · 124 阅读 · 0 评论 -
Java EE6中的新框架
验证数据是应用程序生命周期中一个常见的任务,例如,在应用程序的表示层,你可能想验证用户在文本框中输入的字符数最多不超过20个,或者想验证用户在数字字段输入的字符只能是数字。 ...原创 2011-03-22 19:34:22 · 77 阅读 · 0 评论 -
深入 Lucene 索引机制
简介: Lucene 是一个基于 Java 的全文检索工具包,你可以利用它来为你的应用程序加入索引和检索功能。Lucene 目前是著名的 Apache Jakarta 家族中的一个开源项目,下面我们即将学习 Lucene 的索引机制以及它的索引文件的结构。在这篇文章中,我们首先演示如何使用 Lucene 来索引文档,接着讨论如何提高索引的性能。最后我们来分析 Lucene 的索引文件结...原创 2011-09-21 21:49:23 · 64 阅读 · 0 评论 -
Apache DBUtils使用总结
Apache DBUtils使用总结 DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。 在使用DBUtils之前,应该注意一些问题: 1、DBUtils是JDBC的简单封装,可以和JDBC混合使用。 2、DBUtil...原创 2011-09-19 10:50:23 · 74 阅读 · 0 评论 -
三步学会Java Socket编程
第一步 充分理解Socket 1.什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用...原创 2010-10-21 20:45:55 · 55 阅读 · 0 评论 -
Web Service 实现分布式服务的基本原理
简单的说, 就是客户端根据WSDL 生成 SOAP 的请求消息, 通过 HTTP 传输方式(也可以是其它传输方式, 如 FTP 或STMP 等,目前 HTTP 传输方式已经成为 J2EE Web Service 的标准)传给对方, 服务方实现服务请求, 将结果以 SOAP 的消息格式返回给客户端。 如果人工去创建和解析基于 XML 格式的 SOAP 消息还是一个非常复杂的过程, 这样 ...原创 2011-05-24 13:27:40 · 107 阅读 · 0 评论 -
Spring JdbcTemplate实现update或insert
三种使用Spring JdbcTemplate实现update或insert操作 第一种方式,重载PreparedStatementCreatorjdbcTemplate.update(new PreparedStatementCreator(){ public PreparedStatement createPreparedStatement(Connection c...原创 2010-06-04 11:10:26 · 719 阅读 · 1 评论 -
spring里bean的作用域
1、singleton作用域当一个bean的作用域设置为singleton, 那么SpringIOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。换言之,当把一个bean定义设置为singleton作用域时,SpringIOC容器只会创建该bean定义的唯一实例。这个单一实例会被存储到单例缓...原创 2010-06-03 21:36:01 · 71 阅读 · 0 评论 -
spring获取webapplicationcontext,applicationcontext几种方法详解
方法一:在初始化时保存ApplicationContext对象代码:ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");ac.getBean("beanId");说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情...原创 2010-06-03 20:58:28 · 80 阅读 · 0 评论 -
Spring里bean的生命周期
在传统的Java应用中,Bean的生命周期非常简单。Java的关键词new用来实例化Bean(或许他是非序列化的)。这样就够用了。相反,Bean的生命周期在Spring容器中更加细致。理解Spring Bean的生命周期非常重要,因为你或许要利用Spring提供的机会来订制Bean的创建过程。 1. 容器寻找Bean的定义信息并且将其实例化。2.受用依赖注入,Spring按...原创 2010-06-03 20:54:06 · 60 阅读 · 0 评论 -
SWING复杂表格例子
Swing里的提供的表格过于简单。要做复杂的表格得花一番功夫。现把以前做过的整理如下:表格里有checkbox的表格package test;/** * Another JTable example, showing how column attributes can be refined * even when columns have been created ...原创 2010-06-03 16:47:08 · 393 阅读 · 0 评论 -
Hibernate one-to-many / many-to-one关系映射
现实世界的1对多(多对1)模型在Hibernate中的映射对应为one-to-many / many-to-one。本文通过举例对此加以说明。并附以详细实现代码。现实生活中有很多1对多(多对1)的关系模型。比如,一个人可以有0到多套房子,0到多辆汽车;一个父亲有0到多个孩子等等。这种关系被称作1对多关系。反过来,房子与人,汽车与人的关系,以及孩子与父亲的关系就是多对一的关系。这里需要...原创 2010-06-01 15:08:39 · 67 阅读 · 0 评论