自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (32)
  • 收藏
  • 关注

转载 【转】精益看板核心实践大作战

转自:精益看板核心实践大作战摘要:精益看板开发方法作为精益思想在软件开发领域的创造性应用,已经越来越多的获得了业界的肯定,并迅速流行起来。和敏捷常见方法论框架比较,在类似的价值观指导下,看板有着比较独特而又简单易行的一些方法实践,越来越多的研发团队正在尝试引入精益看板方法。林伟丹 神兵Wizard看板方法核心实践精益看板开发方法作为精益思想在软件开发领域的创造性应用,已经越来越...

2019-07-29 14:28:53 278

转载 如何招聘一个优秀的Scrum Master(转载)

如何来识别出一个好的scrum master,对于很多人来说都是一个难题。在这里我有幸跟大家分享一篇Mike大叔的文章,里面通过一些方法来帮助大家识别谁是一个优秀的Scrum Master。 在面试的时候,不仅仅是需要拿出一个清单来识别候选人需要了解的知识和需要做的事情,所以面试scrum master不是一个很简单的工作。不过,因为很多面试scrum master的内容和面试其他职位

2017-10-12 15:24:45 267

转载 如何开好迭代回顾会议(3)教练、不同的口味

另一种形式的迭代回顾会议    如何开好迭代回顾会议(1)(2)所介绍的通用迭代回顾会议,都是从解决问题出发而使用的回顾议程与工具。事实上,并不是每次迭代回顾会议都必须是解决问题。你偶尔可以帮团队换换口味。  学习型    学习型迭代回顾会议,就是针对一个主题,设计一个学习性的议程。这样,除了可以换换口味,最重要的是可以关注主题而不用责备某人或担心打击某人。例如,某段时间,你发

2017-04-14 15:09:39 705

转载 如何开好迭代回顾会议(1)目的、议程

迭代回顾会议目的    迭代回顾会议作为迭代化开发中的一个重要活动,为保证敏捷团队的高绩效运作发挥着着不可或缺的作用。要开好一个迭代回顾会议,不论是敏捷教练还是团队成员,都要牢记迭代回顾会议的目的。  检查并调整    迭代回顾可以让团队在紧张的迭代开发工作结束之后,喘一口气,并回头看看迭代过程中究竟发生了什么。  下次做得更好    这是迭代回顾会议的根本

2017-04-14 14:57:04 4031

转载 如何开好迭代回顾会议(2)准备、工具

上篇文章向大家介绍了一个通用的迭代回顾会议议程,它可以应对大部分情况下的迭代回顾会议。相信只要做好以上的每一个环节,一定可以开好一个迭代回顾会议。怎样才能做好以上所有环节呢?会前准备必不可少,会前准备不是简单地发通知、定地点、按模板写会议PPT。好的会前准备有些甚至要花一两天的时间。极端地说,对迭代回顾会议的主持人来说,迭代过程中的每一天都要为迭代回顾会议做准备。为迭代回顾会议做准备

2017-04-14 14:56:22 1375

转载 MyEclipse 清理项目缓存的几大方法

相信大家被项目缓存折腾过吧,这里罗列几条清除项目缓存的方法1、项目清理: 选择菜单栏的Project——>Clean..——>勾选需要清理的项目(也可以选择all)  切记:clean了项目,需要重新编译2、项目如果是maven项目,则有时候clean project并不起效。这时候需要用maven来清理缓存:右键项目——>Run As ——> Maven clea

2015-11-03 09:09:32 494

转载 最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨。

1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者

2015-10-09 10:37:02 405

转载 鲁棒图与系统需求分析

鲁棒图与系统需求分析1、概念鲁棒图——是需求设计过程中使用的一种方法(鲁棒性分析),通过鲁棒分析法可以让设计人员更清晰、全面了解需求。它通常使用在需求分析后及需求设计前做软件架构分析之用,它主要注重于功能需求的设计分析工作。需求规格说明书为其输入信息,设计模型为其输出信息。它是从功能需求向设计方案过渡的第一步,重点是识别组成软件系统的高级职责模块、规划模块之间的关系。包含三种图形:

2014-05-29 13:22:09 3473

原创 常见Map 及 ArrayList 是否有序总结

说明:此处的排序 是指:1: 往集合中插入元素的顺序与遍历元素的顺序的关系;2: 往对象中插入元素否会根据元素的大小排序 ?public class MapSortTest {       publicstatic void main(String[] args) {                   System.

2013-12-13 10:35:17 31661 1

原创 如何提高设计能力?

要提高设计能力首先需要对软件设计有着精神上的追求,即在软件开发的过程中追求设计的完美性。梦想之所以有可能成为现实,是因为我们会去“想”并为之努力,软件设计能力的获得也不例外。设计能力的获得并不会因为不去追求而“不小心”获得且水平很高。具备软件设计追求的人,会在设计的第一时间积极思考以试图找到更优实现,也会随着产品的演变而反思是否存在更好的设计,或者在必要的时候会选择接受挑战去通过改善设计帮助团队走

2013-11-06 08:50:09 847

原创 Eclipse设置软tab(用4个空格字符代替)及默认utf-8文件编码(unix)

本文摘要:1、如何配置Eclipse中编辑器支持softtab(用数个空格字符代替默认的tab缩进);2、如何配置Eclipse中编辑器默认支持Unix模式的Utf-8文件编码;-----------------------------------------详细内容如下----------------------------------------------------最近需要

2013-10-28 09:10:36 614

原创 项目管理中,几种工作量评估方法

在测试项目管理中或编写测试计划时,经常需要对某个测试工作进行工作量的预算,很多时候都是凭个人的工作经验进行估算的,如能结合一些常规的估算方法,有助于估算的精确度。  以下是网上找到的一些常规的估算测试工作量的方法:  1、 Ad-hoc方法  这种方法下的测试工作量不基于任何确定的期限。工作一直继续直到达到一些由管理或市场人员预先定下的时间表。或者,一直到用完了预算的经费。  这种情况

2013-10-16 08:54:06 11936

原创 nested标记库

它的出现在只要为了解决两个问题1.  如果嵌套层次结构中的一个对象发生改变,则必须更新每个嵌套的引用。 2.  当使用一个具有若干字段的嵌套对象时需要重复列出每个字段的全部嵌套层次结构。如“student.family.fatherName”。大部分嵌套标记跟html一样,有三个新的标记nested:nest定义一个嵌套级别nested:writeNesting输出当前

2013-08-24 16:19:05 693

原创 Oracle merge into 命令

作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表;当处理大数据量是,该方法的效率很高。 语法:MERGE INTO [your table-name] [rename your table here]USING ( [write your query here] )[rename your query-sql and using

2013-08-19 10:05:44 527

转载 myeclipse不编译解决方法

在开发中经常遇到myeclipse不编译的情况,但不同情况的解决方法又不一样,今天同样是遇到此类情况,在网上狂搜,终于找到一篇好文,它囊括了解决这种情况的常用的方法,现在发出来与大家分享。我遇到的情况是通过最后一个方法解决的:classpath文件,里面的路径不正确。MyEclipse不编译解决1. 确保 project->build automatically    已经被选上.

2013-08-02 14:44:34 670

转载 Oracle 删除重复数据只留一条

查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录 D

2013-07-27 13:38:22 495

转载 MyEclipse优化启动 去除不需要加载的模块 关掉没用的启动项 修改myeclipse.ini

关闭MyEclipse7.0自动更新 + 优化启动1. window --> preferences --> General --> Startup and Shutdown --> 在列表中找到 "Automatic Updates Scheduler " 项去掉前面的勾。2. Window --> Preferences --> Myeclipse Enterprise Workben

2013-07-23 14:46:18 1147

转载 Tomcat 服务器的安装和配置

Tomcat 服务器的安装和配置1. 使用 tomcat6.0.20.rar 文件解压即完成安装2. tomcat 就是一个java程序,一定会用到 jre所以需要配置环境变量 java_home 配置成jdk的安装目录 c:\jdk1.6tomcat的启动是通过 startup.bat 文件, 实际上 startup.bat 中是去调用catalina.bat 文件, 而且是

2013-07-21 23:34:17 386

转载 findbugs

FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。不是通过分析类文件的形式或结构来确定程序的意图,而是通常使用 Visitor 模式。详情参考:http://www.ibm.com/developerworks/cn/java/j-findbug1/下载和安装网

2013-07-21 23:19:56 501

原创 MyEclipse去掉烦人的javascript文件报错

MyEclipse项目中,对于js文件烦人的报错可以这么修改,右键项目-》属性-》Builders,取消勾选 JavaScript Validator选项报错的js文件这时依然存在。。。必须把这些文件从项目里面移除,重新添加进来。

2013-06-06 16:56:11 964 1

转载 Eclipse MyEclipse 没有响应 JVM terminated. Exit code=1073807364 错误

Eclipse MyEclipse 没有响应 JVM terminated. Exit code=1073807364 错误 卡住 等怪问题怪现象[解决办法]问题描述:                     Eclipse的WTP和MyEclipse都会的怪毛病                     在WTP或者MyEclipse下 在JSP页面中之间写代码(即写:

2013-05-28 09:08:56 794

原创 简单介绍Spring Timer

Spring Timer类和OpenSymphony的Quartz调度器是两个流行的调度API。Spring为这两个调度器提供了一个抽象层,使你可以更容易地使用它们。简单总结下Spring Timer调度任务的使用(以备参考):创建一个Spring Timer任务MySchedule.javapublic class MySchedule extends TimerTask {

2013-04-10 23:43:27 703

原创 ibatis集成spring 声明式事务管理

我提供一个实例:数据库是MYSQL , 数据源是C3P0 , -----------1) 建表语句 :----------------DROP TABLE IF EXISTS book ;CREATE TABLE book(id int(11) NOT NULL auto_increment COMMENT 'primary key',    nam

2013-04-10 23:39:26 445

转载 dom4j解析xml字符串实例

dom4j解析xml字符串实例DOM4J    与利用DOM、SAX、JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异、功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml。dom4j是一套开源的api。实际项目中,往往选择dom4j来作为解析xml的利器。先来看看dom4j中对应XML的DOM树建

2013-03-31 20:49:57 528

转载 Spring事务配置的五种方式

前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。总结如下:Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制

2013-03-18 21:23:10 400

转载 线程池ThreadPoolExecutor使用简介 (3)

一、简介线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue workQueue,RejectedExecuti

2013-03-16 23:22:23 519

转载 Java线程:新特征-线程池(2)

Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。  有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。目

2013-03-16 22:55:17 463

转载 Java 线程池学习

Java 线程池学习Reference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介》[4],《Java5中的线程池实例讲解》[5],《ThreadPoolExecutor使用和思考》[6][1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),使用的是jd

2013-03-16 22:52:12 469

转载 ConcurrentHashMap

曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。       集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会 用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5

2013-03-16 22:36:40 504

转载 Java 线程池的原理与实现(1)

[分享]Java 线程池的原理与实现这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧。线程池就是其中之一,一提到线程,我们会想到以前《操作系统》的生产者与消费者,信号量,同步控制等等。一提到池,我们会想到数据库连接池,但是线程池又如何呢?建议:在阅读本文前,先理一理同步的知识,特别是syncronized

2013-03-16 22:03:29 426

转载 Java强引用、 软引用、 弱引用、虚引用

1、对象的强、软、弱和虚引用    在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。图1为对象应用类层次1)强引用(St

2013-03-14 23:12:37 438

原创 生产者模式实现总结

前言消费者生产者模式是java中多线程的典型模式,它牵涉到java中多个线程交互的一些方式。下面根据一些典型的实现来说明;一、方式1该方式源码出处为:http://eric-619.iteye.com/blog/693681生产者-消费者模型准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。对于此模型,应该明确一下几点:1、生产者仅仅

2013-03-14 22:44:22 444

原创 test bridge

1interface IShowModelTree{ ShowModel getTree();}Class MA101 implements IShowModelTree{};Class MA301 implements IShowModelTree{};Class AJ102 implements IShowModelTree{};2interface IGetT

2013-01-21 23:19:54 254

转载 Java 桥梁模式

桥梁模式的用以是将问题的抽象和现实分离开来实现,通过用聚合代替继承来解决子类爆炸性增长的问题,比如我们有一个画图程序有2个图形(Circle Rectangle)和2种画图方法(Drawing1  Drawing2)图形可能会使用Dawing1来画图,也可能使用Dawing2来画图,在这个画图程序中有两个可变因素,一是图形的种类有可能会增加新的图形,另一个是画图方法有可能会有Drawing3出现,

2013-01-21 23:01:21 322

转载 oracle sql优化大全

1     前言… 22     总纲… 23     降龙十八掌… 3第一掌 避免对列的操作… 3第二掌 避免不必要的类型转换… 4第三掌 增加查询的范围限制… 4第四掌 尽量去掉“IN”、“OR” 4第五掌 尽量去掉 “第六掌 去掉Where子句中的IS NULL和IS NOT NULL. 5第七掌 索引提高数据分布不均匀时查询效率… 5第八掌 利用HI

2012-11-28 23:47:53 297

转载 ORACLE-SQL优化

ORACLE 采用两种访问表中记录的方式:http://blog.csdn.net/zhangao0086/article/details/6250777a.  全表扫描全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.b.  通过ROWID访问表你可以采用基于ROWID的访问方式情况,提高访问表的效率,

2012-11-28 23:44:55 243

转载 Oracle SQL性能优化

Oracle SQL性能优化(1)      选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersectio

2012-11-28 23:38:19 197

原创 jqplot 自适应大小?等答案

jqplot 自适应大小document.getElementById('test').innerHTML = temp[i].value;       document.getElementById("sub_nav").innerHTML = "ssss";function ImgZoom(Id)//重新设置图片大小 防止撑破表格{var w = $(Id).wid

2012-10-17 23:24:39 1090

原创 如何将jfreechart中的图表在Action中如何实现显示到页面!???

package jftest;import java.awt.Color;import java.awt.Dimension;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeC

2012-10-09 00:03:26 2122 1

转载 JFreeChart项目实例

最近利用JFreeChart和MySQL数据库做了一个JSP网页,展现Android Martet全球10个国家的TOP800游戏排名的曲线走势准备知识,请先阅读我先前写的博客JFreeChart学习示例Linux JSP连接MySQL数据库需导入jar包如下:http://www.w3.org/TR/html4/loose.dtd">

2012-10-08 22:02:18 573

PMBOK项目管理知识体系指南

PMP考试专用。PMBOK 第五版 中文 PDF版。作为PMP考试专用资料书

2018-01-05

软件项目管理资料

该资料包含以下几个 1、敏捷管理scrum-and-xp-chinese-version; 2、项目管理知识体系指南 (第4版).pdf 3、项目管理成功案例精选.pdf

2016-06-29

《Groovy入门经典》

Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。 Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。[1]

2016-01-07

flex 3D pie 饼图效果

Flex代码实现的 3D饼图效果;本示例是我按自己的思路实现的饼状3D图,并没有完成所有的Chart功能,因为涉及到的零碎内容较多,例如tip文本等等, 所以,这个示例仅仅只是做为 实现3D饼状图形的一个代码参考。 本示例为 CSDN帐户 xuefeimengli2007 原创

2013-07-24

weblogic 破解和说明

weblogic 破解文件 破解说明 weblogic 9.2破解版 破解者:daxia2002[DFCG] web:http://www.chinadfcg.com e-mail:[email protected] win下的使用方法 1.将license.bea和weblog_crack.jar拷贝到bea安装目录下,例如d:\bea 2.修改d:\bea\user_projects\domains\odpsdomain(你建立的域)\bin\startWeblogic.cmd 修改 set CLASSPATH=%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSP 为 set CLASSPATH=d:\bea\weblogic_crack.jar;%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSP 3. 重启weblogic linux下使用方法: 1.将license.bea和weblog_crack.jar拷贝到bea安装目录下,例如:/opt/bea 2.修改/opt/bea/user_projects/domains/你自己定义的域/bin/startWebLogic.sh 修改 CLASSPATH="${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}" 为 CLASSPATH="/opt/bea/weblogic_crack.jar:${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}" 3. 重启weblogic

2013-07-20

重构-改善既有代码的设计【PDF清晰版】

本资料仅供个人学习参考,请勿用于商业用途,如有能力请尽量购买正版图书,也是对作者的支持。 重构:改善既有代码的设计 中文版 软件开发的不朽经典 2010年人民邮电再版中文版(清晰PDF) 本书提供作译者介绍   Martin Fowler世界软件开发大师,在面向对象分析设计、UML、模式、XP和重构等领域都有卓越贡献,现为著名软件开发咨询公司ThoughtWorks的首席科学家。他的多部著作《分析模式》、《UML精粹》和《企业应用架构模式》等都已经成为脍炙人口的经典。 熊节 ThoughtWorks中国公司的高级咨询师、架构师和项目经理,在大型企业应用及互联网应用的架构和管理方面拥有丰富经验。作为敏捷方法学顾问和重构专家,他拥有在各种技术平台、编程语言、软件形态的项目中实施重构的丰富经验,并曾主持极具挑战性的超大规.. 目录回到顶部↑第1章 重构,第一个案例 1 1.1 起点 1 1.2 重构的第一步 7 1.3 分解并重组statement() 8 1.4 运用多态取代与价格相关的条件逻辑 34 1.5 结语 52 第2章 重构原则 53 2.1 何谓重构 53 2.2 为何重构 55 2.3 何时重构 57 2.4 怎么对经理说 60 2.5 重构的难题 62 2.6 重构与设计 66 2.7 重构与性能 69 2.8 重构起源何处 71 第3章 代码的坏味道 75 3.1 duplicated code(重复代码) 76 3.2 long method(过长函数) 76 3.3 large class(过大的类) 78 3.4 long parameter list(过长参数列) 78 .3.5 divergent change(发散式变化) 79 3.6 shotgun surgery(霰弹式修改) 80 3.7 feature envy(依恋情结) 80 3.8 data clumps(数据泥团) 81 3.9 primitive obsession(基本类型偏执) 81 3.10 switch statements(switch惊悚现身) 82 3.11 parallel inheritancehierarchies(平行继承体系) 83 3.12 lazy class(冗赘类) 83 3.13 speculative generality(夸夸其谈未来性) 83 3.14 temporary field(令人迷惑的暂时字段) 84 3.15 message chains(过度耦合的消息链) 84 3.16 middle man(中间人) 85 3.17 inappropriate intimacy(狎昵关系) 85 3.18 alternative classes with different interfaces(异曲同工的类) 85 3.19 incomplete library class(不完美的库类) 86 3.20 data class(纯稚的数据类) 86 3.21 refused bequest(被拒绝的遗赠) 87 3.22 comments(过多的注释) 87 第4章 构筑测试体系 89 4.1 自测试代码的价值 89 4.2 junit测试框架 91 4.3 添加更多测试 97 第5章 重构列表 103 5.1 重构的记录格式 103 5.2 寻找引用点 105 5.3 这些重构手法有多成熟 106 第6章 重新组织函数 109 6.1 extract method(提炼函数) 110 6.2 inline method(内联函数) 117 6.3 inline temp(内联临时变量) 119 6.4 replace temp with query(以查询取代临时变量) 120 6.5 introduce explaining variable(引入解释性变量) 124 6.6 split temporary variable(分解临时变量) 128 6.7 remove assignments to parameters(移除对参数的赋值) 131 6.8 replace method with method object(以函数对象取代函数) 135 6.9 substitute algorithm(替换算法) 139 第7章 在对象之间搬移特性 141 7.1 move method(搬移函数) 142 7.2 move field(搬移字段) 146 7.3 extract class(提炼类) 149 7.4 inline class(将类内联化) 154 7.5 hide delegate(隐藏“委托关系”) 157 7.6 remove middle man(移除中间人) 160 7.7 introduce foreign method(引入外加函数) 162 7.8 introduce local extension(引入本地扩展) 164 第8章 重新组织数据 169 8.1 self encapsulate field(自封装字段) 171 8.2 replace data value with object(以对象取代数据值) 175 8.3 change value to reference(将值对象改为引用对象) 179 8.4 change reference to value(将引用对象改为值对象) 183 8.5 replace array with object(以对象取代数组) 186 8.6 duplicate observed data(复制“被监视数据”) 189 8.7 change unidirectional association to bidirectional(将单向关联改为双向关联) 197 8.8 change bidirectional association to unidirectional(将双向关联改为单向关联) 200 8.9 replace magic number with symbolic constant(以字面常量取代魔法数) 204 8.10 encapsulate field(封装字段) 206 8.11 encapsulate collection(封装集合) 208 8.12 replace record with data class(以数据类取代记录) 217 8.13 replace type code with class(以类取代类型码) 218 8.14 replace type code with subclasses(以子类取代类型码) 223 8.15 replace type code with state/strategy(以state/strategy取代类型码) 227 8.16 replace subclass with fields(以字段取代子类) 232 第9章 简化条件表达式 237 9.1 decompose conditional(分解条件表达式) 238 9.2 consolidate conditional expression(合并条件表达式) 240 9.3 consolidate duplicate conditional fragments(合并重复的条件片段) 243 9.4 remove control flag(移除控制标记) 245 9.5 replace nested conditional with guard clauses(以卫语句取代嵌套条件表达式) 250 9.6 replace conditional with polymorphism(以多态取代条件表达式) 255 9.7 introduce null object(引入null对象) 260 9.8 introduce assertion(引入断言) 267 第10章 简化函数调用 271 10.1 rename method(函数改名) 273 10.2 add parameter(添加参数) 275 10.3 remove parameter(移除参数) 277 10.4 separate query from modifier(将查询函数和修改函数分离) 279 10.5 parameterize method(令函数携带参数) 283 10.6 replace parameter with explicit methods(以明确函数取代参数) 285 10.7 preserve whole object(保持对象完整) 288 10.8 replace parameter with methods(以函数取代参数) 292 10.9 introduce parameter object(引入参数对象) 295 10.10 remove setting method(移除设值函数) 300 10.11 hide method(隐藏函数) 303 10.12 replace constructor with factory method(以工厂函数取代构造函数) 304 10.13 encapsulate downcast(封装向下转型) 308 10.14 replace error code with exception(以异常取代错误码) 310 10.15 replace exception with test(以测试取代异常) 315 第11章 处理概括关系 319 11.1 pull up field(字段上移) 320 11.2 pull up method(函数上移) 322 11.3 pull up constructor body(构造函数本体上移) 325 11.4 push down method(函数下移) 328 11.5 push down field(字段下移) 329 11.6 extract subclass(提炼子类) 330 11.7 extract superclass(提炼超类) 336 11.8 extract interface(提炼接口) 341 11.9 collapse hierarchy(折叠继承体系) 344 11.10 form tem plate method(塑造模板函数) 345 11.11 replace inheritance with delegation(以委托取代继承) 352 11.12 replace delegation with inheritance(以继承取代委托) 355 第12章 大型重构 359 12.1 tease apart inheritance(梳理并分解继承体系) 362 12.2 convert procedural design to objects(将过程化设计转化为对象设计) 368 12.3 separate domain from presentation(将领域和表述/显示分离) 370 12.4 extract hierarchy(提炼继承体系) 375 第13章 重构,复用与现实 379 13.1 现实的检验 380 13.2 为什么开发者不愿意重构他们的程序 381 13.3 再论现实的检验 394 13.4 重构的资源和参考资料 394 13.5 从重构联想到软件复用和技术传播 395 13.6 小结 397 13.7 参考文献 397 第14章 重构工具 401 14.1 使用工具进行重构 401 14.2 重构工具的技术标准 403 14.3 重构工具的实用标准 405 14.4 小结 407 第15章 总结 409 参考书目 413 要点列表 417 索引 419

2013-07-04

Struts1详解

Struts1 基础知识的详细介绍 通俗易懂,又简练,是学习struts1入门时 很好的参考资料。

2013-06-20

struts 1源码(包含jar包)

struts-1.3.10-all.zip 该文件包含struts1应用时需要使用的jar包、源码。 在eclipse中,需要查看struts对应的类,可以在查看源代码时导入该zip包,即可加载并显示出struts1源代码。 struts1学习的必须品!

2013-06-20

Junit 4 jar包和源码包

Junit单元测试所需的junit jar包、查看源码所用的jar。 JUnit 是JAVA语言事实上的标准测试库。 JUnit 4是三年以来最具里程碑意义的一次发布。它的新特性主要是针对JAVA5中的标记(annotation)来简化测试,而不是利用子类、反射或命名机制。 可以通过导入source查看其源码,了解更深入更全面的信息。

2013-06-04

Apache-ant-1.7.1-bin.zip

ant 是 apache 组织的一个子项目,可以从 http://ant.apache.org 下载得到,Windows 平台的可以下载 ZIP 格式的安装文件,下载完成后解压缩到某个目录,建议使用根目录下的直接子目录作为 ant 解压缩以后目录,ant 无需安装,解压缩文件以后就算安装完成。 但要 ant 工作,需要对它进行配置: 打开系统环境变量设置窗口,增加 ANT_HOME 环境变量,变量值为解压缩后的 ant 所在目录,比如: 变量名:ANT_HOME 变量值:E:\bak\apache-ant-1.7.1-bin\apache-ant-1.7.1 然后在系统环境变量 Path 中增加 %ANT_HOME%\bin 目录,然后打开一个命令行窗口,输入 ant 后如果出现以下内容即算正确完成 ant 的配置: C:\Documents and Settings\Administrator>ant Buildfile: build.xml does not exist! Build failed C:\Documents and Settings\Administrator>

2013-03-24

Java线程池文档

Java 线程池学习 Reference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介》[4],《Java5中的线程池实例讲解》[5],《ThreadPoolExecutor使用和思考》[6] [1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),使用的是jdk1.4版本,Jdk1.5版本以上提供了现成的线程池。 [2]中介绍了java.util.concurrent.Executors类的API。 [3]中介绍了Java中线程池的类体系结构。 [4]中有ThreadPoolExecutor的实例应用。 [5]中有线程池的实例讲解,实现了一个基于线程池的端口监听服务器。★ [6]中有对源码比较细致的分析

2013-03-17

深入Java虚拟机(中文版)第二版.pdf

第1章 Java体系结构介绍 1.1 为什么使用Java 1.2 网络带来的挑战和机遇 1.3 体系结构 1.3.1 Java虚拟机 1.3.2 类装载器的体系结构 1.3.3 Java class文件 1.3.4 Java API 1.3.5 Java程序设计语言 1.4 Java体系结构的代价 1.5 结论 1.6 资源页 第2章 平台无关 2.1 为什么要平台无关 2.2 Java的体系结构对平台无关的支持 2.2.1 Java平台 2.2.2 Java语言 2.3.3 Java class文件 . 2.2.4 可伸缩性 2.3 影响平台无关性的因素 2.3.1 Java平台的部署 2.3.2 Java平台的版本 2.3.3 本地方法 2.3.4 非标准运行时库 2.3.5 对虚拟机的依赖 2.3.6 对用户界面的依赖 2.3.7 Java平台实现中的bug 2.3.8 测试 2.4 平台无关的七个步骤 2.5 平台无关性的策略 2.6 平台无关性和网络移动对象 2.7 资源页 第3章 安全 3.1 为什么需要安全性 3.2 基本沙箱 3.3 类装载器体系结构 3.4 class文件检验器 3.4.1 第一趟:class文件的结构检查 3.4.2 第二趟:类型数据的语义检查 3.4.3 第三趟:字节码验证 3.4.4 第四趟:符号引用的验证 3.4.5 二进制兼容 3.5 Java虚拟机中内置的安全特性 3.6 安全管理器和Java API 3.7 代码签名和认证 3.8 一个代码签名示例 3.9 策略 3.10 保护域 3.11 访问控制器 3.11.1 implies()方法 3.11.2 栈检查示例 3.11.3 一个回答“是”的栈检查 3.11.4 一个回答“不”的栈检查 3.11.5 doPrivileged()方法 3.11.6 doPrivileged()的一个无效使用 3.12 Java安全模型的不足和今后的发展 方向 3.13 和体系结构无关的安全性 3.14 资源页 第4章 网络移动性 4.1 为什么需要网络移动性 4.2 一种新的软件模式 4.3 Java体系结构对网络移动性的支持 4.4 applet:网络移动性代码的示例 4.5 Jini服务对象:网络移动对象的示例 4.5.1 Jini是什么 4.5.2 Jini如何工作 4.5.3 服务对象的优点 4.6 网络移动性:Java设计的中心 4.7 资源页 第5章 Java虚拟机 5.1 Java虚拟机是什么 5.2 Java虚拟机的生命周期 5.3 Java虚拟机的体系结构 5.3.1 数据类型 5.3.2 字长的考量 5.3.3 类装载器子系统 5.3.4 方法区 5.3.5 堆 5.3.6 程序计数器 5.3.7 Java栈 5.3.8 栈帧 5.3.9 本地方法栈 5.3.10 执行引擎 5.3.11 本地方法接口 5.4 真实机器 5.5 一个模拟:“Eternal Math” 5.6 随书光盘 5.7 资源页 第6章 Java class文件 6.1 Java class文件是什么 6.2 class文件的内容 6.3 特殊字符串 6.3.1 全限定名 6.3.2 简单名称 6.3.3 描述符 6.4 常量池 6.4.1 CONSTANT_Utf8_info表 6.4.2 CONSTANT_Integer_info表 6.4.3 CONSTANT_Float_info表 6.4.4 CONSTANT_Long_info表 6.4.5 CONSTANT_Double_info表 6.4.6 CONSTANT_Class_info表 6.4.7 CONSTANT_String_info表 6.4.8 CONSTANT_Fieldref_info表 6.4.9 CONSTANT_Methodref_info表 6.4.10 CONSTANT_InterfaceMethodref_ info表 6.4.11 CONSTANT_NameAndType_info 表 6.5 字段 6.6 方法 6.7 属性 6.7.1 属性格式 6.7.2 Code属性 6.7.3 ConstantValue属性 6.7.4 Deprecated属性 6.7.5 Exceptions属性 6.7.6 InnerClasses属性 6.7.7 LineNumberTable属性 6.7.8 LocalVariableTable属性 6.7.9 SourceFile属性 6.7.10 Synthetic属性 6.8 一个模拟:“Getting Loaded” 6.9 随书光盘 6.10 资源页 第7章 类型的生命周期 7.1 类型装载、连接与初始化 7.1.1 装载 7.1.2 验证 7.1.3 准备 7.1.4 解析 7.1.5 初始化 7.2 对象的生命周期 7.2.1 类实例化 7.2.2 垃圾收集和对象的终结 7.3 卸载类型 7.4 随书光盘 7.5 资源页 第8章 连接模型 8.1 动态连接和解析 8.1.1 解析和动态扩展 8.1.2 类装载器与双亲委派模型 8.1.3 常量池解析 8.1.4 解析CONSTANT_Class_info入口 8.1.5 解析CONSTANT_Fieldref_info 入口 S.1.6 解析CONSTANT_Methodref_info 入口 8.1.7 解析CONSTANT_Interface- Methodref_info入口 8.1.8 解析CONSTANT_String_info入口 8.1.9 解析其他类型的入口 8.1.10 装载约束 8.1.11 编译时常量解析 8.1.12 直接引用 8.1.13 _quick指令 8.1.14 示例:Salutation程序的连接 8.1.15 示例:Greet程序的动态扩展 8.1.16 使用1.1版本的用户自定义类装 载器 8.1.17 使用1.2版本的用户自定义类装 载器 8.1.18 示例:使用forName()的动态扩展 8.1.19 示例:卸载无法触及的greeter类 8.1.20 示例:类型安全性与装载约束 8.2 随书光盘 8.3 资源页 第9章 垃圾收集 9.1 为什么要使用垃圾收集 9.2 垃圾收集算法 9.3 引用计数收集器 9.4 跟踪收集器 9.5 压缩收集器 9.6 拷贝收集器 9.7 按代收集的收集器 9.8 自适应收集器 9.9 火车算法 9.9.1 车厢、火车和火车站 9.9.2 车厢收集 9.9.3 记忆集合和流行对象 9.10 终结 9.11 对象可触及性的生命周期 9.11.1 引用对象 9.11.2 可触及性状态的变化 9.11.3 缓存、规范映射和临终清理 9.12 一个模拟:“Heap of Fish” 9.12.1 分配鱼 9.12.2 设置引用 9.12.3 垃圾收集 9.12.4 压缩堆 9.13 随书光盘 9.14 资源页 第10章 栈和局部变量操作 10.1 常量入栈操作 10.2 通用栈操作 10.3 把局部变量压入栈 10.4 弹出栈顶部元素,将其赋给局部变量 10.5 wide指令 10.6 一个模拟:“Fibonacci Forever” 10.7 随书光盘 10.8 资源页 第11章 类型转换 11.1 转换操作码 11.2 一个模拟:“Conversion Diversion” 11.3 随书光盘 11.4 资源页 第12章 整数运算 12.1 二进制补码运算 12.2 Inner Int:揭示Java int类型内部性质 的applet 12.3 运算操作码 12.4 一个模拟:“Prime Time” 12.5 随书光盘 12.6 资源页 第13章 逻辑运算 13.1 逻辑操作码 13.2 一个模拟:“Logical Results” 13.3 随书光盘 13.4 资源页 第14章 浮点运算 第15章 对象和数组 第16章 控制流 第17章 异常 第18章 finally子句 第19章 方法的调用与返回 第20章 线程同步 20.1 监视器 20.2 对象锁 20.3 指令集中对同步的支持 20.3.1 同步语句 20.3.2 同步方法 20.4 Object类中的协调支持 20.5 随书光盘 20.6 资源页 附录A 按操作码助记符排列的指令集 附录B 按功能排列的操作码助记符 附录C 按操作码字节值排列的操作码助 记符 附录D Java虚拟机的一个模拟:“Slices of Pi”

2013-02-25

【jquery 图表插件】jqplot,highchart,jschart,flot

众所周知,通过jquery可以实现很好的图表效果,并且代码易懂,容易扩展,这里提供有jqplot中文API:http://www.jqplot.com/;其次,这里提供常用的插件如highchart,这里提供有详细的API文档和示例,不用再去官网上搜集啦。 另外,还有jschart和flot,虽然不常用,但是可以作为学习参考使用。

2012-11-27

【mock】打桩说明文档及Jar包

在java web应用中,进行用例实现时,很多情况难以模拟,比如数据库用例,如果直接通过连接数据库进行测试,导致用例对环境依赖很大,这时,可以通过mock技术可以模拟构造数据环境,从而进行单元测试,这里提供有实现示例说明文档。 使用mock时,需要对应的jar包,这里是EasyMock(EaskMock 3.1) 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。

2012-11-27

jqplot所用相关资料

jqPlot是一个jQuery绘图插件,可以利用它制作漂亮的线状图和柱状图。jqPlot支持为图表设置各种不同的样式。提供Tooltips,数据点高亮显示等功能。 柱状图可以提供坐标轴定制,柱条宽度、颜色定制,阴影设置等等。 这里提供jqplot官网示例,可以很快入手,写出自己的成果。 另外,还提供有帮助文档,可以自主设计图表样式和效果。

2012-10-17

jquery各种图表源码示例

jquery 曲线图、折线图、饼图。。。。各种图像实现 credits:{ href:'', text:'bits' }, title: { text: 'Monthly Average Temperature', x: -20 //center }, subtitle: { text: 'Source: WorldClimate.com', x: -20 },

2012-10-10

jfreechart

整合Struts2跟JFreeChart生成折线图显示在jsp页面 首先,还是看下工程目录: 目录就是一般的web project目录,主要是看下所要导入的架包。JFreeChart的架包可在其官网下载最新版本(官网地址:http://sourceforge.net/projects/jfreechart/files/1.JFreeChart/)。这里除了JFreeChart架包以外还要导入Struts2中跟JFreeChart交互的插件包:struts2-jfreechart-plugin-2.0.11.jar,还有一开始的几个commons-xx的几个架包貌似也不能少,当在配置的时候发现这几个少了部署的时候也会报错,具体是哪个我也没有深入研究。 其次,就是web.xml的配置了,以前我配置struts2的web.xml直接就是这样: <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 可跟JFreeChart整合在后面配置Strtus.xml的时候再部署还是会报错,具体什么原因我也不知道,后来在网上看了这种配置方式: <filter> <filter-name>struts-prepare</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class> </filter> <filter> <filter-name>struts-execute</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts-prepare</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts-execute</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 这样配置就没有问题了,神马原因我也不知道。 然后,就是写后台方法了: 1.写一个生成折线图的工具类: package cn.infocore.www; import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.FileOutputStream; import java.io.UnsupportedEncodingException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.DatasetUtilities; public class CreateLinechart { /** * 图片保存的根目录 * @param filename * @return */ public String Savepath(){ String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); String testpath = path.substring(0,path.lastIndexOf("WEB-INF")); String filepath = testpath+"images/"; System.out.println(filepath); return filepath;//Tomcat的中webapps目录下项目的images文件夹 } /** * 柱状图,折线图 数据集 方法 */ public CategoryDataset getBarData(double[][] data, String[] rowKeys, String[] columnKeys) { return DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data); } private void isChartPathExist(String chartPath) { File file = new File&#40;chartPath&#41;; if (!file.exists()) { file.mkdirs(); // log.info("CHART_PATH="+CHART_PATH+"create."); } } /** * 折线图样式 * @param chartTitle * @param x * @param y * @param xyDataset * @param charName * @return */ public JFreeChart createTimeXYChar(String chartTitle, String x, String y, CategoryDataset xyDataset, String charName) { JFreeChart chart = ChartFactory.createLineChart(chartTitle, x, y, xyDataset, PlotOrientation.VERTICAL, true, true, false); chart.setTextAntiAlias(false); chart.setBackgroundPaint(Color.RED); // 设置图标题的字体重新设置title Font font = new Font("宋体", Font.BOLD, 20); TextTitle title = new TextTitle(chartTitle); title.setFont(font); chart.setTitle(title); // 设置面板字体 Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12); chart.setBackgroundPaint(Color.WHITE); CategoryPlot categoryplot = (CategoryPlot) chart.getPlot(); // x轴 // 分类轴网格是否可见 categoryplot.setDomainGridlinesVisible(true); // y轴 //数据轴网格是否可见 categoryplot.setRangeGridlinesVisible(true); categoryplot.setRangeGridlinePaint(Color.WHITE);// 虚线色彩 categoryplot.setDomainGridlinePaint(Color.WHITE);// 虚线色彩 categoryplot.setBackgroundPaint(Color.lightGray); // 设置轴和面板之间的距离 // categoryplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); CategoryAxis domainAxis = categoryplot.getDomainAxis(); domainAxis.setLabelFont(labelFont);// 轴标题 domainAxis.setTickLabelFont(labelFont);// 轴数值 domainAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD); // 横轴上的 // Lable // 45度倾斜 // 设置距离图片左端距离 domainAxis.setLowerMargin(0.0); // 设置距离图片右端距离 domainAxis.setUpperMargin(0.0); NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); numberaxis.setAutoRangeIncludesZero(true); // 获得renderer 注意这里是下嗍造型到lineandshaperenderer!! LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot.getRenderer(); //XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) categoryplot // .getRenderer();//改变曲线颜色 lineandshaperenderer.setBaseShapesVisible(true); // series 点(即数据点)可见 lineandshaperenderer.setBaseLinesVisible(true); // series 点(即数据点)间有连线可见 // 显示折点数据 /* lineandshaperenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); lineandshaperenderer.setBaseItemLabelsVisible(true); */ //图片路径 FileOutputStream fos_jpg = null; try { isChartPathExist(Savepath()); String chartName = Savepath() + charName; fos_jpg = new FileOutputStream(chartName); // 将报表保存为JPG文件 ChartUtilities.writeChartAsJPEG(fos_jpg, chart, 500, 510); } catch (Exception e) { e.printStackTrace(); return null; } finally { try { fos_jpg.close(); System.out.println("create time-createTimeXYChar."); } catch (Exception e) { e.printStackTrace(); } } return chart; } } 2.编写jsp页面需要调用的Action控制器 package cn.infocore.www; import javax.servlet.http.HttpServletResponse; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LineChartView extends ActionSupport{ private static final long serialVersionUID = 1L; private JFreeChart chart; public String LineChartView() { double[][] data = new double[][]{ {372, 766, 223, 540, 126}, {325, 521, 210, 340, 106}, {332, 256, 523, 240, 526} }; String[] rowKeys = {"葡萄", "梨子", "苹果"}; String[] columnKeys = {"北京", "上海", "广州", "成都", "深圳"}; try { //zlist,dlist, nlist赋值到HorizontalItemLabelDome里 这个jfreechart中的一个dome CreateLinechart demo = new CreateLinechart(); HttpServletResponse response = (HttpServletResponse) ActionContext .getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE); response.setContentType("image/jpg"); chart = demo.createTimeXYChar("折线图数据分析", "城市", "品种", demo.getBarData(data, rowKeys, columnKeys), "lineAndShap.jpg"); ChartUtilities.writeChartAsJPEG(response.getOutputStream(), chart, 500, 400, null); } catch (Exception e) { e.printStackTrace(); } //return "horizontalItemLabelView"; return "success"; } public JFreeChart getChart() { return chart; } public void setChart(JFreeChart chart) { this.chart = chart; } } 接着,就是配置Struts.xml和折线图的xml文件了, 1.Struts.xml文件的配置: &lt;?xml version="1.0" encoding="UTF-8"?&gt; <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-jfreechart.xml"></include> <package name="redarmy" namespace="/csdn" extends="struts-default"> <global-results> <result name="input">/index.jsp</result> </global-results> </package> </struts> 2.在src目录下再新建一个struts-jfreechart.xml文件,用于配置JFreechart: &lt;?xml version="1.0" encoding="UTF-8" ?&gt; <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="lineChart" extends="jfreechart-default,struts-default" namespace="/lineChart"> <result-types> <result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"></result-type> </result-types> <action name="lineChart" class="cn.infocore.www.LineChartView"> <result type="chart"> <param name="width">400</param> <param name="height">700</param> </result> </action> </package> </struts> 最后,在index.jsp页面里编写调用action的代码: <img src="${pageContext.request.contextPath}/lineChart/lineChart!LineChartView.action"/> 至此,所有的准备工作都完成了,将项目部署到Tomcat里面发布之后输入url: http://192.168.1.196:8080/JFreeChart/index.jsp就能在jsp页面显示出所对应的折线图:

2012-10-08

Fences桌面图标管理软件(桌面图标再多也不乱)

栅栏桌面(fences)是著名的Stardock公司推出的一款软件,由该公司的首席技术构架师Jeff Bargmann开发的,用来分类和组织桌面上的图标一款软件。它可以将不同的图标放到不同的“容器”当中,使用者还可以移动和拉伸这个“容器”。这样将图标分类以后,桌面再也不会看起来一团糟了。它还提供了一个有趣的功能:双击桌面,隐藏所有图标;再次双击桌面,显示所有图标。 Fences Fences™ is a program that helps you organize your desktop, and can hide your icons when they're not in use. A "Fence", a term coined by this program, is an icon group on your desktop. Fences is an add-on to your desktop, not a replacement.Your desktop by creating shaded areas which become movable and sizable containers for your icons. Double click blank spaces on your desktop and all your fences will fade out, and back. 基本功能   1)对你的桌面分块    fence允许你在您的桌面上创建阴影区,你可以阴影区放置图标。你可以标上你喜欢的标签,在桌面上任意的移动调整它们。对于新用户Pre-included布局可以帮助他们快速的布局。   2)重新全显你的壁纸!双击可以快速轻松的显示和隐藏桌面图标   在桌面空白处双击来隐藏你的桌面图标。 再次双击时显示桌面图标。我们认为这是一个非常有用的特点,我们已经申请了专利。你甚至可以挑出图标或fence以排除!   3)创建快照,并具有自动缩放功能(屏幕尺寸变化)   快照(备份)功能可以截取你使用前和第一次使用时的快照,同时你可以在任何时间截取当前桌面的快照以保证不会丢失布局。 如果安装过程中出现 安装fences过程中出现“应用程序正常初始化0xc000135失败”的提示 ... 请先安装.net 3.x 如果安装过程中出现 安装fences过程中出现“应用程序正常初始化0xc000135失败”的提示 ... 请先安装.net 3.x

2012-07-27

.NET Framework 3.5安装

Microsoft .NET Framework 3.5的安装程序。 X86指的是适用于32位操作系统 XP指的是适用于XP的系统。 了解了吗? Microsoft .NET Framework 3.5 版提供了一个可再发行的安装程序,该安装程序中还包含用于 .NET Framework 2.0 版和 .NET Framework 3.0 版的 Service Pack 和累积更新。 .NET Framework 3.5 可再发行组件包以两种格式提供: dotnetfx35.exe 这是一个独立的可执行文件,它包含将应用程序部署到 32 位和 64 位平台的所有支持的操作系统上所需的全部组件。此可执行文件不包含语言包。.NET Framework 3.5 版语言包为每种语言单独提供独立的可执行文件。 dotnetfx35setup.exe 这是一个轻量引导程序,它在安装期间从网站上下载所需的组件。该引导程序不在组件包中提供任何 .NET Framework 3.5 版组件,而是仅仅检测、下载和安装所需的组件。该引导程序将下载并安装与用户操作系统的语言匹配的语言包。可以使用独立的语言包安装其他语言支持。 可以在 32 位和 64 位平台上所有支持的操作系统上使用两个组件包中的任何一个。

2012-07-27

spring加载restful(文档+程序源码)

spring加载restful(文档+程序源码) 通过REST风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局ID来标识的,这些ID一般使用的是一个统一资源标识符(URI)。客户端应用使用HTTP方法(如,GET、POST、PUT或DELETE)来操作一个或多个资源。通常,GET是用于获取或列出一个或多个资源,POST用于创建,PUT用于更新或替换,而DELETE则用于删除资源。   例如,GET http://host/context/employees/12345将获取ID为12345的员工的表示。这个响应表示可以是包含详细的员工信息的XML或ATOM,或者是具有更好UI的JSP/HTML页面。您看到哪种表示方式取决于服务器端实现和您的客户端请求的MIME类型。   RESTful Web Service是一个使用HTTP和REST原理实现的Web Service。通常,一个RESTful Web Service将定义基本资源URI、它所支持的表示/响应MIME,以及它所支持的操作。   本文将介绍如何使用Spring创建Java实现的服务器端RESTful Web Services。这个例子将使用浏览器、curl和Firefox插件RESTClient作为发出请求的客户端。   本文假定您是熟悉REST基本知识的。   Spring 3的REST支持   在Spring框架支持REST之前,人们会使用其他几种实现技术来创建Java RESTful Web Services,如Restlet、RestEasy和Jersey。Jersey是其中最值得注意的,它是JAX-RS(JSR 311)的参考实现。   Spring是一个得到广泛应用的Java EE框架,它在版本3以后就增加了RESTful Web Services开发的支持。虽然,对REST的支持并不是JAX-RS的一种实现,但是它具有比标准定义更多的特性。REST支持被无缝整合到Spring的MVC层,它可以很容易应用到使用Spring构建的应用中。   Spring REST支持的主要特性包括:   注释,如@RequestMapping 和 @PathVariable,支持资源标识和URL映射   ContentNegotiatingViewResolver支持为不同的MIME/内容类型使用不同的表示方式   使用相似的编程模型无缝地整合到原始的 MVC 层   创建一个示例RESTful Web Service   本节中的例子将演示Spring 3环境的创建过程,并创建一个可以部署到Tomcat中的“Hello World”应用。然后我们再完成一个更复杂的应用来了解Spring 3 REST支持的重要概念,如多种MIME类型表示支持和JAXB支持。另外,本文还使用一些代码片断来帮助理解这些概念。

2012-07-23

《企业应用架构模式》PDF中文清晰版

- 英文原版下载:Patterns of Enterprise Application Architecture 内容简介 《企业应用架构模式》作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。《企业应用架构模式》获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。《企业应用架构模式》分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是《企业应用架构模式》的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并配以详细的Java代码或C#代码示例。此外,整《企业应用架构模式》中还用了大量UML图来进一步阐明有关概念。 《企业应用架构模式》涉及两部分内容。第一部分是关于如何开发企业应用的简单介绍。在阅读这部分时.读者可以从头到尾通读,以掌握《企业应用架构模式》的范围。第二部分是《企业应用架构模式》的主体,是关于模式的详细参考手册.每个模式都给出使用方法和实现信息,并配有详细的Java代码或C#代码的示例。此外,整《企业应用架构模式》中还用了大量UML图来进一步阐明有关概念。 《企业应用架构模式》主要内容: 将企业应用分层 组织企业业务逻辑的主要方法 在对象和关系数据库之间进行映射的深层次解决方案 通过模型一视图一控制器来组织Web表现 处理跨多事务的数据的并发问题 设计分布式对象接口 目录 模式列表 引言 1 0.1 架构 1 0.2 企业应用 2 0.3 企业应用的种类 3 0.4 关于性能的考虑 4 0.5 模式 6 0.5.1 模式的结构 7 0.5.2 模式的局限性 9 第一部分 表述 第1章 分层 12 1.1 企业应用中层次的演化 13 1.2 三个基本层次 14 1.3 为各层选择运行环境 15 第2章 组织领域逻辑 19 2.1 抉择 22 2.2 服务层 23 第3章 映射到关系数据库 25 .3.1 架构模式 25 3.2 行为问题 28 3.3 读取数据 29 3.4 结构映射模式 30 3.4.1 关系的映射 30 3.4.2 继承 33 3.5 建立映射 34 3.6 使用元数据 35 3.7 数据库连接 36 3.8 其他问题 38 3.9 进一步阅读 38 第4章 Web表现层 39 4.1 视图模式 41 4.2 输入控制器模式 43 4.3 进一步阅读 43 第5章 并发 45 5.1 并发问题 45 5.2 执行语境 46 5.3 隔离与不变性 47 5.4 乐观并发控制和悲观并发控制 48 5.4.1 避免不一致读 49 5.4.2 死锁 49 5.5 事务 50 5.5.1 ACID 51 5.5.2 事务资源 51 5.5.3 减少事务隔离以提高灵活性 52 5.5.4 业务事务和系统事务 53 5.6 离线并发控制的模式 54 5.7 应用服务器并发 55 5.8 进一步阅读 56 第6章 会话状态 57 6.1 无状态的价值 57 6.2 会话状态 58 6.3 存储会话状态的方法 59 第7章 分布策略 61 7.1 分布对象的诱惑 61 7.2 远程接口和本地接口 62 7.3 必须使用分布的情况 63 7.4 关于分布边界 64 7.5 分布接口 64 第8章 通盘考虑 67 8.1 从领域层开始 67 8.2 深入到数据源层 68 8.2.1 事务脚本的数据源 68 8.2.2 表模块的数据源 69 8.2.3 领域模型的数据源 69 8.3 表现层 69 8.4 一些关于具体技术的建议 70 8.4.1 Java和J2EE 70 8.4.2 .NET 71 8.4.3 存储过程 71 8.4.4 Web Services 72 8.5 其他分层方式 72 第二部分 模 式 第9章 领域逻辑模式 76 9.1 事务脚本(Transaction Script) 76 9.1.1 运行机制 76 9.1.2 使用时机 77 9.1.3 收入确认问题 78 9.1.4 例:收入确认(Java) 78 9.2 领域模型(Domain Model) 81 9.2.1 运行机制 81 9.2.2 使用时机 83 9.2.3 进一步阅读 83 9.2.4 例:收入确认(Java) 84 9.3 表模块(Table Module) 87 9.3.1 运行机制 88 9.3.2 使用时机 90 9.3.3 例:基于表模块的收入确认(C#) 90 9.4 服务层(Service Layer) 93 9.4.1 运行机制 94 9.4.2 使用时机 96 9.4.3 进一步阅读 96 9.4.4 例:收入确认(Java) 96 第10章 数据源架构模式 101 10.1 表数据入口(Table Data Gateway) 101 10.1.1 运行机制 101 10.1.2 使用时机 102 10.1.3 进一步阅读 102 10.1.4 例:人员入口(C#) 103 10.1.5 例:使用ADO.NET数据集(C#) 104 10.2 行数据入口(Row Data Gateway) 106 10.2.1 运行机制 107 10.2.2 使用时机 108 10.2.3 例:人员记录(Java) 108 10.2.4 例:领域对象的数据保持器(Java) 111 10.3 活动记录(Active Record) 112 10.3.1 运行机制 112 10.3.2 使用时机 113 10.3.3 例:一个简单的Person类(Java) 113 10.4 数据映射器(Data Mapper) 115 10.4.1 运行机制 116 10.4.2 使用时机 119 10.4.3 例:一个简单的数据映射器(Java) 119 10.4.4 例:分离查找方法(Java) 123 10.4.5 例:创建一个空对象(Java) 126 第11章 对象-关系行为模式 129 11.1 工作单元(Unit of Work) 129 11.1.1 运行机制 129 11.1.2 使用时机 133 11.1.3 例:使用对象注册的工作单元(Java) 134 11.2 标识映射(Identity Map) 137 11.2.1 运行机制 137 11.2.2 使用时机 139 11.2.3 例:标识映射中的方法(Java) 139 11.3 延迟加载(Lazy Load) 140 11.3.1 运作机制 140 11.3.2 使用时机 142 11.3.3 例:延迟初始化(Java) 142 11.3.4 例:虚代理(Java) 142 11.3.5 例:使用值保持器(Java) 144 11.3.6 例:使用重影(C#) 144 第12章 对象-关系结构模式 151 12.1 标识域(Identity Field) 151 12.1.1 工作机制 151 12.1.2 使用时机 154 12.1.3 进一步阅读 154 12.1.4 例:整型键(C#) 154 12.1.5 例:使用键表(Java) 155 12.1.6 例:使用组合键(Java) 157 12.2 外键映射(Foreign Key Mapping) 166 12.2.1 运行机制 167 12.2.2 使用时机 169 12.2.3 例:单值引用(Java) 169 12.2.4 例:多表查询(Java) 172 12.2.5 例:引用集合(C#) 173 12.3 关联表映射(Association Table Mapping) 175 12.3.1 运行机制 176 12.3.2 使用时机 176 12.3.3 例:雇员和技能(C#) 177 12.3.4 例:使用直接的SQL(Java) 179 12.3.5 例:用一次查询查多个雇员(Java) 182 12.4 依赖映射(Dependent Mapping) 186 12.4.1 运行机制 186 12.4.2 使用时机 187 12.4.3 例:唱片和曲目(Java) 188 12.5 嵌入值(Embedded Value) 190 12.5.1 运行机制 190 12.5.2 使用时机 190 12.5.3 进一步阅读 191 12.5.4 例:简单值对象(Java) 191 12.6 序列化LOB(Serialized LOB) 192 12.6.1 运行机制 193 12.6.2 使用时机 194 12.6.3 例:在XML中序列化一个部门层级(Java) 194 12.7 单表继承(Single Table Inheritance) 196 12.7.1 运行机制 197 12.7.2 使用时机 197 12.7.3 例:运动员的单表(C#) 198 12.7.4 从数据库中加载对象 199 12.8 类表继承(Class Table Inheritance) 202 12.8.1 运行机制 202 12.8.2 使用时机 203 12.8.3 进一步阅读 203 12.8.4 例:运动员和他们的家属(C#) 203 12.9 具体表继承(Concrete Table Inheritance) 208 12.9.1 运行机制 209 12.9.2 使用时机 210 12.9.3 例:具体运动员(C#) 210 12.10 继承映射器(Inheritance Mappers) 214 12.10.1 运行机制 215 12.10.2 使用时机 216 第13章 对象-关系元数据映射模式 217 13.1 元数据映射(Metadata Mapping) 217 13.1.1 运行机制 217 13.1.2 使用时机 218 13.1.3 例:使用元数据和反射(Java) 219 13.2 查询对象(Query Object) 224 13.2.1 运行机制 225 13.2.2 使用时机 225 13.2.3 进一步阅读 226 13.2.4 例:简单的查询对象(Java) 226 13.3 资源库(Repository) 228 13.3.1 运行机制 229 13.3.2 使用时机 230 13.3.3 进一步阅读 231 13.3.4 例:查找一个人所在的部门(Java) 231 13.3.5 例:资源库交换策略(Java) 231 第14章 Web表现模式 233 14.1 模型-视图-控制器(Model View Controller) 233 14.1.1 运行机制 233 14.1.2 使用时机 234 14.2 页面控制器(Page Controller) 235 14.2.1 运行机制 235 14.2.2 使用时机 236 14.2.3 例:Servlet控制器和JSP视图的简单演示(Java) 236 14.2.4 例:使用JSP充当处理程序(Java) 238 14.2.5 例:代码隐藏的页面控制器(C#) 241 14.3 前端控制器(Front Controller) 243 14.3.1 运行机制 244 14.3.2 使用时机 245 14.3.3 进一步阅读 246 14.3.4 例:简单的显示(Java) 246 14.4 模板视图(Template View) 248 14.4.1 运行机制 249 14.4.2 使用时机 251 14.4.3 例:分离的控制器,使用JSP充当视图(Java) 252 14.4.4 例:ASP.NET服务器页面(C#) 253 14.5 转换视图(Transform View) 256 14.5.1 运行机制 256 14.5.2 使用时机 257 14.5.3 例:简单的转换(Java) 257 14.6 两步视图(Two Step View) 259 14.6.1 运行机制 259 14.6.2 使用时机 260 14.6.3 例:两阶XSLT(XSLT) 264 14.6.4 例:JSP和定制标记(Java) 266 14.7 应用控制器(Application Controller) 269 14.7.1 运行机制 270 14.7.2 使用时机 271 14.7.3 进一步阅读 271 14.7.4 例:状态模型应用控制器(Java) 271 第15章 分布模式 275 15.1 远程外观(Remote Facade) 275 15.1.1 运行机制 276 15.1.2 使用时机 278 15.1.3 例:使用Java语言的会话bean来作为远程外观(Java) 278 15.1.4 例:Web Service(C#) 281 15.2 数据传输对象(Data Transfer Object) 285 15.2.1 运行机制 285 15.2.2 使用时机 288 15.2.3 进一步阅读 289 15.2.4 例:传输唱片信息(Java) 289 15.2.5 例:使用XML实现序列化(Java) 293 第16章 离线并发模式 295 16.1 乐观离线锁(Optimistic Offline Lock) 295 16.1.1 运行机制 296 16.1.2 使用时机 298 16.1.3 例:领域层与数据映射器(Java) 298 16.2 悲观离线锁(Pessimistic Offline Lock) 302 16.2.1 运行机制 303 16.2.2 使用时机 305 16.2.3 例:简单锁管理对象(Java) 305 16.3 粗粒度锁(Coarse-Grained Lock) 310 16.3.1 运行机制 310 16.3.2 使用时机 312 16.3.3 例:共享的乐观离线锁(Java) 312 16.3.4 例:共享的悲观离线锁(Java) 316 16.3.5 例:根对象乐观离线锁(Java) 317 16.4 隐含锁(Implicit Lock) 318 16.4.1 运行机制 318 16.4.2 使用时机 319 16.4.3 例:隐含的悲观离线锁(Java) 319 第17章 会话状态模式 321 17.1 客户会话状态(Client Session State) 321 17.1.1 运行机制 321 17.1.2 使用时机 322 17.2 服务器会话状态(Server Session State) 322 17.2.1 运行机制 322 17.2.2 使用时机 324 17.3 数据库会话状态(Database Session State) 324 17.3.1 运行机制 324 17.3.2 使用时机 325 第18章 基本模式 327 18.1 入口(Gateway) 327 18.1.1 运行机制 327 18.1.2 使用时机 328 18.1.3 例:私有消息服务的入口(Java) 329 18.2 映射器(Mapper) 331 18.2.1 运行机制 332 18.2.2 使用时机 332 18.3 层超类型(Layer Supertype) 332 18.3.1 运行机制 332 18.3.2 使用时机 333 18.3.3 例:领域对象(Java) 333 18.4 分离接口(Separated Interface) 333 18.4.1 运行机制 334 18.4.2 使用时机 335 18.5 注册表(Registry) 335 18.5.1 运行机制 336 18.5.2 使用时机 337 18.5.3 例:单子注册表(Java) 337 18.5.4 例:线程安全的注册表(Java) 338 18.6 值对象(Value Object) 339 18.6.1 运行机制 339 18.6.2 使用时机 340 18.7 货币(Money) 340 18.7.1 运行机制 341 18.7.2 使用时机 342 18.7.3 例:货币类(Java) 343 18.8 特殊情况(Special Case) 346 18.8.1 运行机制 347 18.8.2 使用时机 347 18.8.3 进一步阅读 347 18.8.4 例:一个简单的空对象(C#) 347 18.9 插件(Plugin) 348 18.9.1 运行机制 349 18.9.2 使用时机 350 18.9.3 例:ID生成器(Java) 350 18.10 服务桩(Service Stub) 352 18.10.1 运行机制 352 18.10.2 使用时机 353 18.10.3 例:销售税服务(Java) 353 18.11 记录集(Record Set) 355 18.11.1 运行机制 355 18.11.2 使用时机 356 参考文献 359

2012-07-18

java基础非常典型的面试题目.wps

Java面试必备,题目非常基础,看看你能做对几道? 题目及详解示例 14. public class Test { public static void main(String[] args) { String s ; Test test = new Test(); test.f(s); //error } public void f(String s){ s="1223"; System.out.println(s); } } error: The local variable s may not have been initialized 1.成员变量的初始化 实例变量可以在定义处或者在构造方法中被显式初始化。如果在这两处都没有初始化,那么保留自动初始化时的默认值。final型的变量必须被显式初始化。 静态变量可以在定义处或者在静态代码块中被显式初始化。如果在这两处都没有初始化,那么保留自动初始化的默认值。final型的静态变量必须在定义处或者在静态代码块中被显式初始化。 2. 局部变量的初始化 局部变量必须在使用之前做显式初始化。如果编译器能够确认一个局部变量在使用之前可能没有被初始化,编译器将报错。 如果局部变量没有被初始化,并且在方法中一直没有被使用,编译和运行都会通过。 可以改正为:String s = null ;

2012-07-08

spring-3.2.0.M1-dist.zip

spring-3.2.0.M1-dist.zip 进行spring开发必不可少的文件 该压缩包解压后的目录为: spring-3.2.0.M1-dist | spring-3.2.0.M1 | |----lib 所使用到的jar文件 |----docs 帮助文档 |----schema 结构 包含WEB开发程序所使用的spring jar文件、包含spring开发所使用到的全部jar文件。

2012-06-27

Jquery详解-源码分析.pdf

Jquery源码分析 1、概述 第一篇 Query查询 2、构建jquery对象 2.1 jquery的设计理念 2.2 jquery对象的构建 3、构建jquery的Dom元素 3.1 生成dom元素 3.2 间接引用Dom节点 3.3 采用CSS方式查询Dom节点 4、jquery类数组分析 4.1 类数组构建 4.2 类数组操作 4.3 其他操作 第二篇 manipulate操作 5、DOM元素 5.1 dom元素的属性 5.2 dom元素的CSS 5.3 dom元素的操作 5.4 dom元素的内容 6、Event分析 6.1 event的包裹 6.2 事件的处理 6.3 domReady的处理 7、Ajax分析 7.1 jquery的ajax常用方法 7.2 jquery.ajax 8、FX分析 8.1 fx的常用方法 8.2 Fx的核心源码分析

2012-06-27

标准Java JDK API 帮助文档

标准版Java JDK API 6.0 帮助文档 中文版 chm文档 结构清晰 适合所有Java开发人员 帮助Java开发人员入门和进阶的文档 标准版Java JDK API 6.0 帮助文档 中文版

2012-04-15

掌握Android--Android开发之旅

android开发之旅 Android开发之旅:环境搭建及HelloWorld 1 Android开发之旅:HelloWorld项目的目录结构 2 Android开发之旅:android架构 3 Android开发之旅:应用程序基础及组件 4 Android开发之旅:应用程序基础及组件(续) 5 Android开发之旅:活动与任务 6 Android开发之旅:进程与线程 7 Android开发之旅:组件生命周期(一) 8 Android开发之旅:组件生命周期(二) 9 Android开发之旅:组件生命周期(三) 10 Android 开发之旅:又见Hello World!11 Android 开发之旅:深入分析布局文件&又是“Hello World!” 12 Android 开发之旅:view的几种布局方式及实践 13 Android 开发之旅:短信的收发及在android模拟器之间实践(一) 14 Android 开发之旅:短信的收发及在android模拟器之间实践(二) 15 Android开发之旅 Intents和Intent Filters(理论部分) 16 Android开发之旅 Intents和Intent Filters(实例部分) 17

2012-04-15

android-sdk_r17-windows

android-sdk_r17-windows 下载好Android SDK后,开始安装, Android SDK采用了Java语言,所以需要先安装JDK 5.0及以上版本。直接下载jdk安装文件安装,方便。 Android SDK不用安装,下载后,直接解压即可, 将下载后的SDK的压缩包解压到适当的位置,就这么简单; SDK安装OK。 使用Eclipse进行android应用开发需要给Eclipse装adt插件,这样Eclipse就 可以和android sdk建立连接,可以在Eclipse中启动android模拟器进行程序调试等 ADT插件安装这里不再累赘,插件的安装URL为: https://dl-ssl.google.com/android/eclipse/ 也可以下载adt的zip包安装 安装完插件后,需要做一些简单的配置: 1、在Eclipse中,选择Window > Preference; 2、从左侧的菜单中,选择Android项; 3、设置SDK Location,点Browse选择SDK的安装根目录; 4、OK,完成。

2012-04-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除