- 博客(121)
- 资源 (18)
- 收藏
- 关注
原创 Centos 配置svn 版本管理工具
主要包括:1 安装svn2 创建仓库3 配置权限4 配置防火墙iptables5 windows 和服务器同步脚本最容易出错的还是配置权限和防火墙,注意这里就好了1 安装svn 2 创建仓库3 修改上面的配置文件4 修改防火墙5 下面就是完整的示例:在windows 上进行checkout
2015-03-04 23:10:44
1222
原创 以单例模式实现数据库连接
<?phpclass Db { static private $_instance; static private $_connectSource; private $_dbConfig = array( 'host' => '127.0.0.1', 'user' => 'root', 'password' => '', 'database' => 'video', )
2014-12-14 09:09:18
2943
原创 系统定时任务 crontab
关于crontab 常用命令:systemctl status crondcrontab -lcrontab -etail -f file_pathtail -3 file_pathcrontab -e 中文件格式:示例:解释:查看crontab 日志:
2014-12-13 15:37:28
1248
原创 挂载U盘和光盘及对ntfs格式支持
linux每个设备都是文件,光盘也会有他的文件名,linux也会为它分配盘符。所谓的挂载就是把文件名和盘符联系起来!好,下面来真正挂载光盘挂载U盘u盘文件名不固定,先用fdisk -l 查看u盘文件名在虚拟机中,将鼠标按钮在虚拟机中,再将U盘插入,就可以,linux默认不支持ntfs 分区的
2014-12-04 22:50:41
1375
原创 修改各种yum 源
cent os有两张光盘,需要软件不在第一张就在第二张挂载光盘、使光盘yum源生效,别的网络yum源失效(后缀名不是repo就行,采用重命名方式,也可以修改enable = 1):修改自己光盘yum源:linux修改严格按照格式,包括注释添加!就这样OK!
2014-12-03 15:18:01
1106
原创 find locate which whereis grep 命令
命令名称: find 317 find /etc -name iniy 318 find /etc -name servi* 319 find /etc -name init??? 320 find /etc -iname init??? 321 find / -size +204800 #1个数据快是512 字节 是0.5k 322 find /h
2014-12-01 17:23:49
870
原创 探寻BTree 索引对sql 优化影响
从一道题开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)一下——只能使用该联合索引的c1,c2,c3部分A where c1=x and c2=x and c4>x and c3=xB where c1=x and c2=x and c4=x order by c3C where c1=x and c4= x group by c3,c2D where c1=? a
2014-11-16 11:02:42
1709
原创 深入了解存储引擎存储结构
比较两种存储引擎在数据库中存储方式:MyIsam:仔细观察的话会发现使用这种引擎的数据库里面一般少说包含三个文件,**.frm ,**.myi,(放索引) **.myd(放数据),通过索引(**.myi这个文件),定位数据在数据文件 在哪一行存放,这便会产生回行。如果没有回行,也就是索引覆盖,速度回非常快InnoDb:也就是一个文件,索引和数据放在一块,就是 聚簇索引一个坏处就是文件大啦
2014-11-15 22:19:26
1387
原创 Mysql主从复制
主从复制不就是多台服务器嘛!,一个改变另一个也改变啦,内容其实都一样!原理:对数据库进行操作会生成一个文件,binlog(二进制文件),从服务器配置relaylog文件,用来读取master里面binlog(有必要开启binlog,相当于备份),当然要有权限读取是吧,这就需要用到上次的权限配置啦!和普通登录没什么差别。主做出什么动作,从也做出什么动作。这时就需要注意主配置文件里面b
2014-11-13 22:38:59
1075
原创 Mysql权限检查原理
用户进行数据库操作分为两步:1 是否有权限连接,根据host,name,password;2 是否有权限进行CURD;图示解说:关于用户权限在哪里进行存放?这样看:mysql数据库里面有张user表:就像普通CURD一样,这就可以登录控制啦!
2014-11-11 21:35:04
1326
原创 Mysql存储过程
概念类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现.在封装的语句体里面,可以用if/else, case,while等控制结构.可以进行sql编程.
2014-11-09 22:06:59
1180
原创 Mysql触发器
触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete)。看以下事件:完成下单与减少库存的逻辑Insert into o (gid,num) values (2,3); // 插入语句Update g set goods_num = goods_num - 3 whe
2014-11-09 18:21:44
1290
原创 Mysql事务
通俗的说事务: 指一组操作,要么都成功执行,要么都不执行.---->原子性在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程-->隔离性事务发生前,和发生后,数据的总额依然匹配----->一致性事务产生的影响不能够撤消------>持久性如果出了错误,事务也不允许撤消, 只能通过"补偿性事务" 转账李三: --->支出 500, 李三 -500赵四: -
2014-11-09 12:50:50
1368
原创 Mysql索引
索引:是针对数据所建立的目录.作用: 可以加快查询速度负面影响: 降低了增删改的速度.索引的创建原则:1:不要过度索引2:在where条件最频繁的列上加.在重复度高的列上不加,比如性别男女;3:尽量索引散列值,过于集中的值加索引意义不大. 索引的类型普通索引: index 仅仅是加快查询速度.唯一索引: unique index 行上的值不能重复主键
2014-11-09 11:20:07
1654
1
原创 mysql数据类型
日期时间类型Year 年(1字节) 95/1995, [1901-2155],在insert时,可以简写年的后2位,但是不推荐这样.[00-69] +2000[70-99] + 1900, 即: 填2位,表示 1970 - 2069 Date 日期 1998-12-31范围: 1000/01/01 ,9999/12/31 Time 时间 13
2014-11-08 21:38:10
980
原创 类加载器
一、什么是类加载器(ClassLoader)类加载器可以把类加载到Java虚拟机中,对于任意的一个类,都需要由加载它的类加载器和这个类本身一同确立起在Java虚拟机中的唯一性。比较两个类是否”相等“,只有在这两个类是由同一个类加载器加载的前提在才有意义,否则,即使这两个类源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那这两个类必定不相等。这里所指的“相等”包括代表...
2014-11-05 22:29:39
1353
原创 垃圾收集器
SerialSerial收集器是Hotspot运行在Client模式下的默认新生代收集器, 它在进行垃圾收集时,会暂停所有的工作进程,用一个线程去完成GC工作特点:简单高效,适合jvm管理内存不大的情况(十兆到百兆)。ParnewParNew收集器其实是Serial的多线程版本,回收策略完全一样,但是他们又有着不同。我们说了Parnew是多线程...
2014-10-19 21:00:00
1378
原创 java 对象创建过程
JVM中对象的创建过程1. 拿到内存创建指令当虚拟机遇到内存创建的指令的时候(new 类名),来到了方法区,找 根据new的参数在常量池中定位一个类的符号引用。2. 检查符号引用检查该符号引用有没有被加载、解析和初始化过,如果没有则执行类加载过程,否则直接准备为新的对象分配内存3. 分配内存虚拟机为对象分配内存(堆)分配内存分为指针碰撞和空闲列表两种方式;分配内存还要要保证...
2014-10-18 23:46:17
1524
原创 java 多线程拉数据
需求介绍有近2w 商品,获取到全部商品详细信息,存在2 个接口,一个是分页获取商品列表一个是根据列表页包含的商品编号,获取商品系那个IQ哪个采用多线程线程池方式获取商品详情import java.sql.Time;import java.util.ArrayList;import java.util.List;import java.util.UUID;impor...
2014-10-18 22:08:46
1384
原创 BlockingQueue
ConcurrentLinkedQueueJava 提供的线程安全的 Queue 可以分为阻塞队列【非同步】和非阻塞【同步】队列,其中阻塞队列的典型例子是 BlockingQueue,非阻塞队列的典型例子是 ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。 阻塞队列可以通过加锁来实现,非阻塞队列可以通过 CAS 操作实现。从名字可以...
2014-10-18 19:40:16
1104
原创 ReentrantLock
下面来看 ReentrantLock 中相关的源代码:ReentrantLock 默认采用非公平锁,因为考虑获得更好的性能,通过 boolean 来决定是否用公平锁(传入 true 用公平锁)。/** Synchronizer providing all implementation mechanics */private final Sync sync;public ...
2014-10-17 00:05:23
2543
原创 String、StringBuilder、StringBuilder
可变性简单的来说:String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的。而StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串char[]value 但...
2014-10-12 10:30:57
1931
原创 KMP算法
#include using namespace std;void GetNext(char* p,int next[]) { int pLen = strlen(p); next[0] = -1; int k = -1; int j = 0; while (j < pLen - 1) { //
2014-08-31 15:00:17
688
原创 linux 最长用命令集锦
date 使用场景,shell 编程中给文件命名使用date 为变量赋值其他 read -p "tishi_content" var_name输入提示echo -e "the content of needed" 进行 \ 转义
2014-08-30 16:12:52
1265
转载 STL set之求交并差
#include #include #include #include using namespace std;struct compare{ bool operator ()(string s1,string s2) { return s1>s2; }///自定义一个仿函数};int main(){typedef std::set _SET;_SET s;s.in
2014-08-27 08:40:55
906
转载 fork函数简介
包括: fork函数简介fork函数的两次返回和父子进程的执行顺序简介fork()子进程与父进程之间的文件描述符问题 [cpp] view plaincopyprint? 1 1 #include
2014-08-12 12:25:42
989
原创 平衡二叉树转化为双向链表
很容易想到递归,实现确实不是太容易,对本人来说。平衡二叉树是有序的,要求链表也是有序。\代码:#include //平衡二叉树转化为双向链表using namespace std;typedef struct tree{ int data; struct tree *lchild; struct tree *rchild;}Tree,*pTree;void
2014-08-12 12:10:19
1937
原创 两种方法求单链表逆序
1 递归,很简单代码:#include using namespace std; typedef struct node{ int data; struct node * pNext;}Node ,*pNode;void createNode(pNode & pHead){ int temp; scanf("%d",&temp); pNode p,q; boo
2014-08-08 19:37:23
1069
原创 重写String类
主要是4个默认函数的重写:代码:#include using namespace std;class Cstring{private : char * data;public : Cstring(const char * str =NULL); Cstring(const Cstring &another); ~Cstring(); Cstring & ope
2014-08-08 17:18:24
1389
原创 sizeof 和类继承 虚继承 求类大小
代码:#include using namespace std;/*class a{ float k; // 4字节 virtual void foo(){} //有一个4字节的指针指向自己的虚函数表};class b : virtual public a{ virtual void f(){}}; 有这样的一个指针vptr_b_a,这个指针叫虚类指针,也是四个字节
2014-08-07 19:26:33
2111
2
原创 不能被继承的类
方法一:通过私有化构造函数代码:#include using namespace std;//只能在堆上进行创建class sealedClass{private : sealedClass(){} ~sealedClass(){}public: static sealedClass * getInstance(){ return new sealedClass(
2014-08-07 18:09:59
1029
原创 不用加减乘除做加法
很容易想到为二进制的与或非。加法分为三步:1 各位相加不进位 0 + 0 =0, 0+1 = 1,1+0=1,1+1=1,很明显是异或运算2 进位 1+1 =10进位,其余均不进位 ,进行左移动一位3 一直循环代码:#include using namespace std;int sum(int data1,int data2){ int sum,carry;
2014-08-07 17:23:20
1027
原创 模板元的简单学习
特别值得注意的是,因为C++的模板语言是在编译器编译的时候完成的,所以又称为静态语言,通常的C++语言又称为动态语言或者运行时语言。正是因为模板语言是在编译期完成的,所以我们可以借助于这种编译期的计算实现代码自动生成的目的,从而实现C++自动化编程。编译期宏typedef影射static类型变量和函数const 类型变量=,:?,-运算符enum运行期对象使用函数调用变量赋值操作变量时&,
2014-08-07 09:45:15
1179
原创 二叉树的后续遍历序列
代码:#include #include #include using namespace std;bool verifyBst(int data[],int length){ if(data == NULL || length <=0) return true; int root = data[length - 1]; int i=0; //查找左子树节点和长度
2014-08-06 15:33:28
1254
原创 二叉树和为某值
很容易想到用先序遍历,并传递进去一个数组和当前和。just so so代码:#include #include #include using namespace std;typedef struct tree{ int data; struct tree * lchild; struct tree * rchild;}Tree,*pTree;void create
2014-08-06 11:12:55
838
原创 栈的压入弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。代码:#include #include #include using namespace std;bool isStackSeq(int *pPush,int *pPop,int length){ bool isstack = false; if(pPush
2014-08-06 10:03:27
901
原创 包含最小元素的栈
题目:设计包含min函数的栈。定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。文件分布:头文件和main文件头文件:代码#include #include using namespace std;template class stackWithMin{ private :
2014-08-05 21:31:34
885
原创 旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增的排序的数组的一个旋转,输出旋转数组的最小元素。例如输入{1,2,3,4,5}的一个旋转为{3,4,5,1,2},该数组的最小值为1。可以使用从头到尾遍历,时间复杂度为O(n),根据其特性可以使用二分查找,降低时间复杂度。代码:#include using namespace std;i
2014-08-05 20:04:42
807
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人