<Microsoft Sql server 2008 Internals>索引文件夹: <Microsoft Sql server 2008 Internals>读书笔记--文件夹索引 在第五章主要学习了table的内部存储结构,第七章<Special storage>中将继续深入学习存储机制,那将是本书最难理解的一章. 第六章主要介绍index的基础知识,第八章是<query Optimizer>,以下我们先来看看第六章:Indexes:Internals…
这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #include <stdio.h> int main (void) { long num; long sum = 0L; int status; printf("Please enter an integer to be summed. "); printf("q to qui…
1.      内部类的概念? 类中类 2.      为什么要用内部类? 内部类的方法可以访问外部类的实例域 内部类对外部类的同一个包中的类实现了隐藏 匿名内部类在“想要定义一个回调函数却又不想编写大量代码”时非常便捷 3.      内部类语法详谈(常规) 1.       内部类与外部类是类之间的关系,不是对象之间的关系 虽然TimePrinter类位于TalkingClock类的内部,但这并不意味着,每个TalkingClock对象都有一个TimePrinter实例域.因为,TimePr…
第 14 章 多线程 本章内容: * 什么是线程 * 中断线程 * 线程状态 * 线程属性 * 同步 * 阻塞队列 * 线程安全的集合 * Collable与Future * 执行器 * 同步器 * 线程与Swing 通常,每一个任务称为一个线程(thread),它是线程控制的简称.可以同时运行一个以上线程的程序称为多线程程序(multithreaded). 多进程与多线程有哪些区别呢?本质的区别在于每个进程拥有自己的一整套变量,而线程则共享数据.共享变量使线程之间的通信比进程之间的通信更有效.…
第13章 集合 本章内容: * 集合接口 * 具体的集合 * 集合框架 * 算法 * 遗留的集合 13.1 集合接口 Enumeration接口提供了一种用于访问任意容器中各个元素的抽象机制. 13.1.1 将集合的接口与实现分离 Java集合类库将接口(interface)与实现(implementation)分离. 队列接口指出可以在队列的尾部添加元素,在队列的头部删除元素,并且可以查找队列中元素的个数.当需要收集对象,并按照“先进先出”的规则检索对象时就应该使用队列. 队列通常有两种实现方…
第12章 泛型程序设计 本章内容: * 为什么要使用泛型程序设计 * 定义简单泛型类 * 泛型方法 * 类型变量的限定 * 泛型代码和虚拟机 * 约束与局限性 * 泛型类型的继承规则 * 通配符类型 * 反射和泛型 使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性. 12.1 为什么要使用泛型程序设计 泛型程序设计(Generic programming)意味着编写的代码可以被很多不同类型的对象所重用. 12.2 定义简单泛型类…
第11章 异常.断言.日志和调试 本章内容: * 处理错误 * 捕获异常 * 使用异常机制的技巧 * 使用断言 * 日志 * 调试技巧 * GUI程序排错技巧 * 使用调试器 11.1 处理错误 如果由于出现错误而使得某些操作没有完成,程序应该: 返回到一种安全状态,并能够让用户执行一些其他的命令: 允许用户保存所有操作的结果,并以适当的方式终止程序. 异常处理的任务就是将控制权从错误产生的地方转移给能够处理这种情况的错误处理器.为了能够在程序中处理异常情况,必须研究程序中可能会出现的错误和问题…
第9章 Swing用户界面组件 本章内容: * Swing与模型-视图-控制器设计模式 * 布局管理概述 * 文本输入 * 选择组件 * 菜单 * 复杂的布局管理 * 对话框 本章将介绍构造功能更加齐全的图形用户界面(GUI)所需要的一些重要工具. 9.1 Swing和模型-视图-控制器设计模式 9.1.1 设计模式 容器和组件是“组合(composite)”模式.带滚动条的面板是“装饰器(decorator)”模式.布局管理器是“策略(strategy)”模式. 9.1.2 模型-视图-控制器…
第8章 事件处理 本章内容: * 事件处理基础 * 动作 * 鼠标事件 * AWT事件继承层次 8.1 事件处理基础 在AWT所知的事件范围内,完全可以控制事件从事件源(event source)例如,按钮或滚动条,到事件监听器(event listener)的传递过程,并将任何对象指派给事件监听器.不过事实上,应该选择一个能够便于响应事件的对象.这种事件委托模型(event delegation event)与Visual Basic那种预定义监听器模型比较起来更加灵活. 事件源有一些向其注册…
第7章 图形程序设计 本章内容: * Swing概述 * 创建框架 * 框架定位 * 在组件中显示信息 * 处理2D图形 * 使用颜色 * 文本使用特殊字体 * 显示图像 本章主要讲述如何编写定义屏幕上的窗口大小和位置的程序:如何在窗口中采用多种字体显示文本:如何显示图像等. 7.1 Swing概述 在Java 1.0刚刚出现的时候,包含了一个用于基本GUI程序设计的类库,Sun将它称为抽象窗口工具箱(Abstract Window Toolkit,AWT).基本AWT库采用将处理用户界面元素的…
第6章 接口与内部类 本章内容: * 接口 * 对象克隆 * 接口与回调 * 内部类 * 代理 接口技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现.一个类可以实现(implement)一个或多个功能,并在需要接口的地方,随时使用实现了相应接口的对象. 对象的克隆是指创建一个新对象,且新对象的状态和原始对象的状态相同.当对克隆的新对象进行修改时,不会影响原始对象的状态. 内部类定义在另外一个类的内部,其中的方法可以访问包含它们的外部类的域.内部类技术主要用于设计具有相互协作关系的类集…
第5章 继承 本章内容: * 类.超类和子类 * Object:所有类的超类 * 泛型数组列表 * 对象包装器和自动装箱 * 参数数量可变的方法 * 枚举类 * 反射 * 继承设计的技巧 利用继承,人们可以基于已存在的类构造一个新类.继承已存在的类就是复用(继承)这些类的方法和域.在此基础上,还可以添加一些新的方法和域,以满足新的需求. 反射是指在程序运行期间发现更多的类及其属性的能力. 5.1 类.超类和子类 “is-a”关系是继承的一个明显特征. 在Java中,所有的继承都是公有继承,而没有…
第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以及循环)在Java中的实现方式. 3.1 一个简单的Java应用程序 Java对大小写敏感. Java定义类名规则:名字必须以字母开头,后面可以跟字母和数字的任意组合.长度基本上没有限制.但是不能使用Java保留字作为类名. 标准的命名规则为:类名是以大写字母开头的名词.如果名字由多个单词组成,每个…
第2章 Java程序设计环境 本章内容: 安装Java开发工具箱 使用集成开发环境 选择开发环境 运行图形化应用程序 使用命令行工具 建立并运行applet本章主要介绍如何安装Java开发工具箱(JDK)以及如何编译和运行各种类型的程序:控制台程序.图形化应用程序以及applet应用程序. 2.1 安装Java开发工具箱 2.1.1 下载JDK 下载地址:www.oracle.com/technetwork/java/javase/downloads. JDK:Java Development…
第10章 部署应用程序和applet 本章内容: * JAR文件 * Java Web Start * applet * 应用程序首选项存储 10.1 JAR文件 一个JAR文件既可以包含类文件,也可以包含诸如图像和声音这些其他类型的文件.此外,JAR文件是压缩的,它使用了大家熟悉的ZIP压缩格式. pack200是一种较通常的ZIP压缩算法更加有效的压缩类文件的方式.Oracle声称,对类文件的压缩率接近90%. 可以使用jar工具制作JAR文件(在默认的JDK安装中,位于jdk/bin目录下…
Char2 XML 解析器:读入一个文件,确认其具有正确的格式,然后将其分解成各种元素,使程序员能够访问这些元素. java库提供了两种XML解析器:DOM和SAX,即文档对象模型和流机制解析器. DOM不适合处理太长的XML,考虑到内存的消耗. 如果只对XML中的某些元素感兴趣,而不关心上下文,考虑用SAX. DOM解析器的接口已经被W3C标准化了,org.w3c.dom包中包含了这些接口类型的定义,比如Document和Element等.不同的组织都提供了实现这些接口的DOM解析器,如Apa…
第二章 Java内存区域与内存溢出异常 1.运行时数据区域 程序计数器: 当前线程所执行的字节码的行号指示器,用于存放下一条需要运行的指令. 运行速度最快位于处理器内部. 线程私有. 虚拟机栈: 描述的是Java方法执行的内存模型,用于存放对象的引用和基本数据类型. 每个方法执行的时候都会创建一个栈帧(stack frame)用于存放 局部变量表.操作栈.动态链接.方法出口. 线程私有,生命周期与线程相同. 方法栈: 和虚拟机栈功能类似,管理本地的方法调用. 虚拟机栈为虚拟机执行的Java方法的…
http://www.cnblogs.com/batteryhp/p/5021858.html 输入输出一般分为下面几类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据.利用Web API操作网络资源. 1.读写文本格式的数据 自己感觉读写文件有时候"需要运气",经常需要手工调整.因为其简单的文件交互语法.直观的数据结构,以及诸如元组打包解包之类的便利功能,Python在文本和文件处理方面已经成为一门招人喜欢的语言.pandas提供了一些用于将表格型数据读取为DataFra…
首先写第二部分的前言. 第二部分用来介绍获取数据基本信息的图形技术和统计方法. 本章主要内容 条形图.箱型图.点图 饼图和扇形图 直方图和核密度图 分析数据第一步就是要观察它,用可视化的方式是最好的.本章的主题有两个 1.将变量的分布作可视化展示 2.通过结果变量进行跨组比较 下面从不同的图形开始探索数据. 6.1条形图 6.1.1简单地条形图 条形图是通过条形展示离散变量的频数分布.函数是barplot: barplot(height) height是主要参数,horiz = TRUE就是横向…
一.锁的基本原理 多个线程同时对共享的同一数据存取 ,在这种竞争条件下如果不进行同步很可能会造成数据的讹误. 例如:有一个共享变量int sum=0, 一个线程正调用 sum+=10,另一个线程正好也在调用sum+=20,期望的结果应该是sum=30. 但是+=操作并不是原子的,虚拟机需要用多条指令才能来完成这个操作(load,add, store),每个指令执行完都有可能被剥夺执行权,同时让另一个线程继续运行.(可以使用javap -c -v CLASS命令将class文件反编译为可阅读的虚拟…
有时,我们需要在一个程序中同时并行的处理多个任务,如播放器一边要播放音乐同时还要不断更新画面显示,或者是一边执行耗时任务,UI还能一边继续响应各种事件.还有的时候,一个任务需要很长时间才能完成,如果分成多份一起执行,可以极大的缩短需要的时间.多线程可以很好的解决这类问题. 一个程序(进程)如果可以同时执行多个任务,每个并行的任务都是通过一个线程来完成,这就是一个多线程程序.进程拥有自己的一整套数据(变量),各个线程共享进程的数据,线程间通信比进程间通信更简单,线程开销比进程小. Java中为多线…
ch2 XML SAX解析器 SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser();    //建立SAX解析器对象 parser.parse(source,handler);  //source可以是文件,URL或者字符串输入流,handle是DefaultHandler的子类 DefaultHandler handler = new Defaul…
ch2 XML 有两种XML文档结构,DTD和Schema,用解释文档构成规则,这些规则指定了每个元素俺的合法子元素和属性. DTD DTD有多种提供方式,可以像下面这样加到XML中: <?xml version="1.0"?> <!DOCTYPE configuration [    //文档类型必须匹配根元素的名字 <!ELEMENT configuration ...> more rules ... ]> <configuration&g…
从面相对象编程到面相切面编程,是一种代码组织方式的进化. 每一代的代码组织方式,其实是为了解决当时面对的问题.比如写编译器和写操作系统的时候的年代当然要pop,比如写界面的时候当然要oop,因为界面这东西是人造的约定俗成的,继承关系清晰明了,当写互联网软件的时候自然要面相服务sop.大型商务系统的编写,问题就更加复杂,aop就应运而生了. AOP 应用:1. 监控系统重要API的调用事件,用来监控系统的性能.2.Authentication 权限3. Caching 缓存4. Context p…
7.动态代理 代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替“实际”对象的对象.这些操作通常涉及与“实际”对象的通信,因此代理通常充当着中间人的角色. 什么是代理模式? 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问. 代理模式有什么好处? 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式一般涉及到的角色有: 抽象角色:声明真实对象和代理对象的共同接口,这样一来在任何可以使用目标对象…
对象vs对象变量 “对象” 描述的是一个类的具体实例,他被java虚拟机分配在 "堆" (Heap)中. “对象变量” 为一个对象的引用(对象变量的值=记载着具体对象的位置/地址),他被分配在 "栈" (Stack) 上. Date birthday = new Date(); birthday - 即为对象变量,他被分配在 Stack 上,初始化的Date对象被分配在 Heap 中,如图: 方法的隐式参数 在Java中,通常将 this 关键字称为方法的隐式参数.…
引言 之前通过网上的实例自己使用了Java的一些技术及轮子快速的的“烂“造了一些小应用,但是毕竟没有认真地了解和认知Java,遂打算花一个月左右的时间来细细品味一下... 从头开始,慢慢深入!! Java的定义 Java 并不只是一种语言,他是一个完整的平台,拥有庞大的库,其中包含许多可重用的代码和一个提供诸如安全性.跨操作系统的可移植性以及自动垃圾回收等服务的执行环境. Applet Applet 指的是在网页中运行的Java程序. 最早表示的是在支持Java的浏览器中运行的程序.现在一般指的…
1.编译单元 一个 编译单元即 .java 文件 内只能有一个 public 类  且该文件名必须与public 类名 完全一致. 编译单元内也可以没有public类 文件名可随意. 2. 包:库单元 默认访问权限即包访问权限,同一包下可访问(指同一目录下各个.java文件中的包访问权限类或者类成员可相互访问). 父,子目录不属于同一包(其实没有什么父子目录,包名都是唯一的). 包可以看成类的集合,里面有public类 也有默认权限类,所以同一包下2个.java文件中不能有类同名. 要使用其他包…
6.1创建函数 函数是可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用: >>> x=1 >>> y=math.sqrt >>> callable(x) False >>> callable(y) True 定义函数用def 语句: def fib(num): result=[0,1] for i in range(num-2): resul…
1.字符串从概念上讲,Java字符串就是Unicode字符序列.Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,叫String. 每个用双引号括起来的字符串都是 String类的一个实例 子串(截取字符)String类的substring方法可以从一个较大的字符串提取出一个子串. public String substring(int beginIndex, int endIndex)第一个int为开始的索引,对应String数字中的开始位置,第二个是截止的索引位置,对…