JAVA
文章平均质量分 69
lulin27860
这个作者很懒,什么都没留下…
展开
-
System.exit(0)和System.exit(1)区别【转】
1.参考文献http://hi.baidu.com/accpzhangbo/blog/item/52aeffc683ee6ec238db4965.html2.解析查看java.lang.System的源代码,我们可以找到System.exit(status)这个方法的说明,代码如下: /** * Terminates the currently running转载 2014-05-12 16:26:18 · 1249 阅读 · 0 评论 -
JUnit中的测试套件和参数化测试【转】
JUnit4.x的测试运行器JUnit为单元测试提供了默认的测试运行器,它的测试方法都是由它负责执行的我们也可以定制自己的运行器,所有的运行器都继承自org.junit.runner.Runner 还可以使用org.junit.runer.RunWith注解 为每个测试类指定使用具体的运行器一般情况下,默认测试运行器可以应对绝大多数的单元测试要求当使用JUnit提供的一些高级特转载 2014-03-05 11:22:16 · 1897 阅读 · 0 评论 -
重构-改善既有代码的设计(2.5)
第三章 代码的坏味道发散式变化-Divergent Change问题:如果一个类经常因为不同的原因在不同的方向上发生变化。比如,你看到一个类,当新增一个数据库,需要修改三个函数;新增一个金融工具,需要修改四个函数。解决:将类细化。遵循职责单一原则。找出某特定原因而造成的所有变化,然后用Extract Class将它们提炼到另一个类中。原创 2014-03-05 10:13:51 · 1340 阅读 · 0 评论 -
装饰器模式--介绍、应用及代码
装饰器模式--重点理解: 1、知道哪个是被装饰的对象,哪个是装饰器; 2、重中之重:一定要明确传给装饰器的对象,比如下面代码中,如果你是一步一步装饰,切记你一定要把前一步装饰后的对象传给下一步进行装饰的装饰器;否则就达不到所有装饰的效果。朋友们可以下去自己试试,如果把传下面这些装饰器类中的对象改成source,是不会保存上一次装饰效果的。切记!!!原创 2014-02-28 17:33:49 · 1575 阅读 · 0 评论 -
Java面试中的多线程问题【转】
摘要:很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解转载 2014-03-11 14:29:36 · 1507 阅读 · 0 评论 -
重构-改善既有代码的设计(2.6)
第三章 代码的坏味道散弹式修改-Shotgun Surgery问题:散弹式修改跟发散式变化解决:发散式变化是指“一个类受多种变化的影响”;而散弹式修改是指“一种变化引起多个类相应修改”问题:如何解决散弹式修改问题解决:用Move Method 和Move Field 把所有需要修改的代码放进同一个类中。如果没有合适的就创造一个。通常可以采用Inline Class。原创 2014-03-05 10:21:54 · 1485 阅读 · 0 评论 -
重构-改善既有代码的设计(2.3)
第三章 代码的坏味道过大的类-Large Class问题:出现太多的实例变量解决:Extract Class,将实例变量一起提炼至新类。如果这个类适合做子类,可以用Extract Subclass。问题:类的代码太多解决:将多余的东西消弭于类内部。也就是在类的内部采用Extract Class和Extract Subclass进行重构先。问题:如果类原创 2014-03-05 09:59:15 · 1289 阅读 · 0 评论 -
建造者模式--介绍、应用及代码
去电脑城买电脑,你给了价格,让导购帮你组装一台电脑,导购会帮你去几家电脑店看看,每一家组装电脑配置也不同,你选择你满意的。其中:产品类--电脑 导演类:导购 建造者:N家电脑店 抽象建造者:电脑组装过程抽象。总体上,建造者模式比工厂模式就多了一个“导演类”,其实可以把工厂模式中的暴发户当做导演类理解。不同的是,工厂模式产品创建过程封装在工厂类中,建造者模式产品创建封装在导演类中,具体创建过程由导演类指挥建造者进行。总结:产品建造复杂?用工厂模式! 产品建造非常复杂?用建造者模式!!!原创 2014-02-27 10:06:32 · 2114 阅读 · 1 评论 -
JAVA设计模式六大原则个人理解【下】
单一职责原则:实现类要职责单一里氏替换原则:尽量不要重写或重载父类,不要破坏继承体系依赖倒置原则:多面向接口编程接口隔离原则:设计接口要精简单一迪米特法则:低耦合、高内聚,没必要去了解你所依赖的类或接口的全部,也不需要与你不想了解的类成为直接朋友。开闭原则:总纲。对外扩展开放,修改关闭!!!原创 2014-02-24 09:14:35 · 1917 阅读 · 2 评论 -
JAVA设计模式六大原则个人理解【上】
个人结合实例对java设计模式六大原则的理解:单一职责原则;里氏替换原则;依赖倒置原则。原创 2014-02-17 22:21:09 · 2106 阅读 · 0 评论 -
在Eclipse中使用JUnit4进行单元测试(中级篇)
我们继续对初级篇中的例子进行分析。初级篇中我们使用Eclipse自动生成了一个测试框架,在这篇文章中,我们来仔细分析一下这个测试框架中的每一个细节,知其然更要知其所以然,才能更加熟练地应用JUnit4。一、 包含必要地Package在测试类中用到了JUnit4框架,自然要把相应地Package包含进来。最主要地一个Package就是org.junit.*。把它包含进来之后,绝大部分转载 2014-03-05 11:40:52 · 1475 阅读 · 0 评论 -
重构-改善既有代码的设计(1)
这段时间一直在看《重构-改善既有代码的设计》,综合了一些个人理解,特与大家分享,共勉!第一章 重构,第一个案例什么是重构?所谓重构(refactoring)是这样一个过程:在不改变代码行为的前提下,对代码做出修改,以改变程序的内部结构。重构需要依赖测试,好的测试是重构的根本。一个类可以在它的生命周期之内修改它的子类,但一个对象不可以在它的生命周期之内修改它的子类。利用State原创 2014-03-05 09:25:25 · 1428 阅读 · 0 评论 -
JAVA程序员必看之书
学习Java最痛苦的事情莫过于对未来职业方向的选择。尤其是选择开发Java Application还是Java Web方向,在你先定好大类后还有数不尽的小类教你无从学起。因此,作为初学者的你必须看完本文。从中你将了解到如何学习Java并选择适合自己的Java。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们转载 2014-03-04 21:42:34 · 1494 阅读 · 0 评论 -
SpringMVC+Hibernate+Spring整合实例(一)
SpringMVC又一个漂亮的web框架,他与Struts2并驾齐驱,Struts出世早而占据了一定优势,我在博客《Struts1+Hibernate+Spring整合实例》中做了一个简单的实例,介绍了SSH1的基本搭建方式,Struts2是根据Struts1发展而来,博客中就没有贴SSH2的例子,只对比了下Struts1和Struts2异同,通过对比,SSH2的搭建基本不在话下了。下面同样做一个转载 2014-03-05 11:26:59 · 4576 阅读 · 2 评论 -
在Eclipse中使用JUnit4进行单元测试(初级篇)
本文绝大部分内容引自这篇文章:http://www.devx.com/Java/Article/31983/0/page/1我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函转载 2014-03-05 11:39:55 · 1808 阅读 · 0 评论 -
request,response,session,cookie,application【转】
A:request 客服端向服务器端请求 JAVA讲究封装,所以Request也是某个东西的封装,到底是什么东西呢? 按字面意思:请求! 从Http协议说起,当你发一个请求到服务端的时候,你会把一些信息交给服务器,比如你的语言,session-id等基本信息,然后再加上比如你提交表单时填上的数据。。。。。 所有所有这些数据,进入服务端后全被封装在Request里了,所以你可转载 2014-03-11 15:21:21 · 2081 阅读 · 0 评论 -
从零开始学习WebService--1
从零开始学习WebService。适合新手,一起学习!概念性东东webservice目的:异构平台之间的交互JAX-WS:Java Api XML Web Service(基于JAVAAPI XML实现的WebService)SEI:Service Endpoint Interface(实例中的IMyService)SIB:Service Implements Bean(实例中的MyServiceImpl)原创 2014-03-23 17:34:22 · 1855 阅读 · 0 评论 -
JAVABEAN是什么和总结JAVABEAN的两种使用方式
一、 javabean 是什么?Javabean 就是一个类,这个类就定义一系列 get 和 set 方法。 So simple !Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的。自己的理解:使用 javabean 和不用 javabean 的区别:一个 javabean 就是为 jsp 页面上的元素一一开辟一个空间,然后根据需要赋值、读值。而如果不用 j转载 2014-03-19 23:49:11 · 1966 阅读 · 0 评论 -
守护线程总结【转】
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) Daemon的作用是为其他线程的运行提供便利服务,比如垃圾回收线程就是一个很称职的守护者。User和Daemon两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果 User Thread已经全部退出运行了,只剩下Daemon Thread存在了,虚拟机也就退出了。 因为没有了被转载 2014-03-10 12:00:01 · 1343 阅读 · 0 评论 -
多线程编程总结【转】
下面是Java线程系列博文的一个编目: Java线程:概念与原理Java线程:创建与启动Java线程:线程栈模型与线程的变量Java线程:线程状态的转换 Java线程:线程的同步与锁Java线程:线程的交互Java线程:线程的调度-休眠 Java线程:线程的调度-优先级Java线程:线程的调度-让步Java线程:线程的调度-合并Java线程:线程的调转载 2014-03-10 11:18:06 · 1343 阅读 · 0 评论 -
线程与进程的区别与联系【转】
进程概念 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功转载 2014-03-10 11:51:27 · 1207 阅读 · 0 评论 -
Java开发中的23种设计模式【转】
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编转载 2014-03-07 10:30:01 · 1558 阅读 · 0 评论 -
测试驱动开发-TDD(1)
测试:作为动词,它是评估的意思;作为名词,它是导致最终是接受还是不接受的过程。测试是相互独立的。测试列表,就跟你生活中记录你的工作计划一样。测试优先:你应该在什么时候编写测试呢?在你编写要被测试的代码之前。断言优先:我们什么时候写断言呢?在一开始就写断言。什么时候开始构建一个系统?从对最终系统的描述开始。什么时候开始编写一项功能?从希望最终代码通过的测试开始。什么时候开原创 2014-03-08 09:30:21 · 1506 阅读 · 0 评论 -
Java中重载与重写的区别【转】
首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。 (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不转载 2014-03-12 00:22:47 · 1285 阅读 · 0 评论 -
无向图的最短路径求解算法之——Dijkstra算法【转】
在准备ACM比赛的过程中,研究了图论中一些算法。首先研究的便是最短路的问题。《离散数学》第四版(清华大学出版社)一书中讲解的Dijkstra算法是我首先研究的源材料。 如何求图中V0到V5的最短路径呢? java实现的方式如下: 第一步,根据图来建立权值矩阵: int[][] W = { { 0,转载 2014-03-12 00:28:40 · 1871 阅读 · 0 评论 -
Spring+Hibernate+Structs整合所需具体jar包
struts2 commons-logging-1.0.4.jar 主要用于日志处理 freemarker-2.3.8.jar 模板相关操作需要包 ognl-2.6.11.jar ognl表达示所需包, xwork-2.0.7.jar xwork核心包 struts2-core-2.0.14.jar struts2核心包 struts2-spring-plugin-2.0.转载 2014-03-06 09:45:12 · 2304 阅读 · 1 评论 -
Struts2、hibernate和spring下载,整合所需jar包
ssh三个框架各自所有版本下载地址如下Struts framework 下载地址:http://mirror.bjtu.edu.cn/apache/struts/binaries/hibernate framework 下载地址:http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourcefor转载 2014-03-06 09:25:14 · 4289 阅读 · 0 评论 -
线程sleep()、wait()、yield()、join()方法 解析
一 java多线程机制JAVA多线程机制有两种实现方式:第一种: 继承Thread类, 实现run()方法.第二种: 实现Runnable接口. 实例代码: 第一种: public class OntThread extends Thread { public static转载 2014-03-11 14:46:46 · 1544 阅读 · 0 评论 -
重构-改善既有代码的设计(2.7)
第三章 代码的坏味道依恋情结-Long Parameter List问题:函数对某个类的兴趣高过自己所在类的兴趣,焦点通常为数据。解决:采用Move Method。问题:函数对某个类的一个部分兴趣高过自己所在类的兴趣。解决:采用Extract Method。问题:如果函数用到了很多类的功能呢?解决:先采用Move Method将函数移到那个拥有最多被这个函数调用的数据的原创 2014-03-05 10:32:20 · 1406 阅读 · 0 评论 -
分享我的大型Java多用户商城系统开发的心得和困难
看到别的朋友在ITEYE上发表的“开发电子商务网站技术选型“有感而发。地址是 http://www.iteye.com/topic/1119464 本人一直从事Java企业级开发,因此接触过不少Java的开发框架。目前作一个多用户商城的创业项目,因为本人只专著于JAVA,那没有办法,都不用选型了。进入JAVA世界之后又有很多框架可以选择,列举几个熟悉的,例如表示层struts, sprin转载 2014-03-04 14:25:10 · 1812 阅读 · 0 评论 -
重构-改善既有代码的设计(2.4)
第三章 代码的坏味道过长参数列-Long Parameter List问题:如果向已有对象发送一个请求就能取代一个对象解决:采用Replace Parameter Wtih Method。已有对象可能是函数所属类内的一个字段,也可能是另一个参数。问题:如果参数都来自于一个对象解决:采用Preserve Whole Object将对象传进去问题:如果某些数据缺乏合理的对象归属原创 2014-03-05 10:08:21 · 1271 阅读 · 0 评论 -
OSGI实战中的问题:Exception in org.eclipse.datatools.enablement.oda.ws.ui.Activator.start()
今天在接触OSGI时遇到了一个问题,弄了好久才搞定,特总结,以免大家出现类似情况。友情提示:要是遇到莫名其妙的问题,最好的解决办法:1、清空.metadata;2、重新导工程;3、一个Bundle一个Bundle的运行,不要一次把所有Bundle都添加进去,如图,先选择一个Bundle,然后Add Required Bundles。更原创 2014-02-12 16:54:59 · 3350 阅读 · 0 评论 -
OSGI开发web应用
友情提示:不是通过tomcat发布,而是通过jetty发布的,所以注意端口设置。开发web的两种方式基于OSGI开发B/S应用有两种方式:1)在OSGI框架中嵌入Http服务器2)在Servlet容器中嵌入OSGI框架Http服务器嵌入到OSGI框架环境配置配置运行环境,选择Run->Run Configuration,new一个环境转载 2014-02-12 17:51:13 · 1731 阅读 · 0 评论 -
单例模式--介绍、应用及代码
概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、转载 2014-02-11 17:06:40 · 1494 阅读 · 1 评论 -
JTable实现行号-动态增删【转】
JTable实现的TableHeader应该算是ColumnHeader,显示的是列标题。这里说的RowHeader指的是行标题,也就是行号。JTable已经默认实现了ColumnHeader,但却没有实现RowHeader。那么如何实现RowHeader?这就要通过JScrollPane,实际上JTable的ColumnHeader也是这么实现的。先来看看JScrollPane的结构:转载 2014-02-24 21:32:00 · 4370 阅读 · 0 评论 -
遗传算法--代码
import java.util.*;public class Tsp { private String cityName[] = { "北京", "上海", "天津", "重庆", "哈尔滨", "长春", "沈阳", "呼和浩特", "石家庄", "太原", "济南", "郑州", "西安", "兰州", "银川", "西宁", "乌鲁木齐", "合肥", "南京", "杭州转载 2014-02-11 14:19:39 · 2123 阅读 · 0 评论 -
JAVA反射详解,很好很强大!
点击打开链接转载 2014-02-11 10:20:02 · 1805 阅读 · 1 评论 -
Object.clone妙用
今天比较粗心的问题://comb.getCombVector()返回值为Vector第一次代码:结果出错,只产生一个结果------------------------------------------- Vector resultTmp = comb.getCombVector(); Vector result = new Vector(); for (int i = 0; i原创 2014-02-11 10:10:01 · 866 阅读 · 0 评论 -
Java代码实现excel数据导入到Oracle
1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误)2.代码:Java代码 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; i转载 2014-02-11 10:18:53 · 3494 阅读 · 0 评论 -
Java中Vector和ArrayList的区别
首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就转载 2014-02-11 10:05:00 · 905 阅读 · 0 评论