自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 java 静态泛型方法调用

java中静态泛型方法的调用

2023-11-22 20:55:07 207

原创 Flink Keyed State测试

* 结论:Keyed State是和key绑定的,即使被处理的元素是被算子并行实例中的同一个实例处理的,如果key不相同,那么获取的Keyed State也是不同的。结论:Keyed State是和key绑定的,即使被处理的元素是被算子并行实例中的同一个实例处理的,如果key不相同,那么获取的Keyed State也是不同的。* * 目的:测试Keyed State是和算子实例绑定还是和key绑定的。* @create 2023-11-14 11:41 上午。

2023-11-17 10:25:44 58

翻译 如何做高质量的code review

如何做高质量的code review

2023-09-08 11:03:05 89

转载 PHP中全局变量的使用global和$GLOBALS[]

用PHP开发项目,不可避免的会使用到全局变量,比如一些网站的配置信息,全站通用,那就可以在一个地方设置,然后多个地方调用。把变量定义为全局变量可以有两种方法:global和$GLOBALS[]。很多人都认为global和$GLOBALS[]只是写法不同而已,其实是有差别的。$GLOBALS定义:引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是

2015-09-25 23:01:40 334

原创 mysql 索引建立和优化

建立索引的几大原则最左前缀匹配原则,mysql会一直向右匹配直到遇到范围查询(>、,比如a = 1 and b = 2 and c > 3 and d = 4 ,如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整(参考原则2)。但是mysql查询优化器可能通过优化调整顺序从而使用索引,但是写sql语

2015-08-05 17:23:48 346

原创 mysql 分区

mysql分区:mysql分区是根据某个分区键(区间值,特定值列表,或者hash函数值)执行数据的聚集,让数据根据规则分布在不同的分区中,让一些大对象变成小对象。mysql分区适用于一个表中的所有数据和索引,不能只对表数据分区而不对索引分区,反过来也是一样的,不能只对索引分区而不对表分区,同时也不能只对表的一部分数据进行分区。mysql分区表上创建的索引一定是本地local索引。

2015-08-04 17:36:36 309

转载 mysql索引和索引的实现原理

动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率。但是咱们有面对这样一

2015-07-13 15:08:03 114

原创 http连接优化

http连接的性能优化并行连接(可以同时和多台服务器建立HTTP连接)持久连接管道化连接复用的连接并行连接优点:并行连接可以在带宽资源充足的情况下同时建立多个HTTP连接,加快页面的加载速度。缺点:并行连接在带宽资源不足的情况下会是连接竞争资源,效率反而下降。同时建立多条连接会消耗大量内存,对服务器来说,大量的用户产生大量的连接可能会超过服务器的

2015-07-08 11:10:08 678

原创 从一个数组中随机的取出若干个不同的数

/* * 此程序是从一个不重复的数组中随机的取出若干个不同的元素 * 难点是防止在取数的时候出现已经取到过的情况(特别是取到最后),需要尽可能的降低碰撞 *///第一种算法,CSDN上别人的想法/*$num = 0;$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);$arr = array();$g = 5;$tag = true;while

2015-07-01 18:29:12 570

原创 php变量内部实现

typedef union _zvalue_value { longlval; /* long value */doubledval; /* double value */struct { char *val; intlen; } str; HashTable *ht;

2015-07-01 17:36:25 488

原创 php数组遍历

<?php/* * 此程序是对php数组的操作,主要是在遍历时修改数组的值 *//*$array = array("A"=>1, "B"=>1, "C"=>1, "D"=>1);foreach($array as $key => $value){ if($key == "B"){ $array["A"] = "CHANGE"; $array["D

2015-06-30 12:13:51 381

原创 sysvinit启动脚本和upstart启动脚本的编写

在原始的linux中,系统使用的是sysvinit启动方式,后来启动系统变为upstart,两者之间有不同的特点:sysvinit下所有的启动脚本都在/etc/init.d目录下,最后产生的进程名就是该目录下的文件名(去除文件名前面的S或K+启动或者停止序号),文件必须是可以执行的,执行顺序是按照字典书按需执行的。upstart中的所有的job配置文件(非脚本)在/etc/init目录

2015-04-29 17:16:55 1047

原创 linux 系统启动详解----三种不同的启动方式之UpStart

在Ubuntu,Fedora,Debian发行版中,启动方式已由传统的sysvinit方式变为UpStart方式。UpStart相对于sysvinit启动方式有以下优点:更快地启动系统(少启动了一些不必要的服务)当新硬件被发现时动态启动服务(基于事件)硬件被拔除时动态停止服务UpStart中有两个基本的概念:job:一个工作的单元,用来执行一个任务或者服务。可以

2015-04-29 13:45:53 1658

原创 使用chkconfig (sysv-rc-conf)实现脚本的自启动

安装命令:sudo apt-get install chkconfig(可以用sysv-rc-conf代替)关于chkconfig命令的使用点击这里在ubuntu下使用应该会出现这样的错误:/sbin/insserv: No such file or directory据说这是Ubuntu的小bug解决办法:sudo ln -s /usr/lib/insse

2015-04-28 14:07:18 558

原创 vimrc文件

在使用vim时可以根据自身需要配置vim,配置信息放在主目录下的.vimrc文件中。vimrc文件其实就是将在vim命令模式中常用的一些命令放在文件中,会永久生效。下面的文件就是一个简单的vimrc文件:.vimrc的配置文件编写的时候要注意:1. vimrc文件中注释以双引号”开头2.和shell脚本一致,对变量的赋值等号附近不能有空格。3.命令就是在vim命令中模式模式

2015-04-23 09:44:25 429

原创 here 文档

here文档是在命令行shell和程序语言中定义一个字串的方法,here文档,又称作heredoc、hereis、here-字串或here-脚本,是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。它可以保存文字里面的换行或是缩排等空白字元。一些语言允许在字串里执行变量替

2015-04-22 23:08:40 407

转载 需要了解的vim命令

开源中国的 IT 公司开源软件整理计划介绍从 1970 年开始,vi 和 vim 就成为了程序员最喜爱的文本编辑器之一。5年前,我写了一个问自己名为 “每个程序员都应该知道的 100 个 vim 命令” 这次算是之前那篇文章的改进版,希望你会喜欢。基础:e filenameOpen filename for edition:wSave fil

2015-04-21 10:40:34 308

转载 mysql group by

1、group by 用法解析group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。某个员工信息表结构和数据如下:  id  name  dept  salary  edlevel  hiredate       1

2015-04-16 23:06:15 267

原创 linux 文本处理sed

ed与sed的区别sed是从ed发展来的,ed是针对当前行进行操作sed是面向字符流的。sed和ed的应用寻址有很大的区别。在ed中没有指定地址的命令只影响当前行。sed遍历文件,每次读取一行,这样每行都是当前行,每行都应用这个命令,结果是sed对文件中的每一行都应用了ed中没有地址的命令。如sed中的s/regular/complex/等价于ed中的g/regul

2015-04-13 11:41:32 75

原创 linux文本处理三

diffdiff命令用来显示文件之间的差异。diff支持多种输出格式,同时diff一次能处理许多文件。diff一般被用来检测多个版本源代码之间的更改,然后将旧版本转变成新版本,diff还能递归的检查源码目录,称为源码树。diff命令的一个常见的应用就是创建diff文件或者补丁,然后使用patch程序将文件从一个版本转换成另外一个版本。diff默认输出解析

2015-04-07 12:27:05 354

原创 linux 文本处理二

uniquniq是用来从排序好的结果中删除重复的行,一般与sort结合使用。sort命令可以使用-u选项代替uniq。uniq必须是处理已经排序过的数据,否则不会产生任何影响,如下所示:下面是uniq命令的常用选项:选项描述-c输出所有的重复航并且每行开头显示重复的次数(记数)-d只输出重复行,而不是所有的文本行(找出重复

2015-04-05 17:56:49 290

原创 linux 文本处理一

linux中的一切都是文件,所以对文本的处理变得很重要,下面介绍几个常见的文本处理命令:cat cat的基本用法如下:上图中我们创建了catTest.txt文件,文本的开头是一个制表位,第一行位置有一个换行。cat常用选项如下:-A 选项显示全部的字符。在使用cat显示catTest.txt时,默认是不显示特殊控制字符。如上图显示了包括前面的制表位^I和第一行末尾的行尾

2015-04-03 14:19:39 489

原创 linux 正则表达式和grep命令

grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。和find结合使用的时候grep也是在find命令的输出内容中查找语系en_US.UTF-8POSIX小標題的圖示基礎正規表示法練習要瞭解正規表示法最簡單的方法就是由實際練習去感受啦!所以在彙整正規表示法特殊符號前, 我們先以底下這個檔案的內容來進行

2015-04-01 15:42:07 552

原创 linux 压缩和打包

压缩技术一般分为两种:有损压缩和无损压缩。在linux中一般不允许有数据丢死,所以都是无损压缩。linux中压缩技术一般可以分为两种:gzipbzip2gzipgzip是先于bzip2出现的压缩技术,一般的使用方法如下:gzip  file file是需要压缩的文件,生成的压缩文件一般会替换原始的文件,压缩文件和原始的文件具有相同的时间属性和权限。如果想要保

2015-03-31 12:02:18 517

原创 linux 系统启动详解----三种不同的启动方式之sysvinit

上一篇文章讲到了系统从开机到内核加载的过程,本文继续接着讲用户运行模式启动的过程。当内核加载之后必须要运行用户程序才能是系统变为可用,现在一般有三种init系统:sysvinitupstartsystemd1.传统的sysvinit方式缺点:启动较慢,适用于服务器和PC,不适合于移动端。sysvinit首先会去读取系统的配置文件/etc/inittab。/etc/i

2015-03-24 18:26:23 610

原创 Linux 系统启动过程详解

Linux系统启动linux系统启动是一个非常复杂的过程,主要包括以下几个部分:载入BIOS的硬件信息并进行自检,并依据设定取得第一个可开机的设备;读取第一个开机装置内的MBR的boot Loader(亦即是 grub, spfdisk 等程式)?????依据boot Loader的设定载入kernel,kernel会开始侦测并载入驱动程序;在硬件驱动成功之后会执行init脚本,也

2015-03-22 12:18:55 600

原创 硬链接和软链接

在linux中除了进程之外都是文件,目录是特殊的文件,目录记录了其他文件的文件名。linux文件被分为两部分:元数据(文件的属性数据)和用户数据(实际的数据)。在linux中通过文件名打开文件。查看文件的inode号可以使用stat或者ls -i命令。软连接和硬链接硬链接是两个文件名指向同一个inode,硬链接不能用于目录和不存在的文件。用于目录可能

2015-03-02 18:18:52 246

原创 textarea 进行数据回显

在一般的系统编辑页面中,会需要回显数据进行编辑。在碰到textarea标签的时候就必须要特别注意,如果数据是多行的,那么用一个变量来接受数据然后给textarea的innerHTML赋值是不正确的。例如从php传来的数据是line1\nline2\nline3,其中\n表示换行。var str=;// 其中$varName的值是“line1\nline2\nline3”,那么就会出错。

2015-02-12 18:04:46 3659

原创 php ajax出现中文的解决办法

在使用ajax在前端向后台请求数据时,如果数据出现中文,那么在返回数据时会出现错误。json_encode只能接受utf8的数据,当json_encode碰到中文的时候会自动将中文从utf8转换成unicode类型。解决办法有一下几个:1.JSON_UNESCAPED_UNICODE选项, 故名思议, 就是说, Json不要编码Unicode.<?phpecho json_enc

2015-02-12 17:30:34 301

原创 Linux 文件系统

继上一篇介绍了linux设备管理之后,本文我们主要介绍linux的文件系统。linux分区再挂载了设备之后,我们需要对该设备进行处理才能使用,就如我们首次在安装windows系统的时候需要对磁盘做的操作一样,需要格式化这个设备。1.划分分区sudo fdisk /dev/sdb //下面是分区表的信息Disk /dev/sdb: 8004 MB, 8004304896 by

2015-02-07 22:55:22 268

翻译 javascript this关键字

在javascript中每个execution context都会有一个绑定的this关键字,this关键字和execution context具有相同的生命周期,并且在该过程中一直不变,是个常量。在javascript中,根据使用this关键字方式的不同分为三种:global context中使用Function context中使用eval function中使用在glob

2015-02-04 10:31:20 222

翻译 JavaScript 执行环境

在js的学习中,闭包是一个非常重要的概念,也是一个难懂的概念,下面就一起来学习一下闭包。闭包是简单的说就是函数的嵌套,最简单的一个例子就是:var a = 10;var b = 6;function test() {  console.log(a); // will output 10  console.log(b); // will output 6}

2015-01-30 12:14:57 294

原创 CGI和FastCGI的区别

执行一个程序往往意味着产生一个新的进程。启动进程时需要消耗大量的时间和内存,往往比产生输出内容要耗时间,同时有些程序还需要进行编译(解释)。CGI脚本程序使用单独的进程进行执行。由于CGI的特点,造成了性能负担,有一下两种解决方法:解决方法:1.将CGI脚本执行程序放在http server内部执行。像apache module模块一样,在apache启动的时候启动需要加载的模块

2015-01-21 11:59:55 302

原创 linux bash和bash配置文件

在linux中,shell一般分为两种:登陆shell(login shell)和非登陆shell(non-login shell)login shell: 登陆shell是需要完整登陆流程才能获取的shell,需要输入用户名和密码。通过tty终端或者ssh登陆,还有使用su -命令切换(su后面不加-取得的是non-login shell)用户都是取得的登 陆shell。no

2015-01-09 16:56:57 391

原创 bash中单引号和双引号的区别

在bash参考手册中有如下说明:3.1.2.2 Single QuotesEnclosing characters in single quotes (‘'’) preserves the literal value of each character within the quotes. A single quote may not occur between single

2015-01-09 14:02:34 285

原创 linux bash快捷键

在shell命令行下输入命令时经常要用到如下命令:ctrl+a   移动光标到行首ctrl+e   移动光标到行尾ctrl+u   剪切当前光标所在位置到行首的所有字符 (ctrl+U    删除不是剪切)ctrl+k   剪切当前光标所在位置到行尾的所有字符  (ctrl+K    删除不是剪切)关于搜寻history在shell下搜寻历史的shell命令

2015-01-09 13:59:43 273

转载 Linux系统调用和库函数

1.     库函数和系统调用 Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思,面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api,采用这样的方式有很多种原因,第一:双缓冲技术的实现。第二,可移植性。系

2015-01-07 22:14:32 316

原创 linux man手册查询

在编写C程序时,经常性的要查询C库函数(C library functions)或者系统调用(system call)的man page。但是在使用man命令查找man page页的时候,如果一个函数和shell命令同名,man命令会自动选择块号比较小的对应的page呈现出来。man man命令可以查看系统中所有块。在查找需要的命令的man page之前可以先使用whati

2015-01-07 13:56:03 340

原创 linux shell通配符和正则表达式

shell 通配符:shell通配符的作用是用来进行文件匹配(file matching)的,通配符和正则表达式都有特殊的字符,但是解释情况不一样。正则表达式 :正则表达式是一种规范,在linux中正则表达式是用来进行字符查找的。在linux中一般shell只解释三个通配符:*代表任意长度的任意字符?代表任意一个字符[]代表选中[]中的任意一个字符一般shell

2015-01-07 13:54:51 815

空空如也

空空如也

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

TA关注的人

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