自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (28)
  • 论坛 (4)
  • 收藏
  • 关注

转载 web.xml文件中节点的加载顺序

web.xml文件中节点的加载顺序1. 最先加载的是 节点2. 第二加载的是 listener 监听器 节点3. 第三加载的是filter 节点4.最后加载的是 servlet节点首先是,启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点,它用于向 ServletContext 提供键值对,

2017-11-13 17:28:59 242

原创 素数的判断

#include void judgePrime(int);  //函数的声明void main(){ int data;   while(1){  printf("\n请输入一个数:");  scanf("%d",&data);  judgePrime(data); }}void judgePrime(int n){ int d; int k;

2013-07-04 13:08:33 407

转载 Android发送短信

public class MainActivity extends Activity { private EditText phoneNumber; private EditText content ; private Button send;    @Override    protected void onCreate(Bundle savedInstanceState)

2013-06-28 18:53:39 485

转载 JDBC常用接口

JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现。这东西能够实现软件的扩平台性。JDBC是一种底层API,在访问数据库是需要在业务逻辑中直接嵌入SQL语句。JDBC不能够直接访问数据库,必须依赖数据库厂商提供的JDBC驱动程序完成以下三步工作1.同数据

2013-06-26 22:08:13 1267

转载 Java数据库驱动的加载

Class.forName("com.mysql.jdbc.Driver").newInstance();String url = "jdbc:mysql://localhost:3306/test";Class.forName("com.mysql.jdbc.Driver").newInstance();String url = "jdbc:mysql://localhost:3

2013-06-26 21:50:53 426

转载 DTD的定义规则和编写

1.DTD - XML 建立主组件群(blocks)   像....之类的标签是XML和HTML文件的主组件群(blocks)。1.1XML文件的组件群   从DTD来看,所有的XML文件(和HTML文件)都是由接下来的简单组件群组成的:Elements元素;Attributes属性;Entities实体;PCDATA被解析的字符数据(Parsed Characte

2013-06-23 22:31:41 641

原创 DTD的定义

]> laizhibing J2EE hello ,World

2013-06-23 22:18:23 488 1

原创 FileInputSteam和FileOutputStream

fis = new FileInputStream("records.txt");    如果未找到文件,就抛出异常 fos = new FileOutputStream("backup.txt",true);  //true表示追加    ,如果未找到该文件就创建该文件。

2013-06-23 02:25:47 961

原创 RandomAccessFile的使用方法

import java.io.FileNotFoundException;import java.io.RandomAccessFile;public class TestRandomAccessFile { public static void main(String[] args) throws FileNotFoundException {  try{   RandomA

2013-06-23 01:24:24 597

转载 Linux中JDK1.6的安装和配置方法

一、安装创建安装目录,在/usr/java下建立安装路径,并将文件考到该路径下: # mkdir /usr/java 1、jdk-6u11-linux-i586.bin 这个是自解压的文件,在linux上安装如下: # chmod 755 jdk-6u11-linux-i586.bin # ./jdk-6u11-linux-i586.bin (注意,这个步骤一定

2013-06-22 21:27:36 317

转载 struts2输入校验完整解析222222

输入校验分为客户校验和服务器校验。客户校验主要是通过JAVASCRIPT 代码完成。服务器端校验是通过应用编程实现。输入校验是表现层数据处理的一种,应该由MVC 框架提供。Struts2 提供了内置校验器,应用无需书写任何校验代码,即可完成绝大部分输入校验。如果校验很负责,也可以通过 validate 方法来完成自定义校验。8.1 验证实例1) yan.jsp  s:form ac

2013-06-22 18:27:06 515

转载 strut2输入校验框架的一个例子

struts2输入校验有2中方法。校验方式有2中:对所有方法校验,对某个方法校验1.采用手工编写代码实现。2.基于XML配置方式实现。·采用手工编写代码校验Action中的所有方法这种方式需要在Action类中重写validate()方法,validate()方法会校验action中所有与execute方法签名相同的方法。当某个数据校验失败时,我们应该调用addFieldError

2013-06-22 18:19:26 504

转载 Struts2输入校验(二)----验证框架

一 文件名约定:  1) 验证XML的文件名: Action类名-validation.xml , 并与相关的Action类放在一起.  2) 当一个Action中有多个业务方法时 : Action 类 名-映射名-validation.xml  什么是映射名: ,name属性的值:login就是映射名, 千万注意,很多人写错  例子:  URL是:http://localho

2013-06-22 18:13:31 378

转载 Struts2的 输入校验 .

信息基本校验对于每个web框架输入输入校验都是一个重要的部分,对用户输入的数据进行有效的过滤,是保持系统安全的一方面措施.Struts2也不例外,同样也提供了更简易的输入校验机制,Struts2提供的输入校验有两种方式,一种是硬编码的方式,一种是采用Struts2的输入校验框架进行校验,即采用XML配置的方式进行校验。下面我们看一上采集硬编码的方式如果校验:举例说明:需要对一个用户注册

2013-06-22 18:10:52 536

转载 Strus2标签库属性值的%和#号的关系、命名对象 .

1、在Struts2中,根对象就是ValueStack,在Struts2的任何流程当中,ValueStack     中的最顶层对象一定是Action对象2、parameters   #parameters.username     request 使用方法:#request.username 访问往request中set的 (request.setAtribute)     se

2013-06-22 18:09:25 463

转载 Linux安装tool方法

如下是在虚拟机中安装点击VM-Install VMware Tools在桌面上出现一张光盘包含3个文件,分别为manifest.txt;Vmware-tools-版本号.rpm和Vmware-tools-版本号.tar.gz在此安装tar.gz包(1)将Vmware-tools-版本号.tar.gz拷贝至tmp目录下cp Vmware-tools-版本号.tar.gz /tmp

2013-06-22 12:05:31 612

原创 Struts2的类型转换的一个例子

struts.xml "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">      /result.jsp   login.jsp...........用户名和密码以分

2013-06-22 11:28:38 398

转载 计算机科学中最重要的32个算法

奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径

2013-06-22 01:43:42 270

转载 联合使用Spinner和setDropDownViewResource

layout文件中的main.xmlhttp://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"        >

2013-06-19 10:32:21 644

转载 切换卡

http://schemas.android.com/apk/res/android"    android:id="@android:id/tabhost"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >     android:orientation="v

2013-06-19 09:41:24 452

转载 ProgressDialog的使用

http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"    >            android:layout_width="fill

2013-06-19 08:44:15 415

转载 Android NOtification 使用(震动 闪屏 铃声) .

一、 Notification 简介 在 android 系统中,在应用程序可能会遇到几种情况需要通知用户,有的需要用户回应,有的则不需要,例如: * 当保存文件等事件完成,应该会出现一个小的消息,以确认保存成功。 * 如果应用程序在后台运行,需要用户的注意,应用程序应该创建一个通知,允许用户在他或她的回应提供便利 * 如果应用程序正在执行的工作,用户必须等待(如装载文件),应用程

2013-06-19 07:56:24 547

转载 Notificaton的使用

public class ActivityMainNotification extends Activity { private static int NOTIFICATIONS_ID = R.layout.notification; private NotificationManager mNotificatonManager;  @Override protected vo

2013-06-19 07:51:48 442

转载 Android 中的Toast的应用

Toast用于提醒public class ToastActivity extends Activity { private EditText editText; private Button btn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCr

2013-06-18 09:30:21 362

转载 Linux下Jdk的配置

纯java开发的软件在linux下面也可以应用自如。那么首先就需要配置好linux下的java环境,具体说来,就是配置jdk环境变量。介绍在linux下配置jdk环境变量的几种常用方法。首先在linux下安装jdk,如果出现提示权限不够(且root下也提示权限不够),可用#ls -l filename命令查看一下,如果显示类似如:-rw-rw-rw- 1 root root …

2013-06-17 10:11:20 368

转载 在Linux下安装 vmware-tool

如下是在虚拟机中安装点击VM-Install VMware Tools在桌面上出现一张光盘包含3个文件,分别为manifest.txt;Vmware-tools-版本号.rpm和Vmware-tools-版本号.tar.gz在此安装tar.gz包(1)将Vmware-tools-版本号.tar.gz拷贝至tmp目录下cp Vmware-tools-版本号.tar.gz /tmp

2013-06-17 09:19:31 452

转载 Dialog使用2

public class DialogActivity extends Activity  implements OnClickListener{ private Button dialog = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCrea

2013-06-16 19:35:42 403

转载 Dialog的使用一

public class DialogActivity extends Activity  implements OnClickListener{ private Button dialog = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCrea

2013-06-16 16:52:23 399

转载 7种形式的Android Dialog使用举例

在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助。1.该效果是当按返回按钮时弹出一个提示,来确保无误

2013-06-16 16:00:10 405

转载 Android中如何获取手机屏幕大小 .

我们可以通过使用类DisplayMetrics来获取手机屏幕的分辨率大小。DisplayMetrics类是获取手机屏幕各种属性的关键类。下面通过例子来展示如何获取手机屏幕的分辨率。      在布局文件main.xml中添加一个TextView对象,一个Button对象。其中TextView对象用来显示获得的分辨率值,Button对象是当点击时获取分辨率。main.xml的代码如下:

2013-06-16 15:20:27 520

转载 简约而不简单——Android SimpleAdapter

列表(ListView)、表格(GridView),这在手机应用上面肯定是少不了的,怎样实现比较复杂一点的界面呢,先看一下我的效果图。这样布局的情况是最基本的,也是最常用的,网上关于这样的布局有多种版本的实现方法,但是有很多需要自己实现Adapter,那样子是比较复杂而且没有必要的,因为我们有简约而不简单的SimpleAdapter。1. ListViewSimpleA

2013-06-16 14:42:43 353

转载 Android ArrayAdapter 详解 .

本文主要讲解ArrayAdapter的创建方法,我把ArrayAdapter分为三种:简单的、样式丰富的但内容简单的、内容丰富的。默认的,ArrayAdapter期望接受的样式文件里只含有一个textview,然后它把接受到的数据toString后(即调用数据对象的toString方法)展示在textview里。一、简单的。这样的列表的每一行都只有一行文字。[java]

2013-06-16 14:18:07 383

转载 Menu的使用

public class MenuActivity extends Activity { private static final int ITEM0 = Menu.FIRST; private static final int ITEM1 = Menu.FIRST+1; private Button button1 = null; private Button button2 =

2013-06-16 14:03:49 412

转载 LayoutInflater作用及使用

作用: 1、对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 2、对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素. 方法:    Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setCo

2013-06-16 11:00:01 325

转载 使用标签控件Tab

public class TabDemoActivity extends TabActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setTitle("TabDemoActiv

2013-06-16 10:55:53 411

转载 TabHost小结

通过APIdemo中  TabHost的使用实例,基本上可以分为两种使用情况。1.LayoutInflater.from(this).inflate(R.layout.tabs1, tabHost.getTabContentView(), true);        tabHost.addTab(tabHost.newTabSpec("tab1")

2013-06-16 10:47:14 385

转载 如何使用DEMON生成镜像文件

如何使用DEMON虚拟光驱如何使用虚拟光驱-daemon_tools2007-06-02 08:34 如何使用虚拟光驱-daemon_tools呢?电脑中很多地方都要使用虚拟光驱,但虚拟光驱的使用对陌生人来说是有点困难,其实主要是不知道方法,实际并不难,现在把流行的虚拟光daemon_tools的使用方法介绍给大家。Daemon tools是一款免费软件,最新版本4.03,推荐大家使用3.

2013-06-16 10:20:12 1161

转载 Android开发学习笔记:浅谈GridView

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。GridView常用的XML属性: 属性名称描述android:columnWidth设置列的宽度。android

2013-06-15 10:27:55 468

原创 ImageView和Gallery的使用

public class ImageSwitcherAndGalleryActivity extends Activity implements  OnItemSelectedListener{  private ImageSwitcher is ; // 当前显示的图片索引       private int index = 0;      // 图片数组

2013-06-15 09:45:34 452

转载 ImageButton的使用

http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingB

2013-06-15 09:04:31 406

ibatis实战(高清完整版).pdf

第一部分 介绍 第1章 iBATIS的理念  1.1 一个结合了所有优秀思想的混合型解决方案  1.2 iBATIS适合应用在何处  1.3 使用不同类型的数据库  1.4 iBATIS如何解决数据库的常见问题  1.5 小结  第2章 iBATIS是什么  2.1 映射SQL语句  2.2 iBATIS如何工作 2.3 为何使用iBATIS  2.4 何时不该使用iBATIS 2.5 5分钟内用iBATIS创建应用程序 2.6 iBATIS未来的发展方向 2.7 小结 第二部分 iBATIS基础知识 第3章 安装和配置iBATIS 3.1 获得一份iBATIS发布 3.2 发布中包含的内容 3.3 依赖性  3.4 将iBATIS添加到应用程序中 3.5 iBATIS和JDBC 3.6 配置iBATIS(续) 3.7 小结 第4章 使用已映射语句 4.1 从基础开始

2014-06-02

MySQL技术内幕(第4版)--高清完整版.pdf

目录 -6 第一部分 MySQL基础知识 1 第1章 MySQL和SQL 入门 2 1.1 MySQL的用途 2 1.2 示例数据库 4 1.2.1 “美国历史研究会”场景 5 1.2.2 考试记分项目 7 1.2.3 关于示例数据库的说明 7 1.3 数据库基本术语 7 1.3.1 数据库的组织结构 8 1.3.2 数据库查询语言 10 1.3.3 MySQL的体系结构 10 1.4 MySQL 11 1.4.1 如何获得示例数据库 12 1.4.2 最低配置要求 12 1.4.3 如何建立和断开与服务器的连接 13 1.4.4 执行SQL语句 15 1.4.5 创建数据库 17 1.4.6 创建数据表 18 1.4.7 如何添加新的数据行 33 1.4.8 将sampdb数据库重设为原来的状态 36 1.4.9 检索信息 37 1.4.10 如何删除或更新现有的数据行 64 1.5 与客户程序MySQL交互的技巧 66 1.5.1 简化连接过程 67 1.5.2 减少输入查询命令时的打字动作 69 1.6 后面各章的学习计划 72 第2章 使用SQL管理数据 73 2.1 MySQL服务器的SQL模式 73 2.2 MySQL标识符语法和命名规则 74 2.3 SQL语句中的字母大小写问题  77 2.4 字符集支持 78 2.4.1 字符集的设定 79 2.4.2 确定可供选用的字符集和当前设置 80 2.4.3  Unicode支持 81 2.5  数据库的选定、创建、删除和变更 82 2.5.1 数据库的选定 82 2.5.2 数据库的创建 82 2.5.3 数据库的删除 83 2.5.4 数据库的变更 83 2.6 数据表的创建、删除、索引和变更 84 2.6.1 存储引擎的特征 84 2.6.2 创建数据表 90 2.6.3 删除数据表 101 2.6.4 为数据表编制索引 101 2.6.5 改变数据表的结构 106 2.7 获取数据库的元数据 108 2.7.1 用SHOW语句获取元数据 109 2.7.2 从INFORMATION_SCHEMA数据库获取元数据 110 2.7.3 从命令行获取元数据 112 2.8 利用联结操作对多个数据表进行检索 113 2.8.1 内联结 114 2.8.2 避免歧义:如何在联结操作中给出数据列的名字 116 2.8.3 左联结和右联结(外联结) 116 2.9 用子查询进行多数据表检索 120 2.9.1 子查询与关系比较操作符 121 2.9.2 IN和NOT IN子查询 122 2.9.3 ALL、ANY和SOME子查询 123 2.9.4 EXISTS和NOT EXISTS子查询 124 2.9.5 与主查询相关的子查询 124 2.9.6 FROM子句中的子查询 124 2.9.7 把子查询改写为联结查询 125 2.10 用UNION语句进行多数据表检索 126 2.11 使用视图 129 2.12 涉及多个数据表的删除和更新操作 133 2.13 事务处理 134 2.13.1 利用事务来保证语句的安全执行 135 2.13.2 使用事务保存点 139 2.13.3 事务的隔离性 139 2.13.4 事务问题的非事务解决方案 140 2.14 外键和引用完整性 143 2.14.1 外键的创建和使用 144 2.14.2 如果不能使用外键该怎么办 149 2.15 使用FULLTEXT索引 150 2.15.1 全文搜索:自然语言模式 151 2.15.2 全文搜索:布尔模式 153 2.15.3 全文搜索:查询扩展模式 154 2.15.4 配置全文搜索引擎 155 第3章 数据类型 156 3.1 数据值的类别 157 3.1.1 数值 157 3.1.2 字符串值 158 3.1.3 日期/时间值 166 3.1.4 坐标值 166 3.1.5 布尔值 166 3.1.6 空值NULL 166 3.2 MySQL的数据类型 166 3.2.1 数据类型概述 167 3.2.2 数据表中的特殊列类型 168 3.2.3 指定列默认值 169 3.2.4 数值数据类型 170 3.2.5 字符串数据类型 176 3.2.6 日期/时间数据类型 189 3.2.7 空间数据类型 196 3.3 MySQL如何处理非法数据值 197 3.4 序列 199 3.4.1 通用AUTO_INCREMENT属性 199 3.4.2 与特定存储引擎有关的AUTO_INCREMENT属性 201 3.4.3 使用AUTO_INCREMENT数据列时的要点 203 3.4.4 使用AUTO_INCREMENT机制时的注意事项 204 3.4.5 如何在不使用AUTO_INCREMENT的情况下生成序列编号 205 3.5 表达式求值和类型转换 207 3.5.1 表达式的编写 207 3.5.2 类型转换 213 3.6 数据类型的选用 220 3.6.1 数据列将容纳什么样的数据 222 3.6.2 数据是否都在某个特定的区间内 224 3.6.3 与挑选数据类型有关的问题是相互影响的 225 第4章 存储程序 227 4.1 复合语句和语句分隔符 228 4.2 存储函数和存储过程 229 4.2.1 存储函数和存储过程的权限 231 4.2.2 存储过程的参数类型 232 4.3 触发器 233 4.4 事件 234 4.5 存储程序和视图的安全性 236 第5章 查询优化 237 5.1 使用索引 237 5.1.1 索引的优点 238 5.1.2 索引的缺点 240 5.1.3 挑选索引 241 5.2 MySQL的查询优化程序 243 5.2.1 查询优化器的工作原理 244 5.2.2 用EXPLAIN 语句检查优化器操作 247 5.3 为提高查询效率而挑选数据类型 252 5.4 有效加载数据 255 5.5 调度和锁定问题 258 5.5.1 改变语句的执行优先级 259 5.5.2 使用延迟插入 259 5.5.3 使用并发插入 260 5.5.4 锁定级别与并发性 260 5.6 系统管理员所完成的优化 261 5.6.1 使用MyISAM键缓存 263 5.6.2 使用查询缓存 264 5.6.3 硬件优化 265 第二部 分 MySQL的编程接口 267 第6章 MySQL程序设计 268 6.1 为什么要自己编写MySQL程序 268 6.2 MySQL应用程序可用的API 271 6.2.1 C API 272 6.2.2 Perl DBI API 272 6.2.3 PHP API 274 6.3 如何挑选API 275 6.3.1 执行环境 275 6.3.2 性能 276 6.3.3 开发时间 278 6.3.4 可移植性 280 第7章 用C语言编写MySQL程序 281 7.1 编译和链接客户程序 282 7.2 连接到服务器 284 7.3 出错消息和命令行选项的处理 287 7.3.1 出错检查 287 7.3.2 实时获取连接参数 290 7.3.3 给MySQL客户程序增加选项处理功能 301 7.4 处理SQL语句 305 7.4.1 处理修改数据行的语句 306 7.4.2 处理有结果集的语句 307 7.4.3 一个通用的语句处理程序 310 7.4.4 另一种语句处理方案 311 7.4.5 mysql_store_result()与mysql_use_result()函数的对比 312 7.4.6 使用结果集元数据 314 7.4.7 对特殊字符和二进制数据进行编码 319 7.5 交互式语句执行程序 322 7.6 怎样编写具备SSL支持的客户程序 323 7.7 嵌入式服务器库的使用 327 7.7.1 编写内建了服务器的应用程序 328 7.7.2 生成应用程序可执行二进制文件 330 7.8 一次执行多条语句 331 7.9 使用服务器端预处理语句 333 第8章 使用Perl DBI编写MySQL程序 343 8.1 Perl脚本的特点 343 8.2 Perl DBI概述 344 8.2.1 DBI数据类型 344 8.2.2 一个简单的DBI脚本 345 8.2.3 出错处理 349 8.2.4 处理修改数据行的语句 352 8.2.5 处理返回结果集的语句 353 8.2.6 在语句字符串引用特殊字符 361 8.2.7 占位符与预处理语句 363 8.2.8 把查询结果绑定到脚本变量 365 8.2.9 设定连接参数 366 8.2.10 调试 369 8.2.11 使用结果集的元数据 372 8.2.12 实现事务处理 376 8.3 DBI脚本实战 377 8.3.1 生成美国历史研究会会员名录 377 8.3.2 发出会费催交通知 382 8.3.3 会员记录项的编辑修改 387 8.3.4 寻找志趣相同的会员 392 8.3.5 把会员名录放到网上 393 8.4 用DBI开发Web应用 396 8.4.1 配置Apache服务器使用CGI脚本 397 8.4.2 CGI.pm模块简介 398 8.4.3 从Web脚本连接MySQL服务器 404 8.4.4 一个基于Web的数据库浏览器 406 8.4.5 考试记分项目:考试分数浏览器 410 8.4.6 美国历史研究会:寻找志趣相同的会员 413 第9章 用PHP编写MySQL程序 418 9.1 PHP概述 419 9.1.1 一个简单的PHP脚本 421 9.1.2 利用PHP库文件实现代码封装 424 9.1.3 简单的数据检索页面 428 9.1.4 处理语句结果 431 9.1.5 测试查询结果里的NULL值 434 9.1.6 使用预处理语句 434 9.1.7 利用占位符来处理带引号的数据值 435 9.1.8 出错处理 437 9.2 PHP脚本实战 438 9.2.1 考试分数的在线录入 438 9.2.2 创建一个交互式在线测验 449 9.2.3 美国历史研究会:会员个人资料的在线修改 454 第三部分 MySQL的系统管理 461 第10章 MySQL系统管理简介 462 10.1 MySQL组件 462 10.2 常规管理 463 10.3 访问控制与安全性 464 10.4 数据库的维护、备份和复制 464 第11章 MySQL的数据目录 466 11.1 数据目录的位置 466 11.2 数据目录的层次结构 468 11.2.1 MySQL服务器如何提供对数据的访问 468 11.2.2 MySQL数据库在文件系统里是如何表示的 469 11.2.3 数据表在文件系统里的表示方式 470 11.2.4 视图和触发器在文件系统里的表示方式 471 11.2.5 SQL语句与数据表文件操作的对应关系 472 11.2.6 操作系统对数据库对象的命名规则有何影响 472 11.2.7 影响数据表最大长度的因素 474 11.2.8 数据目录的结构对系统性能的影响 475 11.2.9 MySQL状态文件和日志文件 477 11.3 重新安置数据目录的内容 479 11.3.1 重新安置工作的具体方法 479 11.3.2 重新安置注意事项 480 11.3.3 评估重新安置的效果 480 11.3.4 重新安置整个数据目录 481 11.3.5 重新安置各个数据库 481 11.3.6 重新安置各个数据表 482 11.3.7 重新安置InnoDB共享表空间 482 11.3.8 重新安置状态文件和日志文件 482 第12章 MySQL数据库系统的日常管理 484 12.1 安装MySQL软件后的初始安防设置 484 12.1.1 为初始MySQL账户设置口令 485 12.1.2 为第二个服务器设置口令 489 12.2 安排MySQL服务器的启动和关停 489 12.2.1 在Unix上运行MySQL服务器 489 12.2.2 在Windows上运行MySQL服务器 493 12.2.3 指定服务器启动选项 495 12.2.4 关闭服务器 497 12.2.5 当你未能连接至服务器时重新获得服务器的控制 497 12.3 对MySQL服务器的连接监听情况进行控制 499 12.4 管理MySQL用户账户 500 12.4.1 高级MySQL账户管理操作 501 12.4.2 对账户授权 503 12.4.3 查看账户的权限 510 12.4.4 撤销权限和删除用户 510 12.4.5 改变口令或重新设置丢失的口令 511 12.5 维护日志文件 512 12.5.1 出错日志 514 12.5.2 常规查询日志 515 12.5.3 慢查询日志 515 12.5.4 二进制日志和二进制日志索引文件 516 12.5.5 中继日志和中继日志索引文件 517 12.5.6 日志数据表的使用 518 12.5.7 日志管理 519 12.6 调整MySQL服务器 524 12.6.1 查看和设置系统变量的值 525 12.6.2 通用型系统变量 528 12.6.3 查看状态变量的值 530 12.7 存储引擎的配置 531 12.7.1 为MySQL服务器挑选存储引擎 531 12.7.2 配置MyISAM存储引擎 533 12.7.3 配置InnoDB存储引擎 536 12.7.4 配置Falcon存储引擎 541 12.8 启用或者禁用LOAD DATA语句的LOCAL能力 541 12.9 国际化和本地化问题 542 12.9.1 设置MySQL服务器的地理时区 542 12.9.2 选择用来显示出错信息的语言 544 12.9.3 配置MySQL服务器的字符集支持 544 12.10 运行多个服务器 545 12.10.1 运行多个服务器的问题 545 12.10.2 配置和编译不同的服务器 547 12.10.3 指定启动选项的决策 548 12.10.4 用于服务器管理的mysqld_multi 549 12.10.5 在Windows系统上运行多个MySQL服务器 550 12.11 升 级MySQL 553 第13章 访问控件和安全 555 13.1 内部安全性:防止未经授权的文件系统访问 555 13.1.1 如何偷取数据 556 13.1.2 保护你的MySQL安装 557 13.2 外部安全性:防止未经授权的网络访问 562 13.2.1 MySQL权限表的结构和内容 562 13.2.2 服务器如何控制客户访问 568 13.2.3 一个关于权限的难题 572 13.2.4 应该回避的权限数据表风险 575 13.3 加密连接的建立 577 第14章 MySQL数据库的维护、备份和复制 582 14.1 数据库预防性维护工作的基本原则 582 14.2  在MySQL服务器运行时维护数据库 583 14.2.1 以只读方式或读/写方式锁定一个或多个数据表 584 14.2.2 以只读方式锁定所有的数据库 586 14.3 预防性维护 587 14.3.1 充分利用MySQL服务器的自动恢复能力 587 14.3.2 定期进行预防性维护 588 14.4 制作数据库备份 589 14.4.1 用mysqldump程序制作文本备份 590 14.4.2 制作二进制数据库备份 593 14.4.3 备份InnoDB或Faclcon数据表 595 14.5 把数据库复制到另一个服务器 596 14.5.1 使用一个备份文件来复制数据库 596 14.5.2 把数据库从一个服务器复制到另一个 597 14.6 数据表的检查和修复 598 14.6.1 用服务器检查和修复数据表 599 14.6.2 用mysqlcheck程序检查和修复数据表 599 14.6.3 用myisamchk程序检查和修复数据表 600 14.7 使用备份进行数据恢复  603 14.7.1 恢复整个数据库 603 14.7.2 恢复数据表 604 14.7.3 重新执行二进制日志文件里的语句 605 14.7.4 InnoDB存储引擎的自动恢复功能 606 14.8 设置复制服务器 607 14.8.1 复制机制的工作原理 607 14.8.2 建立主从复制关系 609 14.8.3 二进制日志的格式 611 14.8.4 使用复制机制制作备份 612 第四部分 附录 613 附录A 获得并安装有关软件 614 附录B 数据类型指南 630 附录C 操作符与函数用法指南 643 附录D 系统变量、状态变量和用户变量使用指南 705 附录E SQL语法指南 746 附录F MySQL程序指南 823 附录G API指南 887 附录H Perl DBI API指南 930 附录I PHP API指南 953

2014-06-02

[MySQL技术内幕:SQL编程].姜承尧.高清扫描版.pdf

MySQL技术内幕:SQL编程 《MySQL技术内幕:SQL编程》是畅销书《MySQL技术内幕:InnoDB存储引擎》的姊妹篇,深刻揭示了MySQL中SQL编程的精髓与奥秘,能为开发者和DBA们利用SQL语言解决各种与开发和管理相关的MySQL难题提供很好的指导和帮助。   《MySQL技术内幕:SQL编程》一共10章,全面探讨了MySQL中SQL编程的各种方法、技巧与最佳实践。第1章首先介绍了SQL编程的概念、数据库的应用类型以及SQL查询分析器,然后介绍了SQL编程的三个阶段,希望读者通过本书的学习能达到最后的融合阶段。第2章全面讲解了MySQL中的各种数据类型和与之相对应的各种编程问题。第3章深入探讨了逻辑查询与物理查询的原理与方法。第4章的主题是子查询,不仅讲解了各种常用的子查询方法及其优化,而且还讲解了MariaDB对子查询的优化。第5章首先详细地分析了MySQL中的各种联接及其内部的实现算法,以及MariaDB数据库中引入的HashJoin,然后针对关于集合的各种操作给出了解决方案。第6章分享了聚合和旋转操作的方法与技巧,并对一些经典的常见问题给出了解决方案。第7章深入阐述了游标的使用,重点在于如何通过正确地使用游标来提高SQL编程的效率。第8章讲解了关于事务的各种编程技巧,同时对事务的分类进行了详细阐述。第9章详细分析了各种索引的内部实现,探讨了如何使用索引来提升查询效率。第10章介绍了分区的方法与技巧,阐明了如何通过分区来进行SQL编程。   无论你是开发人员还是DBA,无论你是需要一本SQL查询手册还是希望系统深入地学习SQL编程,本书都会是不错的选择。

2014-06-02

[Spring技术内幕:深入解析Spring架构与设计原理(第2版)高清扫描版.pdf

本书是国内唯一一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔,Java开发者社区和Spring开发者社区联袂推荐。本书第1版不仅在内容上获得了读者的广泛好评,而且在销量上也摘取了同类书的桂冠,曾经一度掀起Java类图书的销售热潮。第2版不仅继承了第1版在内容组织和写作方式上的优点,而且还根据广大读者的反馈改进了若干细节上的不足。更为重要的是,结合Spring的最新版本对过时的内容进行了更新,并增加了大量新内容,使本书更趋近于完美。书从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的优秀架构和设计思想,还能从Spring优雅的实现源码中一窥Java语言的精髓。本书在开篇之前对Spring的设计理念和整体架构进行了全面的介绍,能让读者从宏观上厘清Spring各个功能模块之间的关系;第一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从本书中受益。

2014-06-01

Spring 3.x企业应用开发实战.pdf

揭示内幕、深入浅出:笔者对Spring的源码进行了彻底的分析,深刻揭示了Spring框架的技术内幕,让读者知其然,更知其所以然。Spring中许多设计经验、技巧、模式具有很高的借鉴性,在透彻学习Spring体系结构的同时,读者可以直接将这些方法引借到具体的应用开发中。 同步更新、与时俱进:虽然在2009年9月就发布Spring 3.0第一个候选版本,后来又发布了多个RC版本,并最终于2011年10月发布了Spring 3.1的正式版本。新功能的添加以及旧功能的调整从来就没有停止过。笔者在本书写作过程中时刻关注Spring新版本功能的变化,并及时调整全书内容与其同步,保证全书内容与时俱进。 突出重点,淡化边缘:虽然全书洋洋洒洒近800页,便本书没有片面追求内容的面面俱到,相反,我们特别注意内容的剪裁和取舍。对于实用性强的知识点深入分析、深度挖掘,而对于不常使用的知识点到为止,甚至不纳入本书的范围。举例来说,我们对使用 Spring-WS开发基于Spring的Web Service应用、OXM、Spring MVC等这些实用性强的技术都进行了深入的分析,而对如何集成EJB、JMX、JCA等这些不常使用的功能完全不涉及。很好地做到了实用性和深入性二者的统一。 理论透彻、面向实践:本书在透彻分析原理、讲解技术知识点的同时,特别注意与实际应用的结合,笔者将自身丰富的实战经验糅合到全书的相关知识点上,很好地做到了知识讲解和实践经验的结合。让读者在掌握纯技术知识的同时,能够对如何活用技术做到胸有成竹。如笔者在第13章讲解任务调度的内容时,专门辟出13.6小节讲解实际应用中任务调度的使用经验;在第18章中讲述使用JavaMail发送电子邮件时,专门通过18.4小节讲述了在实际应用中发送邮件的各种注意事项。此外,我们还适时提供了“实战经验”的插文,它们在不影响上下文连贯性的同时让读者学习到了相关技术的实战经验。诸如此类以实际应用为导向的内容贯穿全书,这是本书区别于其他书籍特色之一。 代码简洁、图例丰富:全书的代码在排版布局以及内容的剪裁上颇费心思,实例代码重点关注当前知识点涉及的内容,弱化边缘代码,并采用特殊的排版方式适时添加简明扼要的注释,方便程序代码的阅读和重点内容的把握。全书拥有大量精美的图表,这些图表很好地解构了上下文中一些难点的知识,大大提高了阅读性,降低了理解的难度。 注重趣味、轻松阅读:由于技术书籍的严谨性、知识性的特点,阅读技术书籍往往是枯燥乏味的,更遑论趣味性。笔者对此深有感触,为寻求一些突破,我们在全书大部分章节都精心设计一个“轻松一刻”,它们和上下文内容存在某种程度的关联性,但其本身是一段趣味性的短文,它们在增强全书趣味性的同时,还为读者提供另外一个思考问题的角度。 相关知识、一网打尽:Spring不但本身涉及众多Java技术,其集成的第三方技术本身也涵盖了丰富的知识。我们在介绍Spring相关技术时,都会简明扼要地讲解相关联的基础知识,这包括JDK 5.0的新知识和被集成技术的知识,准备好知识背景,而不是完全脱离背景知识的情况下孤立讲解Spring的知识。

2014-06-01

Objective-C程序设计(第4版).pdf

第1章 Objective-C语言概述 1.1 Mac操作系统和Objective-C语言 2 1.2 Objective-C的开发工具 2 1.3 Objective-C程序简介 4 1.4 面向对象编程 8 1.4.1 面向对象的分析 8 1.4.2 面向对象的特征 9 1.5 Objective-C程序结构 11 1.5.1 类接口(@interface) 12 1.5.2 类实现(@implementation) 14 1.5.3 应用程序 15 1.5.4 Objective-C的方法调用 17 1.5.5 输入和输出数据 18 1.5.6 变量和标识符 19 1.5.7 指令符(@) 21 1.5.8 语句 22 第2章 数据类型和运算符 2.1 简单数据类型 24 2.1.1 整型 24 2.1.2 实型 27 2.1.3 字符型 30 2.1.4 字符串 33 2.1.5 id类型 33 2.1.6 类型转换 37 2.1.7 枚举类型 39 2.1.8 typedef 40 2.2 Objective-C的其他数据类型 42 2.2.1 BOOL 42 2.2.2 SEL 44 2.2.3 Class 46 2.2.4 nil和Nil 47 2.3 运算符和表达式 49 2.3.1 Objective-C运算符 49 2.3.2 表达式和运算优先级 49 2.3.3 算术运算符 51 2.3.4 算术表达式 53 2.3.5 强制类型转换运算符 55 2.3.6 自增、自减运算符 56 2.3.7 位运算符 58 2.3.8 赋值运算符 63 2.3.9 关系运算符 64 2.3.10 布尔逻辑运算符 65 第3章 程序控制语句 3.1 条件语句 68 3.1.1 if语句 68 3.1.2 if语句的嵌套 72 3.1.3 switch语句 74 3.1.4 三目条件运算符 76 3.1.5 布尔表达式 77 3.2 循环语句 78 3.2.1 while语句 78 3.2.2 do-while语句 80 3.2.3 for语句 81 3.2.4 for循环多变量的处理 84 3.2.5 嵌套循环 85 3.2.6 几种循环的比较 86 3.3 跳转语句 86 3.3.1 break语句 86 3.3.2 continue 语句 87 3.3.3 return语句 88 3.4 综合实例 89 第4章 类 4.1 类的通用格式 92 4.2 声明对象和对象初始化 97 4.3 变量 99 4.3.1 局部变量、全局变量和实例变量 100 4.3.2 理解static 102 4.3.3 变量的存储类别 104 4.4 @property和 @synthesize 106 4.5 多输入参数的方法 111 4.6 协议(protocol) 113 4.7 异常处理 116 4.8 调用nil对象的方法 120 4.9 指针 120 4.9.1 指针的类型和指针所指向的类型 121 4.9.2 指针的值 121 4.9.3 对象变量实际上是指针 122 4.10 线程 123 4.11 Singleton(单例模式) 124 第5章 继承 5.1 继承 127 5.2 方法重写 130 5.3 方法重载 132 5.4 使用super 135 5.5 抽象类 138 5.6 动态方法调用 139 5.7 访问控制 141 5.8 Category(类别) 144 第6章 编译预处理 6.1 宏定义 149 6.1.1 无参宏定义 149 6.1.2 带参宏定义 151 6.1.3 #运算符 153 6.2 import 154 6.3 条件编译 154 6.3.1 #ifdef、#endif、#else和#ifndef语句 155 6.3.2 #if和#elif预处理程序语句 156 6.3.3 #undef 156 第7章 基础框架(Foundation Framework) 7.1 数字对象(NSNumber) 164 7.1.1 数字对象的使用 164 7.1.2 NSNumber方法总结 166 7.2 字符串对象 167 7.2.1 不可修改字符串(NSString) 168 7.2.2 可修改的字符串(NSMutableString) 174 7.3 数组对象 179 7.3.1 不可变数组(NSArray) 179 7.3.2 可修改数组(NSMutableArray) 181 7.4 字典对象(NSDictionary和NSMutableDictionary) 185 7.5 集合对象(NSSet) 188 7.6 枚举访问 191 第8章 文件操作 8.1 管理文件(NSFileManager) 195 8.2 管理目录 198 8.3 操作文件数据(NSData) 201 8.4 操作目录总结 203 8.5 文件的读写(NSFileHandle) 206 8.6 NSProcessInfo 208 8.6.1 NSProcessInfo方法 208 8.6.2 NSProcessInfo实例 209 8.6.3 NSArray和NSProcessInfo综合例子 210 第9章 内存管理 9.1 基本的内存管理 214 9.1.1 申请内存(alloc) 214 9.1.2 释放内存(dealloc) 215 9.2 引用记数(retainCount) 215 9.2.1 字符串的处理 218 9.2.2 类成员变量的处理 221 9.3 自动释放(autorelease)池 227 9.4 内存泄露 229 9.5 垃圾回收(Garbage-collection) 230 9.6 copy、nonatomic 230 第10章 数据保存 10.1 XML属性列表 233 10.2 NSKeyedArchiver 236 10.3 保存多个对象到一个文件 239 10.4 Objective-C综合实例 243 第11章 AppKit和UIKit 11.1 图形化用户界面和Cocoa 253 11.2 AppKit 254 11.3 UIKit 257 11.4 多线程(NSOperation和NSOperationQueue) 258 第12章 iPhone应用程序 12.1 创建Xcode项目 265 12.2 在iPhone模拟器上运行 268 12.3 iPhone项目结构 268 12.4 在界面创建器(Interface Builder)上设计界面 271 12.5 iPhone开发的更多内容 284 第13章 iPad编程 13.1 iPad介绍 286 13.2 iPad与iPhone开发的对比 286 13.3 iPad应用程序开发实例 287 13.4 委托(Delegate) 297 13.5 NSError 302 第14章 高级话题 14.1 Objective-C++ 306 14.1.1 混合语言 306 14.1.2 C++词汇歧义和冲突 308 14.1.3 一些限制 309 14.2 访问MySQL数据库 310

2014-06-01

Hibernate程序高手秘笈.pdf

前言 1 第一章 安装和设定 7 取得ant发行包 7 取得hsqldb数据库引擎 9 取得hibernate 10 建立项目目录层次 11 第二章 映射简介 19 撰写映射文件 20 生成 class 23 编制schema 30 hibernate连接mysql 38 第三章 善用hibernate 44 创建持久保存对象 44 取出持久保存对象 53 以较佳方式建立查询 58 第四章 集合及关联 61 集合的映射 61 集合的持久存储 69 集合的取出 75 使用双向关联 77 使用简单集合 82 第五章 再谈关联 84 使用lazy关联 84 定序集合 86 扩充集合中的关联 88 有生命周期的关联 100 反身关联 103 第六章 枚举类型的持久保存 106 定义持久保存的枚举类型 106 使用持久保存的枚举对象 112 第七章 自定义类型 117 定义自定义类型 118 使用自定义类型的映射 122 建立合成自定义类型 124 第八章 条件式查询 137 使用简单查询条件 138 复合式查询条件 141 把查询条件用于关联 143 以范例查询 145 第九章 浅谈hql 148 编写hql查询 148 选取内容特性及其他零件 153 排序 157 使用聚合值 158 编写sql查询内容 161 附录一 hibernate的类型 165 附录二 标准查询条件 171 附录三 hibernate sql dialects 175">前言 1 第一章 安装和设定 7 取得ant发行包 7 取得hsqldb数据库引擎 9 取得hibernate 10 建立项目目录层次 11 第二章 映射简介 19 撰写映射文件 20 生成 class 23 编制schema 30 hibernate连接mysql 38 第三章 善用hibernate 44 创建持久保存对象 44 取 [更多]

2014-06-01

UML.2.0版.pdf

UML 2.0的新改进可分为以下五个主要方面,按重要性顺序列出: 在语言定义方面精确程度有了相当的提高: 这就是支持自动化高标准需要的结果,此标准是MDD所必须的。自动化意味着模型(以及后来的模型语言)的不明确和不精密的消除,所以计算机程序能转换并熟练地操纵模型。 一个改良的语言组织: 其特性是由模块化决定的,模块化的特点在于它不仅使得语言更加容易的被新用户所采用,而且促进了工具之间的相互作用。 重点改进大规模的软件系统模型性能: 一些流行的应用软件表现出将现有的独立应用程序集成到更加复杂的系统中去。这是一种趋势,它将可能会继续导致更加复杂的系统。为了支持这种趋势,将更加灵活和新的分等级的性能添加到语言中去,用以支持软件模型在任意复杂的级别中使用。 对特定领域的改进的支持: 使用 UML 的实践经验证明了其所谓的“扩展”机制的价值。这些机制被统一化,精炼化后,使得基础语言更加简化,更加准确精炼。 全面的合并,合理化,清晰化各种不同的模型概念: 从而导致一种单一化,更加统一化语言的产生。它包含了合并和――在一些案例中――消除多余的概念,精练各种各样的定义,添加文字性的解释和例子。 现在我们来更详细地研究一下上述的每个方面。 精确程度 大多数的早期软件建模语言被非正式地定义,并很少注重它的精确性。时常,建模概念被解释成使用不严密的自然语言。由于大多数的建模语言在文件中或在Martin Fowler所提及的设计草图[Fowler04]中所使用,在那个时期,此模型概念得到了充分信任。这种思想传达了一种设计的本质特性,而把细节留给实现阶段去处理。 然而,由于模型在这种语言中很可能――并且通常是――被不同的商家解释成不同的含义,因此经常导致概念混淆。此外,除非模型解释的问题事先已被明确地讨论过,否则像这样的分歧还不能被人所发觉,而只是在发展的较后阶段才能被发现(即当问题的结果已明显显现时候)。 为了把不明确的概念减少到最少――并和多数现代的其它模型语言形成对比―― 第一个标准化的UML定义是用元模型来指定的。这是一个定义每一种UML 建模概念特性和这些特性与其他相关概念直接的关系的模型。使用UML的基本子集来定义这个元模型,并且通过一系列在对象约束语言中(OCL)正式的强制进行补充。 注释:: 这种UML子集,主要是由定义在UML上的类图上的概念所组成的,它被称为元对象工具(MOF)。选择这个子集后,它可以用来定义其它的建模语言。 这种结合所描述的是,UML抽象语法的一种正式的规范。正式的规范。之所以被称作是正式的,其原因是它与实际的符号或用于描绘模型的具体语法具体语法(也就是说,文本和图表)无关。换句话说就是,它所定义的规则集可以用来确定一个特定的模型是否已经很好的成形很好的成形。例如,这种规则将允许我们去测定通过一个状态机转换来连接两个UML类是不正确的。 然而,在这个初始的UML 元模型中所使用的精确程度证实,在MDD(例如在[Stevens02]中讨论所见到的)后,对整个潜能的支持是远远不够的。特别是,UML建模概念的语义(或含义)的规范,对这些作为自动代码生成或正式确认的基于MDD的活动仍旧是不适当的。 因此,值得注意的是在UML 2.0中定义所使用的精确程度已经增强了。它是通过以下方法完成的: 一种元模型架构的主要重建: UML 2.0架构是由一组低层次的建模概念和模式所组成的,它们在大多数的案例中要么过于初级,要么太抽象,以至于不能直接地在建模软件应用程序中使用。然而,它们相对的简单性使得它们在其语义和形成的规则上更加精确。这些优化后的概念,以不同的方法结合产生了更加复杂的用户级别的建模概念。例如,在UML 1中,在所有权角度上(即,元素包含另外一些元素),命名空间的概念(也叫唯一命名的元素集合)与分类器的概念(元素是能根据它们的属性进行分类的)上,都与单个的复杂语义概念绑定在一起。(注意这同样意味着如果没有包含另外两个而使用其中的任意一个的话,那是不可能的。)在新的UML 2.0架构中,这些概念被分离开,并且它们的语法和语义也被单独的定义。 可扩展的和更加精确的语义描述:UML 1模型概念语义的定义在许多方法都存在问题。它所描述的层次有些地方具有某些广泛的和详细的描述(例如,状态机),但是非常不平均,而其它的一些地方几乎没有解释。UML 2.0规范主要强调了语义,尤其是在基本行为动态的关键领域中(如下所述)。对于一个更加详细的UML 2.0语义的讨论,请参考资源部分中的[Selic04]。 一种清晰定义的动态语义框架: UML 2.0规范澄清了一些在老版本中的严重语义缺陷。图一描述了这个框架,至于更多的细节在资源中有所描述。[Selic04]。此外,下面的问题将通过这个框架详细的描述出来: 在运行期间的链接和实例的结构化语义 结构和行为之间的关联 语义的基础或因果关系模型通过所有当前在UML中的高级行为形式(即状态机,活动,交互)所共享。这同样也确保了那些通过不同的形式表达行为的对象可以相互的交互。

2014-06-01

UML和模式应用(原书第3版).pdf

前言 第一部分 绪论 第1章 面向对象分析和设计 1.1 本书的主要内容 1.2 最重要的学习目标 1.3 什么是分析和设计 1.4 什么是面向对象分析和设计 1.5 简短示例 1.6 什么是UML 1.7 可视建模的优点 1.8 历史 1.9 参考资料 第2章 迭代、进化和敏捷 2.1 什么是UP?其他方法能否对其进行补充 2.2 什么是迭代和进化式开发 2.3 什么是瀑布生命周期 2.4 如何进行迭代和进化式分析和设计 2.5 什么是风险驱动和客户驱动的迭代计划 2.6 什么是敏捷方法及其观点 2.7 什么是敏捷建模 2.8 什么是敏捷UP 2.9 UP的其他关键实践 2.10 什么是UP的阶段 2.11 什么是UP科目 2.12 如何定制过程和UP开发案例 2.13 判断你是否理解迭代开发或UP 2.14 历史 2.15 参考资料 第3章 案例研究 3.1 案例研究中涵盖的内容 3.2 案例研究策略:迭代开发+迭代学习 3.3 案例一:NextGen POS系统 3.4 案例二:Monopoly游戏系统 第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会创建的制品 4.4 何时知道自己并不了解初始阶段 4.5 初始阶段中有多少UML 第5章 进化式需求 5.1 定义:需求 5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 6.3 用例和用例模型 6.4 动机:为什么使用用例 6.5 定义:用例是功能性需求吗 6.6 定义:参与者的三种类型 6.7 表示法:用例的三种常用形式 6.8 示例:详述风格的处理销售 6.9 各小节的含义 6.10 表示法:有其他格式吗?两栏变体 6.11 准则:以无用户界面约束的本质风格编写用例 6.12 准则:编写简洁的用例 6.13 准则:编写黑盒用例 6.14 准则:持有参与者和参与者目标的视点 6.15 准则:如何发现用例 6.16 准则:什么样的测试有助于发现有用的用例 6.17 应用UML:用例图 6.18 应用UML:活动图 6.19 动机:用例还有其他益处吗?语境中的需求 6.20 示例:Monopoly游戏 6.21 过程:在迭代方法中如何使用用例 6.22 历史 6.23 参考资料 第7章 其他需求 7.1 如何完成这些示例 7.2 准则:初始阶段是否应该对此彻底地进行分析 7.3 准则:这些制品是否应该放在项目Web站点上 7.4 NextGen示例:(部分)补充性规格说明 7.5 注解:补充性规格说明 7.6 NextGen示例:(部分)设想 7.7 注解:设想 7.8 NextGen示例:(部分)词汇表 7.9 注解:词汇表(数据字典) 7.10 NextGen示例:业务规则(领域规则) 7.11 注解:领域规则 7.12 过程:迭代方法中的进化式需求 7.13 参考资料 第三部分 细化迭代1—基础 第四部分 细化迭代2—更多模式 第五部分 细化迭代3——中级主题 第六部分 其他主题

2014-06-01

UML团队开发流程与管理(第2版).pdf

第I部分 UML基础 第1章 案例设计与说明 1.1 案例背景说明 1.2 总结 第2章 利用UML表达业务流程与系统需求 2.1 活动图与业务流程 2.1.1 信仁医院案例背景描述 2.1.2 问题与分析 2.1.3 有关活动图的介绍 2.1.4 信仁医院住出院系统的活动图 2.1.5 在EA中绘制活动图 2.2 用例图与系统需求 2.2.1 信仁医院案例背景描述 2.2.2 问题与分析 2.2.3 有关用例图的介绍 2.2.4 信仁医院住出院系统的用例图 2.2.5 在EA中绘制用例图 2.3 总结 第3章 表达系统内部的结构 3.1 系统结构与类图 3.1.1 信仁医院案例背景描述 3.1.2 问题与分析 3.1.3 有关类图的介绍 3.1.4 信仁医院住出院系统的领域模型 3.1.5 在EA中绘制类图 3.2 系统结构与序列图 3.2.1 信仁医院案例背景描述 3.2.2 问题与分析 3.2.3 有关序列图的介绍 3.2.4 信仁医院住出院系统的序列图案例 3.2.5 在EA中绘制序列图 3.3 系统结构与通信图 3.3.1 信仁医院案例背景描述 3.3.2 问题与分析 3.3.3 有关通信图的介绍 3.3.4 信仁医院住出院系统的通信图案例 3.3.5 在EA中绘制通信图 3.4 总结 第4章 表达系统的微观设计 4.1 对象图 4.1.1 信仁医院案例背景描述 4.1.2 问题与分析 4.1.3 有关对象图的介绍 4.1.4 信仁医院住出院系统的对象图案例 4.1.5 在EA中绘制对象图 4.2 状态机图 4.2.1 信仁医院案例背景描述 4.2.2 问题与分析 4.2.3 有关状态机图的介绍 4.2.4 病床状态的状态机图案例 4.2.5 在EA中绘制状态机图 4.3 时间图 4.3.1 信仁医院案例背景描述 4.3.2 问题与分析 4.3.3 有关时间图的介绍 4.3.4 病床状态的时间图案例 4.3.5 在EA中绘制时间图 4.4 总结 …… 第Ⅱ部分 UML与软件开发实现 第Ⅲ部分 软件开发与团队合作 第IV部分 附录

2014-06-01

Head First 设计模式(中文版).pdf

谁适合读这本书? 我们知道你的大脑在想什么 元认知 让你的大脑就范 技术审校 致谢 1 欢迎来到设计模式世界:设计模式入门 模拟鸭子应用 Joe想到继承 利用接口如何? 软件开发的不变真理 分开变化和不变部分 设计鸭子的行为 测试鸭子的代码 动态地设置行为 封装行为的大局观 “有一个”比“是一个”更好 策略模式 共享模式词汇的威力 我如何使用设计模式? 设计箱内的工具 习题解答 2 让你的对象知悉现况 气象观测站 认识观察者模式 出版者+订阅者=观罕者模式 五分钟短剧:观察主题 定义观察者模式 松耦合的威力 设计气象站 实现气象站 使用Java内建的观察者模式 java.util.Observable的黑暗面 设计箱内的工具 习题解答 3 装饰者模式:装饰对象 4 工厂模式:烘烤OO的精华 5 单件模式:独一无二的对象 6 命令模式:封装调用 7 适配器模式与外观模式:随遇而安 8 模板方法模式:封装算法 9 送代器与组合模式:管理良好的集合 10 状态模式:事物的状态 11 代理模式:控制对象访问 12 复合模式:模式中的模式 13 与设计模式相处:真实世界中的模式 A 附录A:剩下的模式

2014-06-01

Java设计模式(第2版)中文版.pdf

第1章 设计模式简介 1.1 什么是设计模式 1.2 设计模式的起源 1.3 “23个设计模式”的来源 1.4 学习设计模式的重要性 1.5 合理使用模式 1.6 什么是框架 1.7 使用Java描述模式的必要性 1.8 设计模式资源 第2章 面向对象的几个基本原则 2.1 面向抽象原则 2.2 开?闭原则 2.3 多用组合少用继承原则 2.4 高内聚?低耦合原则 第3章 UML类图简介 3.1 类 3.2 接口 3.3 泛化关系 3.4 关联关系 3.5 依赖关系 3.6 实现关系 3.7 注释 第4章 命令模式 4.1 概述 4.2 模式的结构与使用 4.3 命令接口中的撤销方法 4.4 宏命令 4.5 命令模式的优点 4.6 适合使用命令模式的情景 4.7 命令模式与JavaAWT事件 4.8 应用举例——模拟小电器 第5章 观察者模式 5.1 概述 5.2 模式的结构与使用 5.3 观察者模式中的“推”数据与“拉”数据 5.4 观察者与多主题 5.5 观察者模式的优点 5.6 适合使用观察者模式的情景 5.7 JavaAPI中的Observable类与Observer接口 5.8 应用举例——统计文本中的单词和数字 第6章 装饰模式 6.1 概述 6.2 模式的结构与使用 6.3 使用多个装饰者 6.4 装饰模式相对继承机制的优势 6.5 装饰模式的优点 6.6 适合使用装饰模式的情景 6.7 JavaIO与装饰模式 6.8 应用举例——读取单词表 第7章 策略模式 7.1 概述 7.2 模式的结构与使用 7.3 策略模式的优点 7.4 适合使用策略模式的情景 7.5 策略模式相对继承机制的优势 7.6 应用举例——加密、解密文件 第8章 适配器模式 8.1 概述 8.2 模式的结构与使用 8.3 适配器模式的优点 8.4 适合适配器模式的情景 8.5 单接口适配器 8.6 应用举例——Iterator接口与Enumeration接口 第9章 责任链模式 9.1 概述 9.2 模式的结构与使用 9.3 责任链模式的优点 9.4 适合使用责任链模式的情景 9.5 应用举例——计算阶乘 第10章 外观模式 10.1 概述 10.2 模式的结构与使用 10.3 外观模式的优点 10.4 适合使用外观模式的情景 10.5 应用举例——解析文件 第11章 迭代器模式 11.1 概述 11.2 模式的结构与使用 11.3 迭代器的next()方法与集合的get(intindex)方法 11.4 迭代器模式的优点 11.5 适合使用迭代器模式的情景 11.6 应用举例——使用多个集合存储对象 第12章 中介者模式 12.1 概述 12.2 模式的结构与使用 12.3 中介者模式的优点 12.4 适合使用中介者模式的情景 12.5 使用中介者模式处理组件交互 12.6 应用举例——模拟交通信号灯 第13章 工厂方法模式 13.1 概述 13.2 模式的结构与使用 13.3 Java集合框架与工厂模式 13.4 工厂方法模式的优点 13.5 适合使用工厂方法模式的情景 13.6 应用举例——创建药品对象 第14章 抽象工厂模式 14.1 概述 14.2 模式的结构与使用 14.3 工厂方法模式的优点 14.4 适合使用抽象工厂模式的情景 14.5 应用举例——存款凭证 第15章 生成器模式 15.1 概述 15.2 模式的结构与使用 15.3 生成器模式的优点 15.4 适合使用生成器模式的情景 15.5 应用举例——日历牌 第16章 原型模式 16.1 概述 16.2 java.lang.Object类的clone方法 16.3 Serializable接口与克隆对象 16.4 模式的结构与使用 16.5 原型模式的优点 16.6 适合原型模式的情景 16.7 应用举例——克隆容器 第17章 单件模式 17.1 概述 17.2 模式的结构与使用 17.3 单件模式的优点 17.4 适合单件模式的情景 17.5 应用举例——多线程争冠军 第18章 组合模式 18.1 概述 18.2 模式的结构与使用 18.3 组合模式的优点 18.4 适合组合模式的情景 18.5 应用举例——苹果树的重量及苹果的价值 第19章 桥接模式 19.1 概述 19.2 模式的结构与使用 19.3 桥接模式的优点 19.4 适合桥接模式的情景 19.5 应用举例——制作电视节目 第20章 状态模式 20.1 概述 20.2 模式的结构与使用 20.3 状态切换 20.4 共享状态 20.5 状态模式的优点 20.6 适合状态模式的情景 20.7 应用举例——模拟咖啡自动售货机 第21章 模板方法模式 21.1 概述 21.2 模式的结构与使用 21.3 钩子方法 21.4 模板方法模式的优点 21.5 适合模板方法模式的情景 21.6 应用举例——数据库的连接与记录查询 第22章 代理模式 22.1 概述 22.2 模式的结构与使用 22.3 远程代理 22.4 虚拟代理 22.5 代理模式的优点 22.6 适合代理模式的情景 22.7 应用举例——使用远程窗口阅读文件 第23章 享元模式 23.1 概述 23.2 模式的结构与使用 23.3 享元模式的优点 23.4 适合享元模式的情景 23.5 应用举例——创建化合物 第24章 访问者模式 24.1 概述 24.2 模式的结构与使用 24.3 双重分派 24.4 访问者模式的优点 24.5 适合访问模式的情景 24.6 应用举例——评价体检表 第25章 备忘录模式 25.1 概述 25.2 模式的结构与使用 25.3 使用内部类创建备忘录 25.4 备忘录模式的优点 25.5 适合使用备忘录模式的情景 25.6 应用举例——使用备忘录实现undo操作 第26章 解释器模式 26.1 概述 26.2 解释器模式的结构与使用 26.3 解释器模式的优点 26.4 适合使用解释器模式的情景 26.5 应用举例——简单的英文翻译器 第27章 模式分类 27.1 创建型模式 27.2 行为型模式 27.3 结构型模式 参考文献

2014-06-01

大话设计模式.pdf

第1章 代码无错就是优?——简单工厂模式 1.1 面试受挫 1.2 初学者代码毛病 1.3 代码规范 1.4 面向对象编程 1.5 活字印刷,面向对象 1.6 面向对象的好处 1.7 复制vs.复用 1.8 业务的封装 1.9 紧耦合vs.松耦合 1.10 简单工厂模式 1.11 UML类图 第2章 商场促销——策略模式 2.1 商场收银软件 2.2 增加打折 2.3 简单工厂实现 2.4 策略模式 2.5 策略模式实现 2.6 策略与简单工厂结合 2.7 策略模式解析 第3章 拍摄UFO——单一职责原则 3.1 新手机 3.2 拍摄 3.3 没用的东西 3.4 单一职责原则 3.5 方块游戏的设计 3.6 手机职责过多吗? 第4章 考研求职两不误——开放-封闭原则 4.1 考研失败 4.2 开放-封闭原则 4.3 何时应对变化 4.4 两手准备,并全力以赴 第5章 会修电脑不会修收音机?——依赖倒转原则 5.1 MM请求修电脑 5.2 电话遥控修电脑 5.3 依赖倒转原则 5.4 里氏代换原则 5.5 修收音机 第6章 穿什么有这么重要?——装饰模式 6.1 穿什么有这么重要? 6.2 小菜扮靓第一版 6.3 小菜扮靓第二版 6.4 装饰模式 6.5 小菜扮靓第三版 6.6 装饰模式总结 第7章 为别人做嫁衣——代理模式 7.1 为别人做嫁衣! 7.2 没有代理的代码 7.3 只有代理的代码 7.4 符合实际的代码 7.5 代理模式 7.6 代理模式应用 7.7 秀才让小六代其求婚 第8章 雷锋依然在人间——工厂方法模式 8.1 再现活雷锋 8.2 简单工厂模式实现 8.3 工厂方法模式实现 8.4 简单工厂vs.工厂方法 8.5 雷锋工厂 第9章 简历复印——原型模式 9.1 夸张的简历 9.2 简历代码初步实现 9.3 原型模式 9.4 简历的原型实现 9.5 浅复制与深复制 9.6 简历的深复制实现 9.7 复制简历vs.手写求职信 第10章 考题抄错会做也白搭——模板方法模式 10.1 选择题不会做,蒙呗! 10.2 重复=易错+难改 10.3 提炼代码 10.4 模板方法模式 10.5 模板方法模式特点 10.6 主观题,看你怎么蒙 第11章 无熟人难办事?——迪米特法则 11.1 第一天上班 11.2 无熟人难办事 11.3 迪米特法则 第12章 牛市股票还会亏钱?——外观模式 12.1 牛市股票还会亏钱? 12.2 股民炒股代码 12.3 投资基金代码 12.4 外观模式 12.5 何时使用外观模式 第13章 好菜每回味不同——建造者模式 13.1 炒面没放盐 13.2 建造小人一 13.3 建造小人二 13.4 建造者模式 13.5 建造者模式解析 13.6 建造者模式基本代码 第14章 老板回来,我不知道——观察者模式 14.1 老板回来?我不知道! 14.2 双向耦合的代码 14.3 解耦实践一 14.4 解耦实践二 14.5 观察者模式 14.6 观察者模式特点 14.7 观察者模式的不足 14.8 事件委托实现 14.9 事件委托说明 14.10 石守吉失手机后的委托 第15章 就不能不换DB吗?——抽象工厂模式 15.1 就不能不换DB吗? 15.2 最基本的数据访问程序 15.3 用了工厂方法模式的数据访问程序 15.4 用了抽象工厂模式的数据访问程序 15.5 抽象工厂模式 15.6 抽象工厂模式的优点与缺点 15.7 用简单工厂来改进抽象工厂 15.8 用反射+抽象工厂的数据访问程序 15.9 用反射+配置文件实现数据访问程序 15.10 无痴迷,不成功 第16章 无尽加班何时休——状态模式 16.1 加班,又是加班! 16.2 工作状态-函数版 16.3 工作状态-分类版 16.4 方法过长是坏味道 16.5 状态模式 16.6 状态模式好处与用处 16.7 工作状态-状态模式版 第17章 在NBA我需要翻译——适配器模式 17.1 在NBA我需要翻译! 17.2 适配器模式 17.3 何时使用适配器模式 17.4 篮球翻译适配器 17.5 适配器模式的.NET应用 17.6 扁鹊的医术 第18章 如果再回到从前——备忘录模式 18.1 如果再给我一次机会…… 18.2 游戏存进度 18.3 备忘录模式 18.4 备忘录模式基本代码 18.5 游戏进度备忘 第19章 分公司=一部门——组合模式 19.1 分公司不就是一部门吗? 19.2 组合模式 19.3 透明方式与安全方式 19.4 何时使用组合模式 19.5 公司管理系统 19.6 组合模式好处 第20章 想走?可以!先买票——迭代器模式 20.1 乘车买票,不管你是谁! 20.2 迭代器模式 20.3 迭代器实现 20.4 .NET的迭代器实现 20.5 迭代高手 第21章 有些类也需计划生育——单例模式 21.1 类也需要计划生育 21.2 判断对象是否是null 21.3 生还是不生是自己的责任 21.4 单例模式 21.5 多线程时的单例 21.6 双重锁定 21.7 静态初始化 第22章 手机软件何时统一——桥接模式 22.1 凭什么你的游戏我不能玩 22.2 紧耦合的程序演化 22.3 合成/聚合复用原则 22.4 松耦合的程序 22.5 桥接模式 22.6 桥接模式基本代码 22.7 我要开发“好”游戏 第23章 烤羊肉串引来的思考——命令模式 23.1 吃烤羊肉串! 23.2 烧烤摊vs.烧烤店 23.3 紧耦合设计 23.4 松耦合设计 23.5 松耦合后 23.6 命令模式 23.7 命令模式作用 第24章 加薪非要老总批?——职责链模式 24.1 老板,我要加薪! 24.2 加薪代码初步 24.3 职责链模式 24.4 职责链的好处 24.5 加薪代码重构 24.6 加薪成功 第25章 世界需要和平——中介者模式 25.1 世界需要和平! 25.2 中介者模式 25.3 安理会做中介 25.4 中介者模式优缺点 第26章 项目多也别傻做——享元模式 26.1 项目多也别傻做! 26.2 享元模式 26.3 网站共享代码 26.4 内部状态与外部状态 26.5 享元模式应用 第27章 其实你不懂老板的心——解释器模式 27.1 其实你不懂老板的心 27.2 解释器模式 27.3 解释器模式好处 27.4 音乐解释器 27.5 音乐解释器实现 27.6 料事如神 第28章 男人和女人——访问者模式 28.1 男人和女人! 28.2 最简单的编程实现 28.3 简单的面向对象实现 28.4 用了模式的实现 28.5 访问者模式 28.6 访问者模式基本代码 28.7 比上不足,比下有余 第29章 OOTV杯超级模式大赛——模式总结 29.1 演讲任务 29.2 报名参赛

2014-06-01

敏捷软件开发:原则、模式与实践.pdf

第一部分 敏捷开发   第1章 敏捷实践   1.1 敏捷联盟   1.1.1 人和交互重于过程和工具   1.1.2 可以工作的软件重于面面俱到的文档   1.1.3 客户合作重于合同谈判   1.1.4 随时应对变化重于遵循计划   1.2 原则   1.3 结论   1.4 参考文献   第2章 极限编程概述   2.1 极限编程实践   2.1.1 完整团队   2.1.2 用户故事   2.1.3 短交付周期   2.1.4 验收测试   2.1.5 结对编程   2.1.6 测试驱动开发   2.1.7 集体所有权   2.1.8 持续集成   2.1.9 可持续的开发速度   2.1.10 开放的工作空间   2.1.11 计划游戏   2.1.12 简单设计   2.1.13 重构   2.1.14 隐喻   2.2 结论   2.3 参考文献   第3章 计划   3.1 初始探索   3.2 发布计划   3.3 迭代计划   3.4 定义“完成”   3.5 任务计划   3.6 迭代   3.7 跟踪   3.8 结论   3.9 参考文献   第4章 测试   4.1 测试驱动开发   4.1.1 测试优先设计的例子   4.1.2 测试促使模块之间隔离   4.1.3 意外获得的解耦合   4.2 验收测试   4.3 意外获得的构架   4.4 结论   4.5 参考文献   第5章 重构   5.1 素数产生程序:一个简单的重构示例   5.1.1 单元测试   5.1.2 重构   5.1.3 最后审视   5.2 结论   5.3 参考文献   第6章 一次编程实践   6.1 保龄球比赛   6.2 结论   第二部分 敏捷设计   第7章 什么是敏捷设计   7.1 设计臭味   7.1.1 设计臭味——腐化软件的气味   7.1.2 僵化性   7.1.3 脆弱性   7.1.4 顽固性   7.1.5 粘滞性   7.1.6 不必要的复杂性   7.1.7 不必要的重复   7.1.8 晦涩性   7.2 软件为何会腐化   7.3 Copy程序   7.3.1 熟悉的场景   7.3.2 Copy程序的敏捷设计   7.4 结论   7.5 参考文献   第8章 SRP:单一职责原则   8.1 定义职责   8.2 分离耦合的职责   8.3 持久化   8.4 结论   8.5 参考文献   第9章 OCP:开放-封闭原则   9.1 OCP概述   9.2 Shape应用程序   9.2.1 违反OCP   9.2.2 遵循OCP   9.2.3 预测变化和“贴切的”结构   9.2.4 放置吊钩   9.2.5 使用抽象获得显式封闭   9.2.6 使用“数据驱动”的方法获取封闭性   9.3 结论   9.4 参考文献   第10章 LSP:Liskov替换原则   10.1 违反LSP的情形   10.1.1 简单例子   10.1.2 更微妙的违反情形   10.1.3 实际的例子   10.2 用提取公共部分的方法代替继承   10.3 启发式规则和习惯用法   10.4 结论   10.5 参考文献   第11章 DIP:依赖倒置原则   11.1 层次化   11.1.1 倒置的接口所有权   11.1.2 依赖于抽象   11.2 简单的DIP示例   11.3 熔炉示例   11.4 结论   11.5 参考文献   第12章 ISP:接口隔离原则   12.1 接口污染   12.2 分离客户就是分离接口   12.3 类接口与对象接口   12.3.1 使用委托分离接口   12.3.2 使用多重继承分离接口   12.4 ATM用户界面的例子   12.5 结论   12.6 参考文献   第13章 C#程序员UML概观   13.1 类图   13.2 对象图   13.3 顺序图   13.4 协作图   13.5 状态图   13.6 结论   13.7 参考文献   第14章 使用UML   14.1 为什么建模   14.1.1 为什么构建软件模型   14.1.2 编码前应该构建面面俱到的设计吗   14.2 有效使用UML   14.2.1 与他人交流   14.2.2 脉络图   14.2.3 项目结束文档   14.2.4 要保留的和要丢弃的   14.3 迭代式改进   14.3.1 行为优先   14.3.2 检查结构   14.3.3 想象代码   14.3.4 图的演化   14.4 何时以及如何绘制图示   14.4.1 何时要画图,何时不要画图   14.4.2 CASE 工具   14.4.3 那么,文档呢   14.5 结论   第15章 状态图   15.1 基础知识   15.1.1 特定事件   15.1.2 超状态   15.1.3 初始伪状态和结束伪状态   15.2 使用FSM图示   15.3 结论   第16章 对象图   16.1 即时快照   16.2 主动对象   16.3 结论   第17章 用例   17.1 编写用例   17.1.1 备选流程   17.1.2 其他东西呢   17.2 用例图   17.3 结论   17.4 参考文献   第18章 顺序图   18.1 基础知识   18.1.1 对象、生命线、消息及其他   18.1.2 创建和析构   18.1.3 简单循环   18.1.4 时机和场合   18.2 高级概念   18.2.1 循环和条件   18.2.2 耗费时间的消息   18.2.3 异步消息   18.2.4 多线程   18.2.5 主动对象   18.2.6 向接口发送消息   18.3 结论   第19章 类图   19.1 基础知识   19.1.1 类   19.1.2 关联   19.1.3 继承   19.2 类图示例   19.3 细节   19.3.1 类衍型   19.3.2 抽象类   19.3.3 属性   19.3.4 聚集   19.3.5 组合   19.3.6 多重性   19.3.7 关联衍型   19.3.8 内嵌类   19.3.9 关联类   19.3.10 关联修饰符   19.4 结论   19.5 参考文献   第20章 咖啡的启示   20.1 Mark IV型专用咖啡机   20.1.1 规格说明书   20.1.2 常见的丑陋方案   20.1.3 虚构的抽象   20.1.4 改进方案   20.1.5 实现抽象模型   20.1.6 这个设计的好处   20.2 面向对象过度设计   20.3 参考文献   第三部分 薪水支付案例研究   第21章 COMMAND模式和ACTIVE OBJECT模式:多功能与多任务   21.1 简单的Command   21.2 事务   21.2.1 实体上解耦和时间上解耦   21.2.2 时间上解耦   21.3 Undo()方法   21.4 ACTIVE OBJECT模式   21.5 结论   21.6 参考文献   第22章 TEMPLATE METHOD模式和STRATEGY模式:继承和委托   22.1 TEMPLATE METHOD模式   22.1.1 滥用模式   22.1.2 冒泡排序   22.2 STRATEGY模式   22.3 结论   22.4 参考文献   第23章 FACADE模式和MEDIATOR模式   23.1 FACADE模式   23.2 MEDIATOR模式   23.3 结论   23.4 参考文献   第24章 SINGLETON模式和MONOSTATE模式   24.1 SINGLETON模式   24.1.1 SINGLETON模式的好处   24.1.2 SINGLETON模式的代价   24.1.3 运用SINGLETON模式   24.2 MONOSTATE模式   24.2.1 MONOSTATE模式的好处   24.2.2 MONOSTATE模式的代价   24.2.3 运用MONOSTATE模式   24.3 结论   24.4 参考文献   第25章 NULL OBJECT模式   25.1 描述   25.2 结论   25.3 参考文献   第26章 薪水支付案例研究:第一次迭代开始   26.1 初步的规格说明   26.2 基于用例分析   26.2.1 增加新雇员   26.2.2 删除雇员   26.2.3 登记考勤卡   26.2.4 登记销售凭条   26.2.5 登记工会服务费   26.2.6 更改雇员明细   26.2.7 发薪日   26.3 反思:找出底层的抽象   26.3.1 雇员支付类别抽象   26.3.2 支付时间表抽象   26.3.3 支付方式   26.3.4 从属关系   26.4 结论   26.5 参考文献   第27章 薪水支付案例研究:实现   27.1 事务   27.1.1 增加雇员   27.1.2 删除雇员   27.1.3 考勤卡、销售凭条以及服务费用   27.1.4 更改雇员属性   27.1.5 犯了什么晕   27.1.6 支付雇员薪水   27.1.7 支付领月薪的雇员薪水   27.1.8 支付钟点工薪水   27.2 主程序   27.3 数据库   27.4 结论   27.5 关于本章   27.6 参考文献   第四部分 打包薪水支付系统   第28章 包和组件的设计原则   28.1 包和组件   28.2 组件的内聚性原则:粒度   28.2.1 重用—发布等价原则   28.2.2 共同重用原则   28.2.3 共同封闭原则   28.2.4 组件内聚性总结   28.3 组件的耦合性原则:稳定性   28.3.1 无环依赖原则   28.3.2 稳定依赖原则   28.3.3 稳定抽象原则   28.4 结论   第29章 FACTORY模式   29.1 依赖问题   29.2 静态类型与动态类型   29.3 可替换的工厂   29.4 对测试支架使用对象工厂   29.5 工厂的重要性   29.6 结论   29.7 参考文献   第30章 薪水支付案例研究:包分析   30.1 组件结构和符号   30.2 应用CCP   30.3 应用REP   30.4 耦合和封装   30.5 度量   30.6 度量薪水支付应用程序   30.6.1 对象工厂   30.6.2 重新思考内聚的边界

2014-06-01

设计模式可复用面向对象软件基础.pdf

《设计模式:可复用面向对象软件的基础》是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年设计经验的结晶。四位顶尖的面向对象领域专家精心 选取了最具价值的设计实践,加以分类整理和命名,并用简洁而易于重用的形式表达出来。本书已经成为面向对象技术人员的圣经和词典,书中定义的23个模式逐 渐成为开发界技术交流所必备的基础知识和语汇。 目录: 序言 前言 读者指南 第一章 引言 第二章 实例研究:设计一个文档编辑器 第三章 创建型模式 第四章 结构型模式 第五章 行为模式 第六章 结论 附录A 词汇表 附录B 图示符号指南 附录C 基本类 参考文献

2014-06-01

设计模式沉思录.pdf

第1章 介绍 1.1 对模式的十大误解 1.2 观察 第2章 运用模式进行设计 2.1 基础 2.2 孤儿、孤儿的收养以及代用品 2.3 “但是应该如何引入代用品呢?” 2.4 访问权限 2.5 关于VISITOR的一些警告 2.6 单用户文件系统的保护 2.7 多用户文件系统的保护 2.8 小结 第3章 主体和变体 3.1 终止SINGLETON 3.2 OBSERVER的烦恼 3.3 重温VISITOR 3.4 GENERATIONGAP 3.5 TypeLaundering 3.6 感谢内存泄漏 3.7 推拉模型 第4章 爱的奉献 第5章 高效模式编写者的7个习惯 5.1 习惯1:经常反思 5.2 习惯2:坚持使用同一套结构 5.3 习惯3:尽早且频繁地涉及具体问题 5.4 习惯4:保持模式间的区别和互补性 5.5 习惯5:有效地呈现 5.6 习惯6:不懈地重复 5.7 习惯7:收集并吸取反馈 5.8 没有银弹 参考文献 索引

2014-06-01

设计模式之禅高清扫描版.pdf

前 言 第一部分 大旗不挥,谁敢 冲锋—热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 第2章 里氏替换原则 2.1 爱恨纠葛的父子关系 2.2 纠纷不断,规则压制 2.3 最佳实践 第3章 依赖倒置原则 3.1 依赖倒置原则的定义 3.2 言而无信,你太需要契约 3.3 依赖的三种写法 3.4 最佳实践 第4章 接口隔离原则 4.1 接口隔离原则的定义 4.2 美女何其多,观点各不同 4.3 保证接口的纯洁性 4.4 最佳实践 第5章 迪米特法则 5.1 迪米特法则的定义 5.2 我的知识你知道得越少越好 5.3 最佳实践 第6章 开闭原则 6.1 开闭原则的定义 6.2 开闭原则的庐山真面目 6.3 为什么要采用开闭原则 6.4 如何使用开闭原则 6.5 最佳实践 第二部分 我惹了谁— 真刀实枪篇 第7章 单例模式 7.1 我是皇帝我独苗 7.2 单例模式的定义 7.3 单例模式的应用 7.4 单例模式的扩展 7.5 最佳实践 第8章 工厂方法模式 8.1 女娲造人的故事 8.2 工厂方法模式的定义 8.3 工厂方法模式的应用 8.3.1 工厂方法模式的优点 8.3.2 工厂方法模式的使用场景 8.4 工厂方法模式的扩展 8.5 最佳实践 第9章 抽象工厂模式 9.1 女娲的失误 9.2 抽象工厂模式的定义 9.3 抽象工厂模式的应用 9.3.1 抽象工厂模式的优点 9.3.2 抽象工厂模式的缺点 9.3.3 抽象工厂模式的使用场景 9.3.4 抽象工厂模式的注意事项 9.4 最佳实践 第10章 模板方法模式 10.1 辉煌工程—制造悍马 10.2 模板方法模式的定义 10.3 模板方法模式的应用 10.4 模板方法模式的扩展 10.5 最佳实践 第11章 建造者模式 11.1 变化是永恒的 11.2 建造者模式的定义 11.3 建造者模式的应用 11.4 建造者模式的扩展 11.5 最佳实践 第12章 代理模式 12.1 我是游戏至尊 12.2 代理模式的定义 12.3 代理模式的应用 12.3.1 代理模式的优点 12.3.2 代理模式的应用 12.4 代理模式的扩展 12.4.1 普通代理 12.4.2 强制代理 12.4.3 代理是有个性的 12.4.4 虚拟代理 12.4.5 动态代理 12.5 最佳实践 第13章 原型模式 13.1 个性化电子账单 13.2 原型模式的定义 13.3 原型模式的应用 13.3.1 原型模式的优点 13.3.2 原型模式的使用场景 13.4 原型模式的注意事项 13.4.1 构造函数不会被执行 13.4.2 浅拷贝和深拷贝 13.4.3 clone与final两个冤家 13.5 最佳实践 第14章 中介者模式 14.1 进销存管理是这个样子的吗? 14.2 中介者模式的定义 14.3 中介者模式的应用 14.4 中介者模式的实际应用 14.5 最佳实践 第15章 命令模式 15.1 项目经理也难当 15.2 命令模式的定义 15.3 命令模式的应用 15.3.1 命令模式的优点 15.3.2 命令模式的缺点 15.3.3 命令模式的使用场景 15.4 命令模式的扩展 15.4.1 未讲完的故事 15.4.2 反悔问题 15.5 最佳实践 第16章 责任链模式 16.1 古代妇女的枷锁—“三从四德” 16.2 责任链模式的定义 16.3 责任链模式的应用 16.3.1 责任链模式的优点 16.3.2 责任链模式的缺点 16.3.3 责任链模式的注意事项 16.4 最佳实践 第17章 装饰模式 17.1 罪恶的成绩单 17.2 装饰模式的定义 17.3 装饰模式应用 17.3.1 装饰模式的优点 17.3.2 装饰模式的缺点 17.3.3 装饰模式的应用 17.4 最佳实践 第18章 策略模式 18.1 刘备江东娶妻,赵云他容易吗 18.2 策略模式的定义 18.3 策略模式的应用 18.3.1 策略模式的优点 18.3.2 策略模式的缺点 18.3.3 策略模式的应用 18.3.4 策略模式的注意事项 18.4 策略模式的扩展 18.5 最佳实践 第19章 适配器模式 19.1 业务发展—上帝才能控制 19.2 适配器模式的定义 19.3 适配器模式的应用 19.3.1 适配器模式的优点 19.3.2 适配器模式的应用 19.3.3 适配器模式的注意事项 19.4 适配器模式的扩展 19.5 最佳实践 第20章 迭代器模式 20.1 整理项目信息—苦差事 20.2 迭代器模式的定义 20.3 迭代器模式的应用 20.4 最佳实践 第21章 组合模式 21.1 公司的人事架构是这样的吗 21.2 组合模式的定义 21.3 组合模式的应用 21.3.1 组合模式的优点 21.3.2 组合模式的缺点 21.3.3 组合模式的应用 21.3.4 组合模式的注意事项 21.4 组合模式的扩展 21.4.1 真实的组合模式 21.4.2 透明的组合模式 21.4.3 组合模式的遍历 21.5 最佳实践 第22章 观察者模式 22.1 韩非子身边的卧底是谁派来的 22.2 观察者模式的定义 22.3 观察者模式的应用 22.3.1 观察者模式的优点 22.3.2 观察者模式的缺点 22.3.3 观察者模式的应用 22.3.4 观察者模式的注意事项 22.4 观察者模式的扩展 22.4.1 Java世界中的观察者模式 22.4.2 项目中真实观察者模式 22.4.3 订阅发布模型 22.5 最佳实践 第23章 门面模式 23.1 我要投递信件 23.2 门面模式的定义 23.3 门面模式的应用 23.3.1 门面模式的优点 23.3.2 门面模式的缺点 23.3.3 门面模式的应用 23.4 门面模式的注意事项 23.4.1 一个子系统可以有多个 门面 23.4.2 门面不参与子系统内的 业务逻辑 23.5 最佳实践 第24章 备忘录模式 24.1 如此追女孩子,你还不乐 24.2 备忘录模式的定义 24.3 备忘录模式的应用 24.3.1 备忘录模式的应用 24.3.2 备忘录模式的注意事项 24.4 备忘录模式的扩展 24.4.1 clone方式的备忘录 24.4.2 多状态的备忘录模式 24.4.3 多备份的备忘录

2014-06-01

Objective-C初学者指南高清扫描版.pdf

第1章  成为优秀的iOS或Mac 程序员    1 1.1  像开发人员一样思考    1 1.2  完成开发周期    4 1.3  面向对象编程简介    5 1.4  操纵Alice界面    7 1.5  总结    9 1.6  习题    9 第2章  编程基础    10 2.1  和Alice一起漫游仙境    10 2.1.1  导航菜单    11 2.1.2  世界窗口    11 2.1.3  Alice中的类、对象和实例    13 2.1.4  对象树    14 2.1.5  编辑区域    14 2.1.6  细节区域    15 2.1.7  事件区域    15 2.2  创建一个Alice应用——登月    16 2.3  你的第一个Objective-C程序    20 2.4  总结    26 2.5  习题    27 第3章  关于数据    28 3.1  编程中用到的数字系统    28 3.1.1  比特    28 3.1.2  字节    30 3.1.3  十六进制计数    31 3.1.4  Unicode    32 3.2  数据类型    32 3.3  在Alice中使用变量和数据类型    33 3.4  数据类型与Objective-C    40 3.5  确定问题所在    44 3.6  总结    45 3.7  习题    45 第4章  程序流的决策与计划    46 4.1  布尔逻辑    46 4.1.1  真值表    47 4.1.2  比较运算符    49 4.2  应用设计    49 4.2.1  伪代码    50 4.2.2  设计需求    51 4.2.3  流程图    54 4.2.4  示例应用的设计和流程图    55 4.2.5  应用的设计    55 4.2.6  使用循环来重复程序语句    56 4.3  示例应用在Alice中的程序实现    58 4.4  示例应用在Objective-C中的程序实现    60 4.4.1  嵌套的if语句和else-if语句    62 4.4.2  删掉多余字符    62 4.4.3  通过重构改善代码    63 4.4.4  运行应用    63 4.5  和Alice道别    64 4.6  总结    64 4.7  习题    65 第5章  基于Objective-C的面向对象编程    66 5.1  对象    66 5.2  什么是类    67 5.3  类的设计    68 5.3.1  属性的设计    68 5.3.2  方法的设计    70 5.3.3  类的实现    71 5.4  继承    76 5.5  为什么使用OOP    77 5.5.1  它无处不在    77 5.5.2  消除冗余代码    77 5.5.3  方便调试    77 5.5.4  方便替换    78 5.6  高阶课题    78 5.6.1  接口    78 5.6.2  多态    78 5.7  总结    78 5.8  习题    79 第6章  学习Objective-C和Xcode    80 6.1  Objective-C简史    80 6.2  理解语言的符号    81 6.3  面向对象概念    82 6.4  用Xcode再写一个程序    86 6.5  总结    98 6.6  习题    99 第7章  Objective-C的类、对象及方法    100 7.1  创建Objective-C类    100 7.1.1  声明接口和实例变量    101 7.1.2  发送消息(方法)    102 7.1.3  实现文件的使用    104 7.1.4  方法的编码    105 7.2  新类的使用    106 7.2.1  创建项目    106 7.2.2  添加对象    109 7.2.3  完成实现文件    111 7.2.4  创建用户界面    113 7.2.5  连接代码    116 7.2.6  运行程序    120 7.2.7  充分发挥类方法的作用    121 7.3  访问Xcode文档    121 7.4  总结    122 7.5  习题    122 第8章  Objective-C编程基础    123 8.1  集合类    123 8.1.1  使用NSSet    124 8.1.2  使用NSArray    125 8.1.3  NSDictionary    126 8.1.4  确定集合元素的类型    127 8.2  使用可变类    127 8.2.1  NSMutableSet    127 8.2.2  NSMutableArray    128 8.2.3  NSMutableDictionary    129 8.3  创建BookStore应用程序    130 8.4  引入实例变量    134 8.4.1  访问实例变量    134 8.4.2  使用获取方法和设置方法    135 8.5  引入属性    137 8.5.1  属性的使用    138 8.5.2  理解惯例的重要性    139 8.6  完成MyBookstore程序    139 8.6.1  创建视图    140 8.6.2  添加实例变量    141 8.6.3  添加描述    142 8.6.4  创建一个简单的数据模型类    144 8.6.5  更改MasterViewController    147 8.6.6  更改DetailViewController    151 8.7  总结    152 8.8  习题    152 第9章  比较数据    153 9.1  复习布尔逻辑    153 9.2  使用关系操作符    154 9.2.1  比较数值    154 9.2.2  创建示例Xcode应用    155 9.3  使用布尔表达式    158 9.3.1  比较字符串    159 9.3.2  比较日期    161 9.3.3  比较的结合    163 9.4  使用switch语句    164 9.5  总结    165 9.6  习题    166 第10章  创建用户界面    167 10.1  理解Interface Builder    168 10.2  模型?视图?控制器    168 10.3  人机交互界面准则(HIG)    170 10.4  用Interface Builder创建iPhone示例应用    171 10.4.1  使用Interface Builder    174 10.4.2  Dock    175 10.4.3  库    176 10.4.4  查看器窗格和选择器工具条    177 10.4.5  创建视图    177 10.4.6  使用插口    179 10.4.7  连接动作和对象    180 10.4.8  实现文件    181 10.5  总结    182 10.6  习题    182 第11章  数据存储    183 11.1  存储注意事项    183 11.2  首选项    183 11.2.1  首选项的写操作    184 11.2.2  首选项的读操作    185 11.3  数据库    185 11.4  在数据库中存储信息    185 11.5  开始使用Core Data    186 11.6  模型    188 11.6.1  受控对象上下文    194 11.6.2  设置界面    194 11.7  总结    199 11.8  习题    200 第12章  协议和委托    201 12.1  多继承    201 12.2  理解协议    202 12.3  理解委托    203 12.4  下一步    204 12.5  总结    205 第13章  内存、地址和指针    206 13.1  理解内存    206 13.1.1  比特、字节和基数    207 13.1.2  十进制转换为二进制    207 13.1.3  使用十六进制的计数法    208 13.2  理解内存地址的基础    210 13.3  内存的分配    213 13.4  解除分配内存    215 13.5  在Objective-C中用ARC管理内存    217 13.6  没有ARC的Objective-C内存管理    219 13.6.1  使用保留/释放模型    220 13.6.2  处理隐含的保留消息和自动释放    221 13.6.3  发送dealloc消息    222 13.7  如果出了问题    223 13.8  ARC注意事项    224 13.9  总结    224 13.10  习题    225 第14章  Xcode调试器    226 14.1  准备调试    226 14.1.1  设置断点    227 14.1.2  使用断点导航器    228 14.1.3  调试基础    230 14.1.4  使用调试器控件    231 14.1.5  使用单步控件    232 14.1.6  查看线程窗口和调用栈    233 14.1.7  变量的调试    234 14.2  处理代码错误和警告    235 14.3  总结    239

2014-06-01

深入浅出Hibernate

深入浅出Hibernate

2013-06-30

Android应用开发揭秘

第一部分 Android概述 第1章 Android简介 2 1.1 Android简介 2 1.1.1 Android平台 3 1.1.2 Android的市场 4 1.1.3 Android许可 7 1.2 Android的栈组成 8 1.3 开始Android开发 11 1.3.1 Android的Intent 11 1.3.2 激活Android 14 1.3.3 AndroidManifest.xml 20 1.3.4 将应用程序映射到进程 22 1.4 一个Android应用程序 22 1.5 小结 26 第2章 开发环境 27 2.1 Android SDK 27 2.1.1 应用程序编程接口 28 2.1.2 核心Android包 28 2.1.3 可选包 29 2.2 完美契合 29 2.2.1 Java透视图 30 2.2.2 DDMS透视图 32 2.2.3 命令行工具 34 2.3 在Eclipse中构建Android应用程序 36 2.3.1 Android Project Wizard 37 2.3.2 Android示例应用程序代码 37 2.3.3 生成应用程序 42 2.4 Android Emulator 43 2.4.1 皮肤 44 2.4.2 网络速度 44 2.4.3 模拟器配置文件 46 2.5 调试 47 2.6 小结 48 第二部分 Android SDK实战 第3章 用户界面 50 3.1 创建活动 51 3.1.1 创建Activity类 52 3.1.2 探讨活动的生命周期 57 3.2 使用视图 60 3.2.1 通用视图 60 3.2.2 使用ListView 63 3.2.3 利用Handler和Message实现多任务 66 3.2.4 创建自定义视图 67 3.2.5 理解布局 69 3.2.6 处理焦点 71 3.2.7 掌握事件 72 3.3 使用资源 73 3.3.1 支持的资源类型 73 3.3.2 在Java中引用资源 74 3.3.3 通过XML资源定义视图和布局 76 3.3.4 值的外化 78 3.3.5 提供动画 81 3.4 理解AndroidManifest文件 81 3.5 小结 84 第4章 Intent与服务 85 4.1 使用Intent类 86 4.1.1 定义Intent 86 4.1.2 解析Intent 89 4.1.3 匹配自定义URI 92 4.1.4 使用Android提供的活动 96 4.2 使用广播接收器进行侦听 97 4.2.1 扩展Intent概念 97 4.2.2 创建接收器 98 4.3 构建服务 99 4.3.1 服务的两用性 100 4.3.2 创建可运行后台任务的服务 100 4.4 实现进程间通信 103 4.4.1 Android接口定义语言 104 4.4.2 公开远程接口 106 4.4.3 绑定到服务 106 4.4.4 启动服务与绑定服务 108 4.4.5 服务的生命周期 109 4.4.6 Binder类和Parcelable接口 110 4.5 小结 111 第5章 存储和检索数据 112 5.1 使用首选项 112 5.1.1 使用SharedPreferences 113 5.1.2 首选项访问权限 116 5.2 使用文件系统 119 5.2.1 创建文件 119 5.2.2 访问文件 120 5.2.3 作为原始资源的文件 121 5.2.4 XML文件资源 122 5.2.5 通过SD卡实现外部存储 124 5.3 将数据持久存储到数据库中 127 5.3.1 构建和访问数据库 128 5.3.2 使用sqlite3工具 132 5.4 使用ContentProvider类 133 5.4.1 理解URI表示和操作记录 135 5.4.2 创建ContentProvider 142 5.5 小结 148 第6章 联网与Web服务 150 6.1 联网概述 152 6.1.1 联网基础知识 152 6.1.2 客户端与服务器 153 6.2 检查网络状态 154 6.3 使用服务器套接字进行通信 155 6.4 使用HTTP 158 6.4.1 简单HTTP 158 6.4.2 使用HttpClient的健壮HTTP 160 6.4.3 创建HTTP和HTTPS帮助类 161 6.5 Web服务 167 6.5.1 POX——将它与HTTP和XML结合在一起 168 6.5.2 REST 170 6.5.3 用还是不用SOAP,这是个问题 173 6.6 小结 174 第7章 电话技术 175 7.1 电话技术背景与术语 176 7.2 访问电话技术信息 177 7.2.1 获取电话技术属性 177 7.2.2 获取电话状态信息 179 7.3 与电话交互 181 7.3.1 使用Intent打电话 181 7.3.2 有用的电话号码相关实用工具 182 7.3.3 拦截电话 184 7.4 处理消息传递:SMS 185 7.4.1 发送SMS消息 185 7.4.2 接收SMS消息 187 7.5 小结 188 第8章 通知与提醒 189 8.1 Toast简介 189 8.2 通知简介 192 8.3 提醒 195 8.4 小结 201 第9章 图形与动画 202 9.1 在Android中绘制图形 202 9.2 动画 206 9.2.1 以编程方式创建动画 209 9.2.2 面向嵌入式系统的OpenGL简介 213 9.3 小结 224 第10章 多媒体 225 10.1 多媒体与OpenCORE简介 225 10.2 播放音频 226 10.3 播放视频 228 10.4 捕捉媒体 230 10.4.1 了解相机 230 10.4.2 捕捉音频 235 10.5 小结 238 第11章 位置服务 239 11.1 在模拟器中模拟位置 241 11.1.1 使用DDMS工具发送坐标 241 11.1.2 GPS交换格式 243 11.1.3 Google Earth Keyhole标记语言 245 11.2 使用LocationManager和LocationProvider 246 11.2.1 使用LocationManager 访问位置数据 247 11.2.2 使用LocationProvider 249 11.2.3 使用LocationListener 接收位置更新 250 11.3 处理地图 253 11.3.1 扩展MapActivity 253 11.3.2 使用MapView 254 11.3.3 使用Overlay将数据放在地图上 256 11.4 使用Geocoder转换位置和地址 259 11.5 小结 262 第三部分 Android应用程序 第12章 全面应用:Field Service Application 264 12.1 Field Service Application的需求 265 12.1.1 基本需求 265 12.1.2 数据模型 266 12.1.3 应用程序架构与集成 267 12.2 Android应用程序之旅 268 12.2.1 应用程序流 268 12.2.2 代码路线图 269 12.2.3 AndroidManifest.xml 271 12.3 Android代码 271 12.3.1 Splash Activity 271 12.3.2 FieldService Activity,第1部分 273 12.3.3 FieldService Activity,第2部分 275 12.3.4 设置 276 12.3.5 数据结构 278 12.4 深入剖析代码 286 12.4.1 RefreshJobs 286 12.4.2 ManageJobs 289 12.4.3 ShowJob 292 12.4.4 CloseJob 296 12.5 服务器代码 302 12.5.1 调度程序用户界面 302 12.5.2 数据库 303 12.5.3 PHP调度程序代码 303 12.5.4 PHP移动集成代码 304 12.6 小结 305 第13章 Android高级编程 306 13.1 Android/Linux:接合 306 13.1.1 工具链 307 13.1.2 构建应用程序 307 13.1.3 安装和运行应用程序 308 13.1.4 构建脚本 310 13.2 更好的方法 311 13.2.1 static标记 311 13.2.2 链接 313 13.2.3 退出,而不是返回 314 13.2.4 启动代码 315 13.3 现在几点了 317 13.3.1 Daytime Server应用程序 318 13.3.2 daytime.c 318 13.3.3 SQLite数据库 320 13.3.4 编译并运行Daytime Server 322 13.4 Daytime Client 324 13.4.1 活动 324 13.4.2 套接字客户机 325 13.4.3 测试Daytime Client 326 13.5 小结 327

2013-07-01

Java编程思想(陈昊鹏 译)

第1章 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像是一个”(is-like-a)关系 1.7 伴随多态的可互换对象 1.8 单根继承结构 1.9 容器 1.9.1 参数化类型(范型) 1.10 对象的创建和生命期 1.11 异常处理:处理错误 1.12 并发编程 1.13 Java与Internet 1.13.1 Web是什么 1.13.2客户端编程 1.13.3 服务器端编程 1.22 总结 第2章 一切都是对象 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本类型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据类型:类 2.4.1 域和方法 2.4.2 基本成员默认值 2.5 方法、参数和返回值 2.5.1 参数列表 2.6 构建一个Java程序 2.6.1 名字可见性 2.6.2 运用其他构件 2.6.3 static 关键字 2.7 你的第一个Java程序 编译和运行 2.8 注释和嵌入式文档 2.8.1 注释文档 2.8.2 语法 2.8.3 嵌入式HTML 2.8.4 一些标签示例 2.8.5 文档示例 2.9 编码风格 2.10 总结 2.11 练习 第3章 操作符 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 算术操作符 3.5.1 一元加、减操作符 3.6 自动递增和递减 3.7 关系操作符 3.7.1 测试对象的等价性 3.8 逻辑操作符 3.8.1 短路 3.9 直接常量 3.9.1 指数记数法 3.10 按位操作符 3.11 移位操作符 3.12 三元操作符 if-else 3.13 字符串操作符 + 和 += 3.14 使用操作符时常犯的错误 3.15 类型转换操作符 3.15.1 截尾和舍入 3.15.2提升 3.16 Java没有“sizeof” 3.17 操作符小结 3.18 总结 第4章 控制执行流程 4.1 true和false 4.2 if-else 4.3 迭代 4.3.1 do-while 4.3.2 for 4.3.3 逗号操作符 4.4 Foreach语法 4.5 return 4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以返回值区分重载方法 5.3 缺省构造器 5.4 this关键字 5.4.1 在构造器中调用构造器 5.4.2 static的含义 5.5 清理:终结处理和垃圾回收 5.5.1 finalize()的用途何在 5.5.2 你必须实施清理 5.5.3 终结条件 5.5.4 垃圾回收器如何工作 5.6 成员初始化 5.6.1 指定初始化 5.7 构造器初始化 5.7.1 初始化顺序 5.7.2. 静态数据的初始化 5.7.3. 显式的静态初始化 5.7.4. 非静态实例初始化 5.8 数组初始化 5.8.1 可变参数列表 5.9 枚举类型 5.10 总结 第6章 访问权限控制 第7章 复用类 第8章 多态 第9章 接口 第10章 内部类 第11章 持有对象 第12章 通过异常处理错误 第13章 字符串 第14章 类型信息 第15章 泛型 第16章 数组 第17章 容器深入研究 第18章 Java I/O系统 第19章 枚举类型 第20章 注解 第21章 并发 第22章 图形化用户界面 附录A 补充材料 可下载的补充材料 Thinking in C:Java的基础 Java编程思想 研讨课 Hands-on Java研讨课CD Thinking in Objects研讨课 Thinking in Enterprise Java Thinking in Patterns(with Java) Thinking in Patterns研讨课

2013-07-01

深入浅出oracle

循序渐进地学习使用Oracle开发所需知识 n 第一部分:关系数据库基础 数据库是什么、有什么、能干什么;关系型数据库是什么、有什么、能干什么 关系理论 n 第二部分:SQL SQL是什么、有什么、能干什么 Oracle数据类型 DDL、DML n 第三部分:SQL实战 行列转换、分页、树 n 第四部分:JDBC 使用Java操作数据库 《深入浅出学Oracle》——系列精品教程

2013-07-01

疯狂Java讲义(李刚)

第 1 章Java 语言概述...........................................1 1.1 Java 语言的发展简史.............................. 2 1.2 Java 的竞争对手及各自优势................. 4 1.2.1 C#简介和优势................................... 4 1.2.2 Ruby 简介和优势.............................. 5 1.2.3 Python 简介和优势............................ 5 1.3 Java 程序运行机制.................................. 6 1.3.1 高级语言的运行机制......................... 6 1.3.2 Java 程序的运行机制和JVM............. 6 1.4 开发Java 的准备..................................... 7 1.4.1 下载和安装Java 7 的JDK................. 8 不是说JVM是运行Java程序的虚拟 机吗?那JRE和JVM的关系是怎样 的呢? ............................................... 8 为什么不安装公共JRE呢?................. 1.4.2 设置PATH 环境变量........................10 9 为什么选择用户变量?用户变量 与系统变量有什么区别?.................. 1.5 第一个Java 程序....................................11 11 1.5.1 编辑Java 源代码..............................11 1.5.2 编译Java 程序.................................12 当我们编译C程序时,不仅需要指 定存放目标文件的位置,也需要指 定目标文件的文件名,这里使用 javac编译Java程序时怎么不需要指 定目标文件的文件名呢?.................. 1.5.3 运行Java 程序.................................13 12 1.5.4 根据CLASSPATH 环境变量 定位类.............................................14 1.6 Java 程序的基本规则.............................15 1.6.1 Java 程序的组织形式.......................15 1.6.2 Java 源文件的命名规则....................15 1.6.3 初学者容易犯的错误........................16 1.7 垃圾回收机制..........................................18 1.8 何时开始使用IDE 工具........................19 我想学习Java编程,到底是学习 Eclipse好呢,还是学习NetBeans好 呢? .................................................. 1.9 本章小结..................................................20 20 本章练习 ....................................................20 第 2 章理解面向对象..........................................21 2.1 面向对象..................................................22 2.1.1 结构化程序设计简介.......................22 2.1.2 程序的三种基本结构.......................23 2.1.3 面向对象程序设计简介....................25 2.1.4 面向对象的基本特征.......................26 2.2 UML(统一建模语言)介绍................27 2.2.1 用例图.............................................29 2.2.2 类图................................................29 2.2.3 组件图.............................................31 2.2.4 部署图.............................................32 2.2.5 顺序图.............................................32 2.2.6 活动图.............................................33 2.2.7 状态机图.........................................34 2.3 Java 的面向对象特征.............................35 2.3.1 一切都是对象..................................35 2.3.2 类和对象.........................................35 2.4 本章小结..................................................36 第 3 章数据类型和运算符..................................37 3.1 注释..........................................................38 3.1.1 单行注释和多行注释.......................38 3.1.2 文档注释.........................................39 API文档是什么? ................................39 为什么要掌握查看API文档的方 法? .................................................. 3.2 标识符和关键字.....................................45 41 3.2.1 分隔符.............................................45 3.2.2 标识符规则......................................46 3.2.3 Java 关键字......................................46 3.3 数据类型分类..........................................47 3.4 基本数据类型..........................................47 3.4.1 整型................................................48 3.4.2 Java 7 新增的二进制整数.................49 3.4.3 字符型.............................................50 3.4.4 浮点型.............................................51 3.4.5 Java 7 新增的数值中使用下画线 分隔 ................................................52 3.4.6 布尔型.............................................52 3.5 基本类型的类型转换.............................53 3.5.1 自动类型转换..................................53 目 录 ·X· 3.5.2 强制类型转换..................................54 3.5.3 表达式类型的自动提升....................56 3.6 直接量......................................................57 3.6.1 直接量的类型..................................57 3.6.2 直接量的赋值..................................57 3.7 运算符......................................................58 3.7.1 算术运算符......................................58 3.7.2 赋值运算符......................................61 3.7.3 位运算符.........................................61 3.7.4 扩展后的赋值运算符........................64 3.7.5 比较运算符......................................65 3.7.6 逻辑运算符......................................66 3.7.7 三目运算符......................................66 3.7.8 运算符的结合性和优先级................67 3.8 本章小结..................................................68 本章练习 ....................................................68 第 4 章流程控制与数组......................................70 4.1 顺序结构..................................................71 4.2 分支结构..................................................71 4.2.1 if 条件语句......................................71 4.2.2 Java 7 的switch 分支语句.................75 4.3 循环结构..................................................77 4.3.1 while 循环语句.................................77 4.3.2 do while 循环语句............................78 4.3.3 for 循环...........................................79 4.3.4 嵌套循环.........................................81 4.4 控制循环结构..........................................83 4.4.1 使用break 结束循环.........................83 4.4.2 使用continue 结束本次循环.............84 4.4.3 使用return 结束方法........................85 4.5 数组类型..................................................86 4.5.1 理解数组:数组也是一种类型.........86 int[]是一种类型吗?怎么使用这种 类型呢?........................................... 4.5.2 定义数组.........................................86 86 4.5.3 数组的初始化..................................87 能不能只分配内存空间,不赋初始 值呢? .............................................. 4.5.4 使用数组.........................................88 87 为什么要我记住这些异常信息? ....... 4.5.5 foreach 循环.....................................89 89 4.6 深入数组..................................................91 4.6.1 内存中的数组..................................91 为什么有栈内存和堆内存之分? ....... 4.6.2 基本类型数组的初始化....................93 91 4.6.3 引用类型数组的初始化....................94 4.6.4 没有多维数组..................................96 我是否可以让图 4.13 中灰色覆盖 的数组元素再次指向另一个数 组?这样不就可以扩展成三维数 组吗?甚至扩展成更多维的数 组? .................................................. 4.6.5 操作数组的工具类...........................99 98 4.6.6 数组的应用举例.............................101 4.7 本章小结................................................104 本章练习 ..................................................104 第 5 章面向对象(上) .................................... 105 5.1 类和对象................................................106 5.1.1 定义类...........................................106 构造器不是没有返回值吗?为什 么不能用void修饰呢? .................... 5.1.2 对象的产生和使用.........................108 108 5.1.3 对象、引用和指针.........................109 5.1.4 对象的this 引用............................. 110 5.2 方法详解................................................ 114 5.2.1 方法的所属性................................ 114 5.2.2 方法的参数传递机制..................... 115 5.2.3 形参个数可变的方法..................... 118 5.2.4 递归方法....................................... 119 5.2.5 方法重载.......................................121 为什么方法的返回值类型不能用 于区分重载的方法? ....................... 5.3 成员变量和局部变量...........................122 121 5.3.1 成员变量和局部变量.....................122 5.3.2 成员变量的初始化和内存中的 运行机制 .......................................125 5.3.3 局部变量的初始化和内存中的 运行机制 .......................................127 5.3.4 变量的使用规则.............................128 5.4 隐藏和封装............................................129 5.4.1 理解封装.......................................129 5.4.2 使用访问控制符.............................129 5.4.3 package、import 和import static......132

2013-07-01

jdom压缩包

jdom软件包,用于解析xml文件,jdom解析.

2013-05-21

jd2chm.exe

jd2chm 是一款将javadoc(html格式) 转换成 chm格式的软件。 操作步骤 : 1. 将jd2chm.exe 拷贝到 C:\WINDOWS\system32 2. 点击htmlhelp.EXE 进行安装(采用默认路径即可) 3. cmd打开DOS平台。 4. 进入到JavaDoc所在的路径 例子: 1) DOS 下进入 D:/javadoc(我的JavaDoc目录) 2) 输入jd2chm.exe回车 3) D:\>cd javadoc D:\javadoc>jd2chm.e jd2chm Version 0.3 Copyright (c) 2000- http://www.burgaud. The project name will be given to: - The HTML Help project files (.HHP, .HHK, .HHC) - To the final CHM file Enter the project name: compilerlijr141 The project title will be assign to the CHM window Enter the project title: compilerlijr141 接下来就等待生产chm文件(系统会生成在D:\javadoc目录下即你的javadoc目 录下) 5. 错误处理 : 生成是可能会出现一些错误。在此将我遇到的一些错误及解法给出来如下。 IOError: [Errno 13] Permission denied: 'index-files/.svn' 如果出现以上错误,你需要删除你javadoc中的所有SVN文件夹,然后重新生成 File "exe\buildjd2chm\out1.pyz/shutil", line 140, in rmtree SError: [Errno 13] Permission denied removing c:\docume~1\zengqy\locals~1\temp\ d2chm\.svn\all-wcprops 如果出现以上代码,你需要到C:\Documents and Settings\zengqy\Local Settings\Temp(你当 前用户的临时文件目录)下 删除jd2chm文件夹,重新来一次就OK了

2013-05-22

xwork-validator-1.0.0.dtd

xwork-validator-1.0.0.dtd 用于struts的框架验证。

2013-05-22

XML的4种解析

xml的4种解析包括 DOM解析 、 DOM4j解析、jdom解析和SAX解析等四种.

2013-05-22

SQLServer数据库驱动包

SQLServer要操作数据库,sqljdbc包是必不可少的。用于连接数据库的包。

2013-05-21

空空如也

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

TA关注的人 TA的粉丝

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