- 博客(76)
- 资源 (3)
- 收藏
- 关注
原创 设计模式之单例模式
单例模式,就是在程序运行中只能实例化出一个实例,不论在哪里使用这个类就是这同一个实例,也就是说它实例的地址、内容是一样的。单例模式首先要将类的构造函数私有化,使这个类不能在外部实例化。然后写一个公共函数,专门实例化这个类 ---- 如果这个类没有实例化过,就实例化一次然后返回这个实例,如果实例化过,就直接返回实例化过的类。class Singleton{ priva
2015-11-02 12:14:42 454
原创 设计模式之策略模式
策略模式(strategy):定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。通俗的说,就是一个客户可能需要多种不同的算法(方法,要求等),但是是为了实现一个功能,比如都是为了商场促销,为了让这些算法类与使用算法类之间减少耦合,抽象出它们之间共有的功能,抽象为一个父类,然后使用一个类似工厂的类来管理这些类,也就是根据客户端的要求来实例化不同的类
2015-08-24 15:50:22 417
原创 设计模式之简单工厂模式
简单工厂模式,从字面上看,这个模式就像一个工厂,工厂是干什么的呢?它是用来根据客户的要求来生产东西的。比如客户要求工厂生产一个面包,工厂就会给客户来生产一个面包。至于工厂为什么会生产面包,当然是工厂本身或者和它有关系的工厂有生产面包这个方法,如果没有这个方法,客户再怎么要求,那也是生产不出来的。
2015-08-14 11:31:39 409
原创 设计模式之四大原则
看了大话设计模式,想自己总结一下,以加深印象。本次来总结设计模式中的设计原则。一:单一职责原则它的准确解释是:就一个类而言,应该仅有一个引起它变化的原因。通俗的说,就是一个类不应该有太多的职责,不然的话,当需求发生改变时,你要改动的地方可能非常多且复杂,设计会遭到意想不到的破坏。比如在数据库设计中,如果在一个类中,既要从数据库中取数据,又要对这些数据进行归纳整理,那么这个类就不是好的设
2015-08-13 18:07:03 1718
转载 Linux硬件中断处理
今天看了0.11核的关于硬件中断处理的基本原理,下面作一下总结: 一、I386中断处理原理 I386体系结构CPU中有两种中断,硬中断和软中断,硬中断是外部硬件产生的,软中断是程序中的某条指令或者程序对标志寄存器中某个标志的设置而产生的,与硬件电路无关。无论是硬件中断和软件中断都有各自的中断对应的处理程序,这些处理程序分布在内核中。那么系统是怎么根据不同的中断找到对应的处理过程的呢?当
2014-05-17 18:55:41 874
转载 浅析C# 中object sender与EventArgs e
一、了解C#中的预定义事件处理机制 在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理。 EventArgs是包含事件数据的类的基类,用于传递事件的细节。 EventHandler是一个委托声明如下 public delegate void EventHandler( object sender ,
2014-05-04 21:32:00 582
转载 Linux下查找文件详解
一、问题描述:查找指定目录中指定扩展名指定内容的文件首先介绍二、Linux下常用的查找文件的命令:1. findfind是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下: $ find - : 所要搜索的目录及其所有子目录。默认为当前目录。 - : 所要搜索的文件的特征。 - : 对
2014-04-18 22:54:31 596
原创 ADO.NET 基础
SqlCommend 对象中的方法 1:ExecuteNonQuery(), 执行对象中 CommandText 中的 SQL 语句并返回受影响的行数。2:ExecuteScalar(),执行 SQL 语句 并返回执行结果的第一行第一列。3:ExecuteReader(),返回一个结果集 SqlDataReader。当主键设置为自动生长时,执行 INSERT 语句时要获取
2014-03-25 21:05:05 581
转载 参数化查询为什么能够防止SQL注入
很多人都知道SQL注入,也知道SQL参数化查询可以防止SQL注入,可为什么能防止注入却并不是很多人都知道的。本文主要讲述的是这个问题,也许你在部分文章中看到过这块内容,当然了看看也无妨。首先:我们要了解SQL收到一个指令后所做的事情:具体细节可以查看文章:Sql Server 编译、重编译与执行计划重用原理在这里,我简单的表示为: 收到指令 -> 编译SQL生成执行
2014-03-25 20:47:09 1036
转载 参数化查询为什么能够防止SQL注入
很多人都知道SQL注入,也知道SQL参数化查询可以防止SQL注入,可为什么能防止注入却并不是很多人都知道的。本文主要讲述的是这个问题,也许你在部分文章中看到过这块内容,当然了看看也无妨。首先:我们要了解SQL收到一个指令后所做的事情:具体细节可以查看文章:Sql Server 编译、重编译与执行计划重用原理在这里,我简单的表示为: 收到指令 -> 编译SQL生成执行
2014-03-25 20:38:55 617
转载 浅析Sql Server参数化查询
说来惭愧,工作差不多4年了,直到前些日子被DBA找上门让我优化一个CPU占用很高的复杂SQL语句时,我才突然意识到了参数化查询的重要性。相信有很多开发者和我一样对于参数化查询认识比较模糊,没有引起足够的重视错误认识1.不需要防止sql注入的地方无需参数化 参数化查询就是为了防止SQL注入用的,其它还有什么用途不知道、也不关心,原则上是能不用参数就不用参数,为啥?多麻烦,我只是
2014-03-25 20:22:28 596
原创 CentOS 之 google-chrome 安装小记
由于在 windows 平台上习惯使用 google-chrome 浏览器 ,因此上面存储了许多的书签。有一台旧电脑让我装上了 CentOS 系统,但是上面只有一个自带的 firefox 浏览器,虽然听说可以跨平台存取书签,也可以用导出到 html 格式的文件再用 firefox 导入回去,但常用的电脑在很远的地方,为了不嫌麻烦,也为了锻炼自己安装程序的能力,我决定装上google -chrom
2014-03-24 23:26:54 753
原创 SQL 函数
ISNULL 通常用在 SELECT 语句中,用于判断所查询的值是否为空。它有两个参数,第一个是不为空时选择的信息,第二个是为空时代替的值select ISNULL(Name,'佚名') as 姓名 FROM T_USERCASE 类似于 switch ...case....它的格式为CASE valueWHEN value1 THEN returnvalue1WHEN
2014-03-22 20:34:01 649
原创 关于C#事件中sender
双击一个控件,就会添加一个单击事件,在里面写代码,当单击这个控件时,就会执行这些代码。而在这个函数中通常有一个 object 类型的 sender 参数,这个 sender 参数就是指的触发这个事件的控件,由于不知道是什么控件,因此是 object 类型,可以用强制类型转换来转换为触发这个事件的控件的类型,然后用这个变量来操作这个控件。
2014-03-21 20:57:19 1660
原创 C# 委托
C# 中没有C++中功能强大但最容易出现问题的指针,而是使用了近似于C++中指针功能的委托(相当于函数指针原型)。 声明委托的一般格式为[ attributes ] [ delegate-modifiers ] delegate result-type indentifier( [ formal-parameter-list ] ) attributes 表示属性,往往可以
2014-03-05 13:49:14 668
转载 C#,由委托到Observer设计模式,再到事件机制
原文章:传送 1. 什么是委托?处理诸如int,bool等基本数据类型,它们是数据的类型。委托,是方法的类型。如 int a; //a可以是1,2,3,4,5.........那么delegate D;//D相当于int,是一种类型D d; //声明了变量,d可以是fun1,fun2,fun3........这里funX是函数的名字。
2014-03-02 19:59:29 1758
原创 SqlServer代码设置主键并自动生长
create table T_UserLogin(UserId int not null primary key identity(1,1),UserName nvarchar(50) not null,Pass varchar(50) not null )
2014-03-01 19:33:51 2752
原创 数据库基础
数据库是一系列数据的集合,是为了方便用户或者程序查询来设立的。数据可以在界面修改,也可以用语句修改。数据有许多类型。比如数字类型int ,还有大整数bigint。bit 相当于 bool 类型。char 是字符,后面的数字表示几个字符。varchar 也表示字符,不过比 char 灵活,当用 char 时,如果字符不够规定的字符,后面会用空格补齐,取出数据时,长度就是规定的字符,而 varcha
2014-01-15 11:28:47 604
转载 使用kali破解linux登录密码
一直想学好安全方面的知识,但苦于没门路,所以才开博,目的是记录自己学习的东西,同时也会以后学习这方面东西的兄弟提供些可参照物 kali是啥就没必要介绍了,里面有大量的安全工具,基本搞安全的兄弟对这玩意或多或少都有接触,在kaili里用于破解ssh登录密码的工具,比较常用的就是medusa,打开控制台,直接输入 :medusa就会跳出这个工具的使用帮助:
2014-01-13 21:52:46 1982
原创 特征码免杀
特征码免杀就是修改病毒文件的内容,从而躲过杀毒软件根据特征码的查杀。 特征码免杀要根据杀毒软件定位到的病毒的特征码来进行有针对性的修改,如果胡乱修改,有可能造成病毒体遭到破坏,失去原有的作用。 常用的特征码修改的方法有(1)16进制差1 (2)大小写切换 (3)相同命令替换 (4)特征码移位 (5)通用跳转等。 16进制差1,大小写切换就不说了。相同命令替换就
2014-01-10 22:49:22 1921
转载 十步完全理解SQL
转载自http://blog.jobbole.com/55086/很多程序员视 SQL 为洪水猛兽。SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言、面向对象的程序语言、甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言)。我们每天都在写 SQL 并且应用在开源软件 jOOQ 中。于是我想把 SQL 之美介绍给那些仍然对它头疼不已的朋友,
2014-01-10 21:52:21 436
原创 初学免杀
看了几天特征码免杀,懂了一点。 首先是杀毒工具的查杀方式,有表面查杀,内存查杀和行为查杀。表面查杀就是杀毒工具扫描没有运行的文件,根据它的特征码来判断它是不是病毒或木马。内存查杀估计就是根据程序运行时在内存中的特点来查杀。行为查杀就是根据程序运行后的某些行为来判断是不是病毒。 病毒特征码:就是从病毒体内不同位置提取的一系列字节,杀毒软件就是通过这些字节及位置信息来检验某个文件是
2014-01-04 21:04:06 856 1
转载 Linux下如何知道某个端口在运行什么程序
当我们用netstat -an的时候,我们有时候可以看到类似的输出:udp 0 0 0.0.0.0:32768 0.0.0.0:*但是查找/etc/services又没有这个端口的相关说明,怎么办呢?这个是不是黑客程序?有没有办法查看究竟什么程序监听在这个端口?使用lsof -i :32768就可以看到:
2014-01-03 16:29:20 841
转载 黑客日记:我是一个黑客
这几天眼睛要好受些了,因为刚买了一个15’的液晶显示器。也许你会觉得我以前的那个特丽珑的17"的显示器应该很威风才对。呵呵,对一个整天15个小时以上坐在显示器面前,距离不超过30厘米的人来说。那个CRT显示器绝对是一个祸害!眼睛红仲,布满血丝。头发脱落,食欲不振,出门还特别怕光,这些都和那个CRT显示器绝对脱不了关系。 分析这个攻击目标已经1个多星期了,但是一点进展都没有。不过,我倒是不心急,
2014-01-03 15:59:10 5494 7
原创 linux 系统信息及运行状态监控
Linux 的文件系统中有一个特殊目录 /proc ,该目录下列出的文件并非保存在磁盘上,而是内存中的一个映像, /proc/cpuinfo 本机 CPU的相关信息 /proc/meminfo 本机内存及交换分区的使用信息 /proc/modules 本机已安装的硬件模块信息 /proc/mounts 本机已挂载 (mount) 上的设备信息
2013-12-31 21:37:22 973
原创 linux 常用网络操作方法
1. ftp 远程文件传输ftp 是在TCP/IP 网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII 文件和二进制文件。在 ftp 会话过程中,用户可以通过使用 ftp 客户程序连接到另一台计算机上用户可以通过使用ftp 客户程序连接到另一台计算机上。ftp 命令的一般格式为:ftp 主机名/IP。如果没有指定主机名,ftp 将给出提示符,等待用户输入命令。
2013-12-31 20:50:06 621
原创 linux 常用网络配置文件
在 Linux 系统中,TCP/IP 网络是通过若干个文本文件进行配置的,需要编辑这些文件来完成联网工作。系统中重要的有关网络配置文件有: /etc/sysconfig/network 该文件用来指定服务器上的网络配置信息,包含了控制和网络有关的文件和守护程序的行为的参数。 /etc/hosts IP 地址和主机名的映射
2013-12-31 20:33:44 844
原创 linux 网络操作命令
Linux 系统常用的网络操作命令包括netstat 、nslookup、 host 、finger 和ping。netstat 命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。 nslookup 命令的功能是查询一台机器的 IP 地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的 I
2013-12-28 21:38:10 695
原创 网络配置及操作
Linux 系统中最常用的网络配置命令包括 ifconfig 、route。其中ifconfig 用来查看和配置网络接口(通常是网卡信息),包括网络接口设备的IP 地址、掩码等。route 用来管理Linux 系统内核中的路由表,它最大的用途就是用来设定静态的路由表项,通常是在系统用 ifconfig 配置网络接口后,用它来设定主机或者一网段的IP 地址应该通过什么接口发送等。 1.if
2013-12-28 20:39:44 590
原创 linux 中磁盘及文件系统管理命令
1. dfdf 命令可以显示目前磁盘剩余的磁盘空间,常用的参数为 -k 如df –k该语句将显示各分区的磁盘空间使用情况。 2. mount 和umountmount 命令有很多参数,其中大多数都不会在日常工作中用到。mount 命令最常见的用法如下所示mount [选项] 设备目录其中 最常用的选项是- a 把 /etc/fstab 文件中列出的文件系统
2013-12-28 20:02:06 562
原创 linux 中进程及任务管理命令
Linux 系统上所有运行的东西都可以称之为一个进程,每个用户任务、每个系统管理守护进程都可以称之为进程。Linux 用分时管理方法使所有的任务共同分享系统资源。 1. psps 命令是最基本同时也是非常强大的进程查看命令。使用该命令可以查看有哪些进程正在运行,以及运行的状态,进程是否结束,进程有没有僵死,哪些进程占用了过多的资源等等。 2.toptop 命令和 ps
2013-12-28 18:36:57 1899
原创 linux 中用户及用户组管理命令
1. useradduseradd 命令可以创建一个新的用户帐号,其最基本用法为: useradd 用户名useradd 用户名 -g 组名–G 组名-d Home 目录名-p 密码-g 指定该用户的首要组-G 指定该用户的次要组-d 指定该用户的Home 目录-p 指定该用户的密码 2. userdeluserdel 命令用于删除一个已存
2013-12-28 14:16:24 528
原创 linux 中 shell 简介
shell 是用户和 Linux 操作系统之间的接口,Linux 中有多种 shell, 其中缺省使用的是 bash。 Linux 系统的 shell 作为操作系统的外壳,为用户提供使用操作系统的接口。它是一个命令语言解释器,拥有自己内建的 shell 命令集,shell 也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由 shell 先解释然后传给 Linux 核心。
2013-12-27 21:30:42 535
原创 邻接表实现 prim
思路很简单,就是每次选取不在生成树中的权值最小的边加入到生成树中。使用了两个结构体,一个链表,一个节点数组。#include #include #include #include #define MAX 100000000using namespace std;struct link{ int a; int value; link* next;};struct node
2013-11-28 16:55:26 1255
原创 城市平乱
描述南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市。他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M。现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱。现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最厉害的程序员,请你编写一个程序来告诉南将军第一个分队到达叛乱城市所需的时间。注意,
2013-11-26 19:09:21 750
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人