Muxx


  • 首页

  • 归档

  • 标签

  • 关于

  • 搜索

求最大公约数(欧几里得算法)

发表于 2017-08-01

两个正整数a和b(a>b),a除以b的余数为c,那么a和b的最大公约数等于c和b的最大公约数,这就是欧几里得算法,又叫辗转相除法

45和6的余数是3,6和3的余数为0,那么最大公约数就是3,用代码表示如下:

1
2
3
4
5
6
7
8
int a = 45;
int b = 6;
while(b!=0){
int temp = a%b;
a = b;
b = temp;
}
print("%d",b);

1.如果b等于0,计算结束,a就是最大公约数
2.如果b不等于0,那么a除以b的余数为temp,让a等于b,b等于余数temp
3.回到第一步

Uml统一建模语言

发表于 2017-07-25

概念

UML(unified modeling language 统一建模语言)

类图

阅读全文 »

php中对象的引用、浅复制、深复制

发表于 2017-07-14

概念

引用: 对象之间的等号赋值是引用赋值,两者是同一个资源
浅复制: 值赋值。所有的引用属性(如对象属性)仍然是一个指向原来变量的引用
深复制: 所有引用属性指向复制过来的新对象

阅读全文 »

rsync进阶

发表于 2017-07-12

传输方式

rsync有三种传输方式

1.本机传输

1
2
3
4
5
#将/etc的资料备份到/tmp/etc中
rsync -av /etc /tmp
-a 表示保留同步文件的所有属性
-v 表示显示详细的传输过程
-z 表示使用压缩方式传输
阅读全文 »

linux常用文件搜索方式

发表于 2017-07-11

find

find在指定目录中搜索匹配的文件

1
find / -name '*.svn'

locate

locate在数据库/var/lib/locatedb中搜索,比find要快得多。linux会自动创建这个目录,且每天自动维护一遍,所以用locate搜不到最近才变动的文件。为此,最好在locate之前,先使用upadtedb更新数据库。

1
locate php.ini

whereis

whereis只能用于程序名的搜索,而且只搜二进制文件、man说明文件和源代码文件

which

which命令作用是在PATH变量指定的路径中 ,搜索某个系统命令的位置,并返回第一个搜索结果

su与sudo的差别

发表于 2017-07-10

本来想着不就是切换用户么,结果一搜发现真还有挺多东西的

1
2
3
4
5
6
7
8
9
10
su <用户名> (switch user)切换用户,需要知道目标用户的密码 默认是root 不重新加载环境变量
su - <用户名> 切换账户,需要知道目标用户密码 默认root 且重新加载环境变量
#对于通常不可登录的用户可以使用这种方式
sudo -s <command> 用root权限执行命令
sudo -su <用户名> <command> 使用指定用户执行命令 默认是打开新的shell
#这2个基本相同 会重新加载环境变量
sudo -i 用root权限登录
sudo su - 与sudo -i几乎相同

如何查看进程线程信息

发表于 2017-07-10

进场听到有说xxx是多线程的、xxx是多进程的,那么如何简单的观察进程/线程信息呢

proc查看法

查看status文件

1
2
3
4
5
6
7
8
9
10
11
#cat /proc/302/status 此时302是mysql的进程号
Name: mysqld
State: S (sleeping)
Tgid: 352
Ngid: 0
Pid: 352
PPid: 1
TracerPid: 0
...
Threads: 28 #开启28个线程
...
阅读全文 »

一次典型的事务错误使用

发表于 2017-07-05

发现问题

一次典型的CURD操作,在插入数据后通过$this->getLastInsID()获取到插入id,接着用插入id反查数据库获取数据是null,并且每次操作后自增id都是增加的。

解决问题

影响行数为1且成功获取自增的插入id,表示插入操作正常执行,但通过插入id在表中找不到对应数据,表示数据没有真正插入。

思前想后,想到自己在所有操作最外层开启了事务,而事务在commit之前不会真正的插入数据,所以也就无法获取新插入的数据,到此解决问题。

1…272829
Mu

Mu

230 日志
53 标签
© 2021 Mu
由 Hexo 强力驱动
主题 - NexT.Pisces