自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weiwenhp

追求理性之美,简单之美

  • 博客(28)
  • 收藏
  • 关注

原创 计算机体系结构

计算机跟人对比学计算机组成原理时我们都知道计算机主要是五大部件,输入设备,输出设备,控件器,运算器,存储器.输入设备主要是鼠标,键盘.输出设备主要是显示器,打印机.存储器主要是主存(内存)和硬盘.可以把内存看作一种速度很快的特殊硬盘.只不过硬盘可以永久保持信息,内存的话一旦断电后里面东西全丢了.控件器与运算器就统称为CPU.个人电脑都基本上是这样,Server的话只有CPU,内存,硬盘也可

2012-09-29 11:43:24 1296

原创 对数学的一点看法

不喜欢容易数学的心理学原理           以前读书时对数学没啥特别的感觉,谈不上喜欢也谈不上讨厌.大部分时候是为了应付考试而学.没有从数学中找到啥乐趣.工作后感觉数学在蛮多应用中发挥了重要作用才慢慢有点兴趣,其实以前也知道数学在很多领域都有重要应用.但没能眼见为实啊,只有自己亲身体验下才能体会到.由于数学实在过于抽象,很多人都不容易对数学产生好感.这其实可以用认知心理学派的图式来解释下,

2012-09-26 20:55:49 1626 1

原创 C++与C#对比学习:类初始化

类和柏拉图的理念世界  我们知道面向对象编程中到处是一个个的类,但类只是个概念性的东西,不是个实体,不占内存,你没实例化之前也不能用它.只有把类实例化成一个对象后,它才是一个真正存在的实体.占有内存,能被我们使用.类就有点像柏拉图所说的理念世界一样,柏拉图认为存在着两个世界,一个是我们生活于其中的现实世界,与之对立的是理念世界,理念世界有些啥东东呢?那是个永恒不变的世界,由一堆堆的理念组成,比

2012-09-23 13:44:14 2539

原创 C++与C#对比学习:让对象变得像常量

我们知道如果不希望改变某个变量的值就用const修饰它,让它变为常量.基本类型和指针类型都能用const来修饰.数组也可以用const来修饰.那你自然要问我们把class实例化成一个对象后,如果不希望修改对象中的成员变量,让对象变得像个常量一样该咋整呢?你首先自然会想到把类中所有的成员变量都用const修饰不就得了.其实这确实是个办法拉,但是如果我们只是想某个类的一个实例对象弄得像常量啊.

2012-09-22 16:39:56 1048

原创 void指针

我们知道用malloc函数申请一块内存后返回的是一个void指针,void指针又叫无类型指针,我们可以把它看成一个纯粹的指针,不指明它指向任何类型,但它可以转化成其他任何类型的指针.这其实很好理解,出于通用性考虑malloc申请了一块地址后然后用一个指针指向内存的首地址.因为不知道你申请内存给哪种类型.所以由你自己转换去.     其实我们从类的继承来考虑就比较容易理解.在MFC中所有类都继承

2012-09-22 14:32:54 2126

原创 C++与C#对比学习:模板,泛型

为啥要用模板 我们知道有很多不同的对象类型可能有相同的操作,基本类型如数值类型的都有加减乘除,比大小啊.一个个从现实中抽象出来的类就更是具体很多共性了.如果是同一类事物可以弄个父类出来就OK,比如动物都具体的某些通用操作就搞个animal基类完事.但如果不是同一类事物,就不容易整个继承关系出来啊.比如人有身高,可以计算体重,一块石头也有长宽高,可以计算体重.如果有一个计算体重的函数,大家都可以

2012-09-22 12:03:37 2081

原创 C++动态分配内存

为啥需要动态分配内存     数组是我们常用的一种数据结构.但它有一个缺点,就是用的时候必须确定数组大小.如果我们要用数组来保存的数据不确定可咋整啊?把数组定得太大浪费空间,太小的话又装不下.这是一种情况.另外就是对象太大.我们使用的数据大部分时候都默认保存在栈(stack)里面,由系统去管理,会自动给分配内存,自动给删除掉.但是stack很小,就那么几M,如果你读取一个几十M的文本内容然

2012-09-22 11:09:47 14529 2

原创 C++与C#对比学习:内联函数,匿名函数

为啥用内联函数(inline functions)    在C++中函数调用需要建立栈环境,进行参数复制,保护调用现场,返回时进行返回值复制,恢复调用现场.这些操作都需要额外开销.那有啥好办法避免频繁的函数调用呢,  首先想到的可能是把函数中的代码直接拿来用,而不用先在某处弄个函数,然后再去调用,当然也只是函数比较简单时可行.但如果多处用到那函数的话,你全部替换会使得代码冗余,可读性下

2012-09-21 16:26:52 5135

原创 引用是特殊指针

很多人把指针和引用看成两个完全不同的东西,引用只是个别名,不占用实际内存,只不过操作起来有点像指针.实际上引用就是一个指针,只不过是个特殊的指针,编译器对它做了些特殊的处理.它也占用内存.但由于编译器做了特殊处理,你不能用&去取址,用sizeof得到的值也不会是4或者8,而是它引用的对象的size大小.其实我们想想也知道,如果引用真只是个别名,没啥其他意思.那真是叫饱了撑着搞个引用出来啊.直接

2012-09-21 15:09:03 1408 1

原创 数组名不是指针

很多人认为数组名除了能使用中括号加下标这种特殊用法外就跟指针一样,就是一个指针.比如int arr[] = {1,2,3};       int* pInt = arr;             //数组名直接赋值给指针       void   Function(int* pInt)      {           cout       }      Functio

2012-09-21 11:47:00 2804

原创 C#反射(Reflection),特性(Atrribute)

反射定义   反射就是审查元数据并收集关于它的类型信息的能力.    那元数据又是个啥东东呢?元数据是程序集里的东西. 我们知道程序编译之后会生成很多dll,它就是程序集,一般是一个project对应一个程序集吧.一个程序集(assembly)就是一个dll或exe文件(不过据说有多文件程序集,不知道是不是一个程序集是多个dll,没研究过啊).当然不是所有的dll文件都叫程序集.其他程序语

2012-09-20 15:07:58 1632

原创 C++与C#对比学习:消息,事件(一)

窗体(windows),事件(event),消息(message)      我们大部分人用的操作系统都是微软的windows系列.windows顾名思义是窗口,窗体.它最大的特点就是几乎所有操作都是图形界面.在面向对象开发中是一切皆对象,那在windows的操作中是一切皆窗体.窗体背后对应的是消息机制.是以消息以基础,以事件为驱动.所谓窗体就是我们能用眼睛看得到的一个个图形界面,几乎任何

2012-09-19 16:28:09 2427

原创 C++与C#对比学习:内存管理

我们知道计算机最重要的资源就是CPU和内存了.CPU的话我们貌似不能直接去操作,都是操作系统去管.而内存的话分为内核区和用户区.内核区是由操作系统管理,我们只能通过一些API去间接操作.而用户区就可以让应用程序去使用了.我们编程大部分时候就是在用户内存区中折腾来折腾去.     C++内存分区C++的内存一般分为栈(stack),堆(heap),自由存取区,全局/静态存储区,常量存储区,代

2012-09-13 20:47:50 1948

原创 C#操作MySql,PostgreSQL

我们都对MySql比较熟悉,相较而言PostgreSQL就没那么出名.其实它们是两个比较类似的关系型数据库.PostgreSQL原来的名字叫Postgres,做了一些改进后就改名为PostgreSQL了.详细介绍可以去官方网站看看MySQL官网:http://www.mysql.com/PostgreSQL官网:http://www.postgresql.org/MySQL装好后一般没...

2012-09-13 16:37:04 2856

原创 SQLite简介,C#调用SQLite

     当我们用到海量数据时一般会用Oracle,SQL Server,DB2,Sybase,MySQL等数据库来保存和管理数据.如果只是程序中需要保存少量数据的话直接整到注册表里,或者保存到一个XML文件中.那如果数据量刚好不多不少,用Oracle这样的数据库有点小题大作,没有必要.有个XML保存的话存取速度又比较慢.咋整呢?这时用SQLite这个小型的嵌入式数据库就是非常理想的选择.它用起来...

2012-09-13 16:07:56 16032 1

原创 C++与C#对比学习:多态,虚函数

地球人都知道面向对象的三个主要特征是封装,继承,多态.前面两个概念顾名思义,比较容易理解,封装就是所有的东东都给封装到一个个的class中,并通过public,private等访问修饰符提供一些权限控制.继承嘛就是子类能拥有父类的非私有的成员变量和函数,就像你能继承你老子的财产一样啊.多态光看名字可不好理解,可没变态那么通俗易懂啊.其实前面说的三个特性还有另外的版本,比如:数据抽象,继承,动态绑定

2012-09-11 20:29:18 2635

原创 C++与C#对比学习:多重继承

我们知道C++中类可以多重继承,这也符合现实情况,比如某个绿帽高戴的男同志身边的某位美女可能同时具备几个身份,老婆,小三,孩子他妈.这样的话这位美女得同时继承这三个类.不过由于多继承会有一些缺陷,比如二义性.而且虽然多继承方便直观点,但没有它也不是不行.其实少了类少了面向对象也不是就做不了啥事,像C语言没有类还不是用的好好的.所以啊这个世界上很多事并不是那么必不可不少的.比如你明天光荣牺牲了这个世

2012-09-11 16:57:46 2445

原创 C++与C#对比学习:数字的故事

进制的故事        跟数字打交道时我们接触的最多的是十进制了,我们从小学到大学的数学课基本上都用的十进制.但实际上还存在各种各样的其他进制.比如时间就是60进制,中国古代用十六进制表示重量,十六两是一斤,所以有成语半斤八两.      而我们现在普遍使用的电脑跟二进制是离不开,可以说如果没有二进制的发明就没有计算机如今的普及,这就得感谢莱布尼兹这样的牛人了啊,其实计算机领域真正的

2012-09-11 12:21:27 1511

原创 Win32 API与MFC创建窗口对比

Win32 API创建窗口 新建一个Win32 Project,命名为MyWin32APIForm ///////////////////////////////////MyWin32APIForm.cpp////////////////////////////////////////////////////////////////////#include "stdafx.h"...

2012-09-09 15:41:22 7468 1

原创 C++与C#对比学习:面向对象,接口,抽象类

面向对象的小故事           面向对象程序语言中最重要的概念无疑是class,所谓一切皆对象.(不过要是老天天呆电脑前写代码研究面向对象语言,那要真找对象找老婆就很成问题.可不是满世界的美女们都皆是你对象.) 类是一个抽象的概念,和我们现实生活中对事物分类起名差不多,比如美女,帅哥,二奶,官二代这样的名词就是一个类,代表具有相似属性的一类事物.每一个类实例化之后就是对象.就像美女这

2012-09-08 12:07:48 3252

原创 C++与C#对比学习:类型系统(一)

1.类型系统简介我们认识事务时总喜欢先分个类,然后研究每个各类的特性.在编程语言里面把也会把所有基本内容分门别类.你首先想到的自然是int,long等基本数据类型,然后就是自定义的各种类型(class).这样分门别类有蛮多的好处.一是可以针对不同种类的数据在内存中分配不同大小的内存块,二是可以减少错误.因为不同类型的数据会具有不同的特性,可以进行不同的操作.比如会检查函数参数类型,如果类型

2012-09-07 17:16:28 2960

原创 面向对象思想在Oracle表中的应用

我们知道现在大部分流行的编程语言都是面向对象的.面向对象里一切皆是对象.也就是说一个个的class.在Oracle数据中其实也用到这种思想.我们大部分时候创建一个表时指定每一列的类型都是系统默认的类型.但是有时候为了更加直观,方便我们也可以自定义一些类型,然后建表时指定一列为自定义的类型.这样的表叫对象表例如我创建一个部门信息表,包括员工姓名,年龄,部门.一般情况都是这样建表:CREATE ...

2012-09-07 16:55:06 179

原创 Oracle回收站(recyclebin)

我们都比较熟悉windows中的回收站,文件删除后放到回收站里还可以再复原.Oracle回收站的原理完全一样,只是实现的细节方面有些差异.另外回收站中只能回收表和相关的对象包括索引、约束、触发器、嵌套表、大的二进制对象(LOB)段和LOB索引段.从Orace 10g开始有回收站的功能.1.回收站启动和关闭回收站默认是开启的.不过我们可以通过参数recyclebin来关闭和开启.如果只是针对每...

2012-09-07 16:51:24 204

原创 衡量服务器性能的标准TPC

我们平时买个人电脑时一般会看CPU,内存,硬盘,显卡,操作系统等一些信息,但这样只能有一个直观的感觉.没有一个统一的标准来衡量这台电脑是好还是坏,性价比高不.不过个人电脑就自己用用,价钱也不贵,也不用太较真.但要买服务器(server)就不同了,不仅价钱昂贵,而且是很多人用,影响重大,必须得慎重考虑...这时我们自然也会考虑Server的硬件,操作系统等信息.但同样这不容易有个客观的标准,因为单独...

2012-09-07 16:50:14 279

原创 Java函数转换成Oracle中的函数

Oracle中有个非常强大的功能就是可以把Java编写的函数转换成Oracle数据库中的函数.转换之后我们可以像一般的函数那样用它.因为Oracle本身就是Java开发的,所以自然能很好的和Java兼容.我们就来说下具体怎么操作.就举一个简单例子,创建一个生成文件的函数.1.第一步,建创java resource对象,它和function,procedure等对象一样都是Oracle中的obje...

2012-09-07 16:49:08 116

原创 Unicode(UTF-8, UTF-16)令人混淆的概念

为啥需要Unicode我们知道计算机其实挺笨的,它只认识0101这样的字符串,当然了我们看这样的01串时肯定会比较头晕的,所以很多时候为了描述简单都用十进制,十六进制,八进制表示.实际上都是等价的,没啥太多不一样.其他啥文字图片之类的其他东东计算机不认识.那为了在计算机上表示这些信息就必须转换成一些数字.你肯定不能想怎么转换就怎么转,必须得有定些规则.于是刚开始的时候就有ASCII字符集(Ame...

2012-09-07 16:46:34 207

原创 C++与C#对比学习:switch

平时碰到分支条件判断最常用的是if else语句,不过有时要是分支条件太多用switch就更直观,方便一点.先举两个简单的例子.C++:int num = 2;switch(num){case 1:coutcase 2:coutcase 3:cout //break可省略default:cout//default 非必须,可以省略} C#:int n

2012-09-06 17:49:42 2882 1

原创 计算源代码有多少行

看软件工程方面的一些书时里面会提到源代码多少行.比如一百万行代码的项目与十万行代码的项目所采取的管理方式可能就不一样.于是就想了解下自己参与的项目目前有多少行代码了.但一问同事都说不太清楚,可能是几十万上百万的样子吧.这也太不准了.于是就想到写些代码去计算下.      其实方法很简单,只要遍历所有源文件,然后计算每一个源文件有多少行代码就行了.下面是详细的代码 using System.

2012-09-01 12:38:06 5941

空空如也

空空如也

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

TA关注的人

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