自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

软件开发技术改变世界

一个热衷于软件开发的人留下的足迹

  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 8086汇编7:跳转指令

jmp short 标号:对IP的修改为 -128  至 127  负数为往上跳,正数为往下跳jmp short 标号 执行过程:跳转地址放入IP jmp far ptr 标号:段间转义,又称为远转移。原理:同时修改CS与IPjmp dword ptr 内存单元地址(段间转移)jcxz为由条件转移指令,所有IP地址为短

2017-02-16 23:45:23 1190

原创 8086汇编6:数据处理的基本问题

数据处理的基本问题在8086中,只有BX,BP,SI,DI可以放到[   ]中进行间接寻址。一般会有4种组合:bx+si,bx+di,bp+si,bp+di如果[]中使用寄存器bp,则表示段地址在ss中绝大部分机器指令进行数据处理的指令分为3类:读取、写入、运算处理的数据在三个地方出现:CPU内部、内存、端口寻址方式总结:

2017-02-15 23:39:28 310

原创 8086汇编5:更灵活的寻址方式

and 指令:与,两位为1才是1or 指令:或,两位有1位为1是1字母大小写转换。大小写字母的ASCII的第5位不一样,其他的都一样,不管她是大写还是小写,第5位置0就变成大写字母,第5位置1就变成小写字母or 0010000and 1101111------------------------------------更加灵活访问内存

2017-02-15 00:13:18 325

原创 8086汇编4:bx与loop的使用

loop 与 [bx](1)[bx] :取bx保存数据所对应内存地址(偏移地址)(2)LOOP指令与CXcx = cx -1判断CX中的值,如果不为0则跳转的标号执行,如果为0则向下执行mov cx,11s:add ax,axloop smov ax,2mov cx,3s:add ax,axloop s注意:l

2017-02-14 00:05:59 1860

原创 8086汇编3:负数的表示法-补码

负数的表示法在原来的系统中,负数采用第一位为1,正数位0的做法,比如:3: 00000011-3:10000011但这样有一种特殊的情况,即0的表示会有正负值,即0: 00000000-0:10000000这样的表达容易使计算机混乱,于是负数使用了补码的方式,即整数求反+1比如-3的表示方式:3   =>00000011求反=>111

2017-02-13 10:23:58 5928

原创 8086汇编2:补充点基础知识

(1)8086 加电启动的时候,CS为FFFFH,IP为0000H,即启动时CPU从FFFF0H单元中读取指令执行。(2)要修改CS\IP的值时,必须使用JMP指令。格式为:jmp 段地址:偏移地址。如果要单独修改IP,则用jmp 某一个合法的寄存器,比如mov IP,AX(3)8086CPU有4个段寄存器,其中CS是用来存放指令的段地址,IP用于存放指令的偏移地址。任意时刻CPU将C

2017-02-13 00:00:16 444

原创 C开发经验4:内存管理以及数据类型

一、内存管理操作系统对C语言运行的程序主要分为4个区域,包括:(1)堆(程序员自己malloc的内存块)(2)栈(普通变量、数组)(3)全局区(公共变量、静态变量、常量)(4)代码区(由系统管理)例:int *p  = (int *)malloc(40);则操作系统会在堆上分配40个字节的地址空间,并将首地址返回。另外,系统会自动在栈上开辟1个4字节的空间存储指针变

2017-02-11 22:10:20 237

原创 8086汇编1:HELLO WORLD

assume cs:code,ds:datadata segment   str1 db 'hello world123456789$'data endscode segmentstart:   mov ax,data   mov ds,ax      mov dx,offset str1   mov ah,09h   int 21h

2017-02-11 21:51:25 2906

原创 C开发经验3:如何避免重复包含头文件多次

头文件x.h如何避免重复引用#ifndef    _XXXX   //如果没有定义上#define   _XXXX   //则给你定义//放自己函数的定义int abc();#endif

2017-02-10 23:51:39 243

原创 C开发经验2:读《C语言深度解剖>笔记

1、c语言的定义与声明定义:创建对象并分配内存空间(分配内存)声明:告诉编译器这个名字与内存的匹配情况,或者声明名称不能再重定义。(不分配内存)比如:int i 就是定义一个变量i,并为i开辟一块4字节的内存。extern int i 就是声明这个变量是从外部文件引用,并不再为他开辟空间2、auto、regis

2017-02-10 17:30:13 343

原创 C开发经验1:面向对象封装

(1)前言      面向对象的封装,主要是通过类的体现,通过使用类对成员函数、方法进行封装,从而实现模块化的思想,提升了开发的效率。      面向对象是一种思想,实际上跟某种语言没有关系,理论上汇编语言也是能够进行面向对象开发的,不过比较复杂而已(早期的UNIX就是使用汇编语言开发)。      当然C语言也是可以实现面向对象开发的(理论上C++的编译器大部分都是C写的),在一些大

2017-02-10 14:20:56 342

原创 SQL SERVER 中SmallDateTime与DateTime的区别

datetime从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确度为百分之三秒(等于 3.33 毫秒或 0.00333 秒)。如下表所示,把值调整到 .000、.003、或 .007 秒的增量。smalldatetime从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据精确到分钟。29.998 秒或

2013-07-09 13:48:14 976

原创 IOS入门教材笔记

IOS入门教程 内容MAC OS X简介Objective-c语法IOS开发 IOS:手机操作系统,IPHONE IPAD以及IPOD TOUCH 开发工具:Xcode,只有苹果操作系统上才有 Mac os x简介 苹果电脑操作系统以Unix为基础,既简单一用又功能强大在此操作系统下,可使用Apple提供的开发工具Xcode开发Mac o

2013-04-29 23:41:41 697

原创 《我编程我快乐》读书笔记

第1章   选择市场 你马上就要进行一次大的投资,也许并不是要投入大笔金钱,而是时间,是你的一生。 投机取巧,直接找别人的代码,稍微修改就拿进来用,就像用纸牌搭建房子。 我的想法:我们是在租用自己的知识,而且作为卖家,我们还可以选择性租用知识,租用的同时自己也得到提高。我的产品是由服务构成。这些服务又是什么?你又会把他们出售给谁?接下来的一年,对此种商品的需求是

2013-04-29 16:02:58 827

原创 数据库连接池DBCP框架的研究以及源代码分析三:打开AbandonedObjectPool连接池

前面,我们已经找到了真正的DataSource,这个类就是PoolingDataSource ,同时,也找到了对象状态维护工厂PoolableConnectionFactory目前不用急于往下看代码,如果再继续看,就容易晕,先从整体上思考一下,既然DBCP可以处理我们没有关闭的连接,那么,它的一定有自己的对象池,而且必须继承自GenericObjectPool,我们根据GenericObjec

2013-04-28 17:06:24 1440

转载 程序员修炼之道 你的知识资产【转】

原文地址:http://blog.sina.com.cn/s/blog_65a86d8e0100nr5s.html译序 编程是一种技艺,一种需要用心学习的技艺,也许,只有在长久的学习之后,我们才会开始明白“hacker”的真正含义:"Someone who loves to program and enjoys being clever about it"。

2013-04-28 15:29:25 874

原创 数据库连接池DBCP框架的研究以及源代码分析二:寻找真正的DataSource

从DataSourceFactory中,我们看到DataSourceFactory创建了一个DataBaseSource,如下代码     public static DataSource createDataSource(Properties properties) throws Exception {        BasicDataSource dataSource = new

2013-04-24 22:15:37 1959

原创 数据库连接池DBCP框架的研究以及源代码分析一:第一个DBCP例子

数据库连接池是在commons-pool的基础上扩展来的,实际上很简单,就是把连接放在池中,以达到连接共享以及避免建立新连接以及关闭连接占用资源,当然,DBCP设计得很精妙,连Statement都可以进行放入池中缓存,研究这框架的代码,确实对我们学习设计很有好处,先来看看连接池怎么用,请看下面代码:/*** @param args* @throws IOException

2013-04-24 00:07:26 2382

原创 对象池commons-pool框架的研究以及源代码分析(六)总结

对象池使用总结 (1)      对象池的基本原理,就是将频繁使用的对象进行缓存,并进行共享,避免每次释放资源与创建对象的开销。(2)      对象池必须用在创建与销毁消耗资源比较大的对象上才有效果,在简单对象上,效果不明显,反而把代码弄复杂了。(3)      常用的对象池主要有4种,基于堆栈的Object对象池、线程检测维护的对象池、软引用的对象池以及带key的对象池。(

2013-04-22 19:33:04 854

原创 对象池commons-pool框架的研究以及源代码分析(五)

再来看看Keyed类型的对象池, 先上类图:这图是不是很眼熟?您没有看错,我也没有贴错,Keyed类型的对象池跟普通的对象池基本上调用方式相同,类的结构也相同,唯一不同的是操作对象时需要键值,这样就可以把不同类型的对象,在同一个缓冲池中分类存储,先上一段演示代码:public static void main(String[] args) {        Object obj

2013-04-22 19:17:21 1055

原创 对象池commons-pool框架的研究以及源代码分析(四)

编写了一个关于GenericObjectPool的测试方法,代码如下:public static void main(String[] args) throws Exception {// TODO Auto-generated method stubUserFactory userFactory = new commonPool2().new UserFactory();//内部类的

2013-04-21 22:00:56 1668

原创 对象池commons-pool框架的研究以及源代码分析(三)

看完了StackObjectPool 类之后,我们再来看另外的一个对象池实现,即SoftReferenceObjectPool类,在详细看这个代码之前,先了解一下SoftReference类:SoftReference:即对象的软引用,一个对象软引用后,如果虚拟机内存足够,垃圾回收线程就不会回收软引用对象的内存;与其相对应的是强引用,一个对象设置为强引用后,垃圾回收线程宁可报内存不足的错误,也

2013-04-21 16:27:03 1124

原创 对象池commons-pool框架的研究以及源代码分析(二)

通过上一节的例子,我们使用了一个简单的对象池应用,现在再来看看其内部是如何实现的。先看看主要包括了哪些类:该包所有的类与接口不多,也就20个左右,虽然是一个小项目,其中接口与抽象类的数量,基本上与实现的类差不多,可以说明开发者是使用面向接口编程,而不是面向实现编程,对我们的开发工作有着指导意义,在开发中要尽量面向接口编程而非实现。把类整理一下,分成两类,一类是包括KEY的对象池,一类是

2013-04-21 11:23:17 1613

原创 对象池commons-pool框架的研究以及源代码分析(一)

对象池是一个对象集合,用于将创建好的对象存在该集合中,当需要使用池中的对象时,再从池中取出,恰当地使用对象池可以有效减少对象生成和初始化时的消耗,提高系统的运行效率。另外,利用对象池还可以对对象的状态做一定的维护,确保对象是可用的,提高程序的健壮性。注意:对象池技术,在用于一些创建需要占用大量时间上的对象特别明显,在一些小对象处理上,性能不一定有优势。Common Pool组件提供了一整套实现

2013-04-21 10:17:26 1772

原创 JDBC以及相关技术学习(十)----拦截Connection的close方法

上一节的例子中,可能存在用户调用Connection后,直接调用close 的方法进行关闭,我们重新实现一个Connection,然后重新写close方法,代码如下:public class MyConnection implements Connection {//写这个类的目的是为了拦截Close方法   //类的组合private Connection  realConn

2013-04-19 21:50:47 1222

原创 JDBC以及相关技术学习(九)----简单的连接池实现

连接池:由于数据库的交互过程,主要时间都花在创建连接,那么有一种解决这种问题的情况,就是先创建一批连接,然后放在一个集合中,取连接的时候直接取出,释放连接的时候,不直接释放,而是将Connection对象直接放回集合,这样可以节省大量创建连接的时间。public class MyDataSource implements DataSource {private static String

2013-04-19 21:36:24 511

原创 SQL脚本--(通用存储过程)如何删除表中某个字段重复的数据

该存储过程主要用于删除表中某字段数据重复的记录,目前是保留主键最小的记录,如果需要修改为主键最大的记录,则把红色字体部分自行改为 min/**快速删除重复数据(效率较高,但是不能按照XX字段排序,执行的时间复杂度为重复数最大的字段)@TableName:表名称@PrimaryKey:主键名称@DoubleValue:重复的字段*/ alter pro

2013-04-19 09:49:24 3163

原创 JDBC以及相关技术学习(八)----JDBC元数据

元数据是什么?元数据就是本身固有的特性,比如数据库的元数据,就是指数据库本身具有的各种特性,如是否支持事务,数据库名称等。在JDBC中,元数据主要包括三种,即数据库元数据(DatabaseMetaData)、参数元数据(ParameterMetaData)、结果集元数据(ResultSetMetaData)数据库元数据:Connection conn = JdbcUti

2013-04-18 22:29:54 649

原创 JDBC以及相关技术学习(七)----事务机制与保存点

先上代码:public static void update() throws SQLException{JDBCToolSingleTon jDBCToolSingleTon = JDBCToolSingleTon.getInstance();Connection conn = jDBCToolSingleTon.getConnection();conn.setTransacti

2013-04-18 22:05:34 555

原创 JAVA Runtime相关类学习

JAVA Runtime(运行时),主要是指JAVA应用程序运行时的外在环境以及内在环境与外在环境的总称,运行时是一个动态的过程,程序的外在环境,包括了虚拟机、操作系统的环境,而内在环境包括了程序属性的状态、程序对资源使用情况等。     在JAVA中,主要是Runtime类包括了大量对运行时的操作,另外ShutDown类、System类都包括了相关的操作,就从Runtime类开始学习。

2013-04-18 17:25:44 855

原创 彻底掌握JAVA的异常处理

异常:阻止当前方法或作用域继续执行的问题。特别需要注意的,程序抛出异常,不管这个异常是否严重,都必须进行处理,决不能有运算结果不出错就是正常的想法。先来看看异常有哪些类:Throwable类是JAVA中所有父类,其下有两个子类:Exception与ErrorError:是指不应该试图捕获的严重问题,是不可恢复的错误,比如内存溢出或虚拟机崩溃。 Exception:合理应

2013-04-17 16:14:26 1079

原创 JDBC以及相关技术学习(六)----批量SQL处理

我们操作数据库的时候,加入需要对数据库作大量的操作,可能要频繁操作数据库,而频繁地操作数据库会在一定程度上影响系统性能,这个简单的问题,在JDBC里面早就考虑到了,可以通过对SQL进行批量操作来提高性能,请看以下代码:加入需要插入1000个用户信息:for(int i = 0; i {String sql = "insert into UserInfo(name,birthday,

2013-04-15 21:38:33 554

原创 JDBC以及相关技术学习(五)----PreparedStatement特殊参数处理

PreparedStatement主要有三种特殊的参数,分别为日期类型、大文本流、字节流。(1)日期类型先上代码: JDBCToolSingleTon jDBCToolSingleTon = JDBCToolSingleTon.getInstance();Connection conn = jDBCToolSingleTon.getConnection();String

2013-04-15 21:21:54 892

原创 JDBC以及相关技术学习(四)----运载SQL进行查询交通工具Statement

Statement:主要负责将SQL发送给数据库,并将返回的结果放在ResultSet中。另外,充当同样角色的还包括了PreparedStatement、CallableStatement,这三个类的关系是 PreparedStatement继承Statement,而CallableStatement继承PreparedStatement,其中,PreparedStatement相对于Statem

2013-04-14 22:40:20 1126

原创 JDBC以及相关技术学习(三)----运载查询结果的利器ResultSet

ResultSet一般用于保存数据库返回的结果集,我们可以将其理解成一个与数据库表对应的二维表格。并且为其中保存了一个指针,我们使用该指针可以指向表格的任意一行,并对表格进行相关的操作。先看看上次的例子:DBCToolSingleTon jDBCToolSingleTon = JDBCToolSingleTon.getInstance();Connection conn = jDBCToo

2013-04-13 21:55:31 868

原创 JDBC以及相关技术学习(二)----把JDBC获取连接封装成一个工具类

由上一节的例子我么可以看到,虽然实现了基本与数据库操作的功能,但是,里面对到处都是与数据库密码、URL之类的东西,我们可以想象,如果代码中到处都是充满这样的代码,那简直就是灾难,一点发生变更,比如数据库密码改了,那么就需要对大量的代码进行修改,另外,对资源的释放也不规范,如果释放第一个资源出现错误了,后面的资源就无法得到释放,时间一长,系统就崩溃了。    我们重新对代码进行规范化,做了如下的

2013-04-13 20:30:47 880

原创 JDBC以及相关技术学习(一)----第一个JDBC程序

JDBC是什么?JDBC是JAVA连接数据库的一系列接口,存放在java.sql包中,注意,它仅仅是接口没有任何实现,具体的代码实现是有数据库厂商实现的,我们使用JDBC连接数据库时,无需要关心具体连接是什么数据库,只需要把数据库厂商提供的包引入,然后直接调用JDBC接口就可以对数据库进行操作。先来看一个简单的需求:使用JDBC在SQL SERVER上执行SQL select * fr

2013-04-13 18:01:15 1076

原创 String,StringBuffer与StringBuilder的区别研究(二)

上篇文章简单介绍了String类,这篇详细来说说StringBuilder与StringBuffer,请看下面的类图:在类图中,我们可以看到,不管是StringBuffer还是StringBuilder都是继承自AbstracStringBuilder,而且所有的操作,基本都是封装在AbstracStringBuilder的抽象类中。先来看看AbstracStringBuilder

2013-04-12 13:46:05 636

原创 String,StringBuffer与StringBuilder的区别研究(一)

先来看看String 类,该类实际是一个char类型的数组,String 的所有方法,都是在操作这个数组,看下面代码段:public final class String    implements java.io.Serializable, Comparable, CharSequence{    private final char value[];    private

2013-04-11 18:11:20 498

原创 Character类的常用方法

isLowerCase()isUpperCase()isDigit()//判断是否为数字isDefined()确定字符是否为Unicode字符isLetter()是否为字母isSpaceChar()是否为Unico空白字符isWhitespace() 根据JAVA标准是否为空白字符需要注意的是,Character的属性Size = 16,即:public sta

2013-04-11 16:24:36 1620

CSS2.0样式表中文手册.chm

CSS2.0样式表的中文手册,把它全部学习一遍,CSS基本就通了,不错。

2012-11-22

空空如也

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

TA关注的人

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