php是一种服务器端解释的脚本语言。
什么是PHP PHP是一种服务器端脚本语言,他是专门为Web而设计的。
第一篇 使用PHP
连接操作符(.)将其编写在一行代码中。
1.3在html中嵌入PHP 服务器端脚本语言:PHP脚本在Web服务器上被解释和执行,这与在用户机器上的Web浏览器中解释并执行。 的JS及其他客户端技术是不同的。
1.3.2 echo 语句:将传递给其自身的字符串打印到浏览器窗口中。
在双引号内,用一个字符串的内容代替一个变量的操作就是插值。
echo “$tirequly tires ”;
单引号, echo $tirequly 'tire ';
在单引号中,变量名称,或者任何其他文本都会不经修改而发送给浏览器。
1.5.3 变量和文本 在示例脚本中,每一个echo语句中连接在一起的变量和字符串是完全不同的。变量是表示数据的符号 字符串是数据本身。 三种字符串类型: 具有双引号: 其中变量会被替代 单引号:文本值 heredoc语法(<<<),通过制定一个用来结束字符串的结束标记。 echo << line1 line2 line3 theEnd 1.6 理解标识符 标识符是变量的名称。
他不要求在使用变量之前声明变量。当第一次给一个变量赋值时,你才创建了这个变量。
1.7 检查变量类型 1.7.1 变量类型 特殊的类型:NULL和resource NULL:没有被赋值、已经被重置或者被赋值为特殊NULL的变量 resource: 特定的内置函数(例如数据库函数)将返回resource类型的变量。他们都代表 外部资源(例如数据库连接),基本上不能直接操作一个resource变量,但是它通常被函数 返回,而且必须作为参数传递给其他函数
1.7.2 类型强度 弱类型语言,或者动态语言。
1.7.3 类型转换 $abc=(float)$bdc; 1.7.4 可变变量 可变变量允许我们动态地改变一个变量的名称。 原理:用一个变量的值作为另一个变量的名称。 $varname='tireqty'; $$varname=5; 等价于 $tireqty=5; 1.8 声明和使用常量
define('TIREPRICE',100);
常量由大写字母组成。
使用时无$符号。
echo TIREPRICE;
了解预定义常量: phpinfo()函数。
1.9 理解变量的作用域 1.内置超级全局变量可以在脚本的任何地方使用和课件 2.变量,一旦被声明,将可以在全局可见;也就是说,他们可以在函数内外使用。 3.在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部。
$_GET和$_POST数组,这些被称作超级全局变量,可以在任何地方使用和可见
1.10 使用操作符 若类型转换,是字符串转换成数字,如果其中包含‘e’和’E‘字符,它就会被当做是科学 表示法并被转换成浮点数。PHP会在字符串开始处寻找数字,没找到,则为0.
1.10.2 字符串操作符 . 连接符
1.10.3 赋值操作符 4.引用操作符 &可以在关联赋值中使用。 请记住,引用就像一个别名,而不是一个指针。都指向内存相同的地址。 可以通过重置来改变所指向地址: unset($a);
1.10.4 比较操作符 === 恒等操作符, 操作数相等并且具有相同的数据类型
1.10.5 逻辑操作符 $a x or $b 异或, 不同为true, 同为false.
1.10.6 位操作符 1.10.7 其他操作符 new和->,他们分别用来初始化类的实例和访问类的成员。
错误抑制操作符 @可以在任何表达式前面使用,即任何有值的或者可以计算出值的表达式之前。 $a=@(57/0) 如果没有@,这一行代码将产生一个除0警告,若使用@会被抑制。 如果使用这种方法抑制了一些警告,一旦遇到一个警告,就要写一些错误处理代码。 如果启用了php配置文件中的track_errors特性,错误信息将会被保存在全局变量$php_errormsg中。
3.执行操作符。 执行操作符实际上是一对操作符,是一对反向单引号。(``) php将试着将反向单引号之间的命令当做服务器端的命令行来执行。表达式的值就是命令的执行结果。 4.数组操作符 数组操作符([])允许访问数据元素。 也可以使用=>操作符。
5.类型操作符 只有一个类型操作符:instanceof:检查一个对象是否是特定类的实例。
1.13 使用可变函数 1.13.1 测试和设置变量类型 使用gettype(),传递一个变量,他将确定变量的类型并且返回一个包含类型名称的字符串。
1.13.2 测试变量状态 isset():若存在,则返回true. empty():它的值是否为非空和非0.
1.13.3 变量的重解释 可以通过调用一个函数来实现转换变量数据类型的目的。 intval(var,int base) base 为进制 intfloat(var) strval(var)
1.14 根据条件决策 条件结构和重复结构
1.14.3 else语句
1.15.2 for和foreach循环 for($i=1;$i<=$numname;$i++){ $temp=$name$i; echo $$temp.' '; }
1.16 从控制结构或脚本中跳出 switch break for continue; 结束整个php脚本的执行,可以使用exit语句。 eg: if($totalqty==0){ echo 'exit '; exit; }
1.17 使用可替换的控制结构语法 endif\endswitch\endwhile\endfor\endforeach
eg: if($toatl>0): exit; endif;
1.18 使用declare。 php的另一个控制结构是declare结构,他没有像其他结构一样在日常编程中使用
declare(directive){
//block
}
设置代码块的执行命令--后续代码如何执行的规则。
第二章 数据的存储和检索 2.1 保存数据以便后续使用 保存到文件或保存到数据库
2.2 存储和检索Bob的订单 $_POST['address']
在本章中,我们将所有订单都写入同一个文件中。
2.3 文件处理 写入文件 1.打开文件 2.读取数据 3.关闭文件
2.4打开文件 fopen()函数,参数指定文件模式,即如何使用它
2.4.1 选择文件模式 1.打开文件为了只读、只写或读和写 2.如果要写一个文件,可能希望覆盖或者追加。若存在,也可以终止执行 3.如果希望在一个区分了二进制方式和纯文本方式的系统上写一个文件,还必须指定采用的 方式。
w
2.4.2 使用fopen()打开文件 $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']; $fp=fopen("$DOCUMENT_ROOT/../orders/d.txt",'w'); 路径 模式 DOCUMENT_ROOT代表文档根目录。为了安全,将它放我在文档树外部
第一个参数:路径
第二个:文件模式
第三个:在include_path中搜索。 true\false
第四个:远程位置打开文件
2.4.3 通过FTP或HTTP打开文件
2.4。4 解决打开文件时可能遇到的问题 权限问题:根据服务器设置的不同,该脚本可能是作为web服务器用户或者脚本所在目录的拥有者 运行的。
2.5 写文件 fwrite()或者fputs() fputs()是fwrite()的别名函数。 fwrite($fp,$outputstring);
fwrite()函数的替换是:file_put_contents(filename,data,int flag,resource context)
2.5.1 fwrite()参数 fwrite($fp,$outputstring,length); 最大字符数
strlen()函数:获取字符串的长度
2.5.2 文件格式 记录之间用\n分隔 数据域之间用\t分隔
2.6 关闭文件 fclose($fp);
2.7 只读模式打开文件 fopen('../a.txt','rb') 2.7.2 知道何时读完文件 feof() while(!feof($fp)) { $order=fgets($fp,999); echo $order.' '; } feof() 唯一参数是文件指针,若文件指针指向文件末尾,将返回true
2.7.3 每次读取一行数据: fgets() \fgetss()\fgetcsv() $order=fgets($fp,999);
fgetss(fp,length,[allowable_tags])
它可以过滤字符串中包含的PHP和HTML标记,想留下的写在allowable_tags里面
fgetcsv()函数: $order=fgetcsv($fp,100,'\t').
以上代码将从文件中读取一行,并且在右制表符(\t)的地方将文件内容分行,
返回一个数组。
2.7.4 读取整个文件: readfile()\fpassthru()和file() readfile() 可代替前面写的所有脚本 readfile(pathname,include_path,context); fpassthru() $fp=fopen('path','rb'); fpassthru($fp);
file() 结果发送到一个数组。
$filearray=file('path');
一行一个元素保存在数组中。
2.7.5 读取一个字符:fgetc() 从文件中一次读取一个字符。 while(!feof($fp)){ $char=$getc($fp); if(!feof($fp)) //getc()会返回EOF echo ($char=='\n' ? ' ':$char); }
2.7.6 读取任意长度:fread()
2.8 使用其他有用的文件函数 文件是否存在 file_exists(pathname) 文件大小 filesize(pathname) 删除文件: unlink(pathname)
n12br() 将\n转化成html的换行符
再文件中定位:rewind()\fseek()\ftell()
对文件指针进行定位,看它在文件中的位置
rewind() 定位到文件头
ftell() 现在的位置
fseek() 将文件指针指向某个位置
2.9文件锁定 flock(fp,operation) LOCK_SE 读锁定 _EX 写锁定 _UN 释放锁定 _NB 防止在请求加锁时发生阻塞
2.10 更好的方式:数据库管理系统
第3章 使用数组 数组索引数组、关联数组
3.2.1 数组索引数组 初始化 $products=array('titre','oil'); $products=range(1,10); 1-10的数字数组
3.2.2 访问数组的内容 $products[0]
3.2.3 使用循环访问数组 foreach($producets as $current){ echo $current.' '; }
3.3 使用不同索引的数组:关联数组 $price=array('tire'=>100,'oil'=>10,); 访问: $price['tire'];
循环访问:
foreach($prices as $key =>$value)
{
echo $key.'='.$value.' ';
}
while($element=each($prices))
{
echo $element['key'].'='.$element['value'];
}
while(list($product,$price)=each($price)){
echo "$product - $price ";
}
each()函数,数组将记录当前元素,如果希望再次使用使用reset($price);重置到
数组开始出。
3.4 数组操作符
3.5 多维数组
3.6 数组排序 sort函数: 默认按升序排列。 asort()函数 和ksort()函数对关联数组排序 asort()根据元素值进行排序。 value ksort()根据关键字进行排序 key 反向排序: rsort\arsort\krsort\ 降序
3.7 多维数组的排序 用户定义排序 usort() 告诉如何比较
function compare($x,$y){
if($x[1]==$y[1]){
return 0;
}else if($x[1]<$y[1]){
return -1;
}else
return 1;
}
usort($produts,'compare');
3.8 对数组进行重新排序 shuffle(array)将数组各元素随机排序。 array_reverse()给出一个原来数组的反向排序。 $number=range(1,10); $number=array_reverse($number);
3.9 从文件载入数组 $orders=file(pathname); $number_of_orders=count($orders);
for($i=0;$i<$number_of_orders;$i++){
$line=explode('\t',orders[$i]);
$line[1]=intval($line[1]);
$line[2]=intval($line[2]);
$line[3]=intval($line[3]);
}
3.10 执行其他数组操作 each() current() reset() end() next() pos() prev()
3.10 对数组的每一个元素应用任何函数 array_walk() array_walk(array,func,userdata) 函数名 传参入函数 函数可自带数组的关键字和值。
function my_print($value){
echo "$value ";
}
array_walk($array,'my_print');
function my_multiply(&$value,$key,$facotr){
}
array_walk($array,my_multiply,3);
3.10.3 统计数组元素的个数: count($array) 元素个数 sizeof($array) 元素个数 array_count_values($array) 统计每个特定的值在数组中出现的次数, 返回包含频率表的关联数组
3.10.4 将数组转换成标量变量 extract(array,extract_type) 将关联数组转成标量变量,变量名称是key,变量值是value.
第4章 字符串操作与正则表达式
4.2 字符串的格式化 4.2.1 字符串的整理 :trim()\ltrim()\rtrim() 清除多余空格 trim(string,operation):除去开始和结束位置的空格 opertation:要过滤的特殊的字符 ltrim() 左边空格 rtrim()右边空格
4.2.2 格式化字符串以便显示 1.html格式化::n12br(): 代替换行符 2.为打印输出而格式化 和echo相同: print()\printf()\sprintf() printf() 格式化、输出浏览器 sprintf()返回格式化字符串
printf(“%s”,$toal);
想打印“%”,使用%%
printf(“%2\$s”,$toal,$toas); 2/$ 表示用列表中第二个参数替换。
这个方法可以在重复参数中使用
3.改变字符串字母大小写
strtoupper()
strtolower()
4.2.3 格式化字符串以便存储:addslashes()和stripslashes() PHP提供了两个转义字符串的函数 add 增加 strip 移除
4.3 用字符串函数连接和分隔字符串 4.3.1 使用函数explode()\implode\join() explode(separator,string,limit) implode()和join()类似,和explode相反的作用,粘连在一起。
implode('@',array);
4.3.2 使用strtock()函数 从字符串中取出片段。 strtock(input,separator) separator可是字符,也可是字符串。根据separator的每个字符进行分割
我们仅在第一次调用 strtok() 函数时使用了 string 参数。在首次调用后,该函数仅需要 split 参数,这是因为它清楚自己在当前字符串中所在的位置。如需分割一个新的字符串,请再次调用带 string 参数的 strtok():
4.3.3 使用substr()函数 substr(string,start,length) 4.4 字符串比较 部分匹配和其它情况 4.4.1 字符串排序:strcmp()\strcasecmp()\strnatcmp() strcmp(str1,str2) 返回0 相等 1 str1>str2 strcasecmp 不区分大小写 strnatcmp 不区分大小写 且自然排序,eg:2>12
4.4.2 使用strlen()函数测试字符串长度 4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()\strchr()\strrchr()\stristr() strstr() 查找匹配的字符串或字符 strchr\strstr 完全一样 strstr($feedback,'shop'); 从找到位置到末尾的字符串
无返回false.
stristr 不区分大小写
strrchr 最后出现目标关键字的剩下的所有字符
4.5.2 查找子字符串的位置:strpos()\strrpos() 推荐这个。 strpos(string,needle,offset) 第一次出现位置 offset 偏移量 strrpos 最后出现的位置 失败返回false 要注意false在弱语言中等于0,而0是字符串的一个字符。故使用=== if(strpos(string,'H')===false)
4.5.3 替换子字符串:str_replace()\substr_replace() str_replace(needle,new_needle,string) 返回替换后的结果 substr_replace(string,replacement,start)
4.6 正则表达式
4.6.2 字符集和类 [a-z]at [aeiou] [a-zA-Z] 任何包含在方括号中的内容都是一个字符类--一个被匹配的字符所属的字符集合。 只匹配一个。 [^a-z] 不属于a-z之间的字符 ^表示否 4.6.3 重复 表示某个字符串不止一次的出现 *代表可重复0或多次 +代表 1或多次 [a-z]+ 最少匹配一次的a到z之间的字符 4.6.4 子表达式 将一个表达式分隔成几个子表达式。圆括号表示 (very )*large 匹配: large、 very large、 very very large 4.6.5 子表达式计数 表达允许重复的次数 (very ){1,3} 重复1-3次 (very ){3} 重复3次 ([a-z]at){2,} 至少重复2次 ([a-z]at)+ 至少重复一次 4.6.6 定位到字符串的开始或末尾 ^ 用于开始 $ 用于末尾,表示子字符串必须出现在字符串末尾
4.6.7分支 可以用竖线表示一个选择 com|edu|net 4.6.8 匹配特殊字符 如果要匹配特殊字符。如,.等, 需要加反斜杠\
正则表达式模式必须包含在单引号的字符串中。
表示双斜杠使用 \\
如果双引号引用的PHP字符串使用反斜杠字符, 需要写 \\\\
$ \\\$
eg: ^([abc]*d){1,3}\.;|$
4.7用正则表达式查找子字符串: ereg()\eregi() ereg(pattern,search,array match). 把匹配结果放在match中 eregi 不区分大小写
4.8 用正则表达式替换子字符串 ereg_replace(pattern,replacement,search) 4.9 使用正则表达式分隔字符串 split(pattern,search)
!!和正则表达式相比,尽量使用字符串函数效率高。
第五章 代码重现和函数编写 5.1 代码重用的好处 1.成本 2.可靠性 3.一致性
5.2 require()和include()函数 允许重新使用任何类型的代码 require()和include()可以将一个文件载入到php脚本中 类似于#include语句 使用require()和include()引入函数库,非常有用。防止错误引入同样的函数库 2次。 5.2.1 文件扩展名和require()函数 require('resuable.php'); 使用require()语句时,必须注意处理文件扩展名和PHP标记的不同方式。
5.2.2 使用require()制作web站点的模版 如果web页面具有一致外观,可以在php中使用require()语句将模版和标准元素加入。 一个常见的约定就是调用那些包含在其它文件something.inc中的部分文件代码,这些文件代码 若不被调用,将会停止执行。
这个文件可以包含任何希望在一个脚本中输入的内容,其中包括php、文本\标记
当需要一个文件时,可以使用require()语句。将被请求的文件内容代替,然后执行脚本。
这就意味着,让载入main。php。
当使用require()语句时,必须注意处理文件扩展名和php标记的不同方式。
PHP并不会查看所需文件的扩展名。这就意味着,只要不想直接调用这个文件,就可以任意
命名该文件。当使用require()语句载入语句时,它会作为php文件的一部分被执行。
通常,如果PHP语句放在一个HTML文件中时,他们是不会被处理的。PHP通常解析扩展名被
定义为.php文件。但是,如果通过require语句载入page.html,文件内的任何PHP命令
会被处理。
require()语句调用时,它会被执行。
文件时.html的,不处理。
文件时.php,才会处理。
但是通过require(),.html也会被处理。
但是一般扩展名是 .inc或 .php。
需要注意,扩展名为.inc或其它一些文件保存在web文档树内种,而且用户可以在直接在如,
用户将以普通文本的形势,
5.3 在php中使用函数 函数是一个给出了调用接口的自包含模块,它可以执行一些任务,还可以返回结果。 5.3.1 调用函数 fopen(string[,resource context]) 方括号指明了这个参数是可选的。 5.3.2 调用未定义的函数:出错
5.3.3 理解字母大小写和函数名称 函数调用不区分大小写。 函数命名:都用小写字母
函数名称和变量不一样,变量分大小写,函数不区分。
5.4 理解为什么要定义自己的函数
5.5 了解基本的函数结构 希望在一个函数中退出php并输入HTML脚本: function my_function(){ ?> my function was call; } ?> 函数的命名 php不支持函数的重载。 !!可变函数:$name(); 根据$name的值确定,取出$name中的值,寻找具有那个名称的函数,并且 调用该函数。
5.6使用参数 function create_table($data){ echo '
'; reset($data); $value=current($data); while($value){ echo $value; $value=next($data); } }
5.7 理解作用域 这块可以翻回来看一下
函数内部和外部声明同一个变量名是合法的,互不影响的。当在函数内部第一次调用的时候,
它会声明,和外部的无关,函数调用结束后,删除。
作用域:
函数外的变量到了函数的内部,无法访问的。如果能够访问的话。还需要传值做什么。传值就是为了让函数接受参数。
超级全局变量哪都能访问。
静态变量会累加。 外部访问不到。
全局变量在函数外声明,想要在内部访问,需要提前声明一下,才能使用。
外部声明variable, 函数内部第一次调用输出时,会创建一个新的变量, 所以输出0
require 在函数内部,就是函数作用域。
外部,就是全局作用句。
5.8 函数的引用传递和值传递 function myfun(&$value){ } 5.9使用return 关键字 5.10 实现递归
第6章 面向对象的PHP 面向对象的开发方法试图在系统中引入对象的分类、关系和属性
6.1.1 类和对象 对象的属性是于对象相关的特性或变量。 对象的操作是对象可以执行的方法。
!对象的操作也就是对象的接口
对象是一个保存数据和操作这些数据的操作方法的唯一、可标识的集合。
数据封装 6.1.2 多态性 指不同类的同一操作可以有不同的行为。 6.1.3 继承 6.2 在php中创建类、属性和操作 6.2.1 类的结构 class classname{ public $attribute;
function operation(){
}
}
6.2.2 构造函数 class classname{ function __constrct($param){ } }
6.2.3 析构函数 function __destruct(){}
6.3 类的实例化 $a=new classname();
6.4 使用类的属性 $this->attribute 使用__get()__set()
class classnae{
public $attribute;
function __get($name){
return $this->$name;
}
function __set($name,$value)
{
$this->$name=$value;
}
}
我们并不直接访问__get()\__set(),而是使用
$a->attribute=5;
$a->attribute
通过编写get\set方法,可以控制访问的入口,设置边界检查,确认数据是否正确。
或者我们需要从数据库取出数据,只需修改get和set即可。
6.5 使用private和public关键字控制访问 protect修饰,只能类内部访问,但是可被继承,继承后只能内部使用。 而private 无法继承。 默认是public,如声明类时,不写public
6.6 类操作的调用 $a->operation1();
6.7 在PHP中实现继承 class B extends A{ }
6.7.1 通过继承使用private和protected访问修饰符控制可见性 !!!protect可以被继承,但继承后,只能在类内部使用。
6.7.2 重载(java中叫做重写,覆盖父类) 如果想使用父类的最初版本: parent::opertaion(); A:operation();
6.73. 使用final关键字禁止继承和重载 当在一个函数声明前面使用这个关键字时,这个函数将不能在人恶化子类中 被重载。 也可禁止类被继承。 6.74 理解多重继承 PHP支持单一继承 6.7.5 实现接口q 接口的思想是指定一个实现了该接口的类必须实现的一系列函数。 implements
6.8类的设计 web开发中可能使用的类可能包括网页、用户界面组件、购物车、错误处理、商品分类 顾客。
6.9 编写类代码 class page{ public $content; public $title="TLA"; public $keyword="dsd"; public $button=array( "Home"=>"home.php", "Contant"=>"contact.php" );
function __set($name,$value){
$this->$name=$value;
}
function Display(){
echo '\n\n';
$this->DisplayTitle();
$this->DisplayKeyWords();
$this->DisplayStyles();
echo '\n\n';
$this->DisplayHeader();
$this->DisplayMenu($this->buttons);
echo $this->content;
$this->DsipalyFooter();
echo "\n\n";
}
function DisplayTitle(){
echo ''.$this->title.' ';
}
function DisplayKeywords(){
echo ' keywords.'\'/>';
}
public function DisplayStyles(){
?>
DisplayButton($width,$name,$url,!$this->IsURLCurrentPage
($url));
}
}
}
require("page.inc");
$homepage=new Page();
$homepage->content="";
$homepage->Display();
?>
6.10 理解PHP面向对象的高级功能 6.10.1 使用Per-Class常量 PHP提供了Per-Class常量 class Math{ const pi=3.14; } echo 'Math::pi='.Math::pi.'\n'; 6.10.2 实现静态方法: PHP允许使用static关键字。
静态方法,不能使用this关键字。
class Math{
static function squared($input){
return $input;
}
}
ehco Math::squared(8);
6.10.3 检查类的类型和类型提示 instanceof关键字允许检查一个对象的类型。
function check_hink(B $someclass){ //传入的必须是B的实例。
}
6.10.4 延迟静态绑定 该特性允许在一个静态继承的上下文中对一个被调用类的引用。
class A{
public static function who(){
echo __CLASS__;
}
public static function test(){
static::who();
}
}
class B extends A{
public static function who(){
echo __CLASS__;
}
}
B::test();
输出: B
6.10.5 克隆对象 PHP提供clone关键字。允许复制一个已有的对象。 $c=clone $b; __clone()方法中的一个很好特性就是在使用默认行为创建一个副本后能够被调用。 这样,在这个阶段,可以只改变希望改变的内容。
在__clone()方法中添加的最常用功能就是确保作为引用进行处理的类属性能过正确复制。
如果要克隆一个包含有对象引用的类,可能需要获得该对象的第二个副本,而不是该对象的
第二个引用。
6.10.6 使用抽象类 类不能被实例化,类方法也没有实现,只提供类方法的声明,没有实现。
6.10.7 使用__call()重载方法 __call()方法,该方法用来实现方法的重载。
public function __call($method,$p){
if($method=='display'){
if(is_object($p[0])){
$this.displayObject($p[0]);
}else if(is_array($p[0])){
$this->displayArray($p[0]);
}
}
}
$ov=new overload();
$ov->display(array(1,2,3));
$ov->display('cat');
6.10.8 使用__autoload()方法 另一个特殊的函数是__autoload().单独的函数
会自动调用你所需要实例化的类文件。
function __autoload($name){
include_once $name.'.php';
}
7.1 异常处理的概念 手动抛出异常
try{
throw new Exception("A",43);
}catch(Exception $e){
echo "ss".$e->getCode();
}
7.3 用户自定义异常
你可能感兴趣的:(PHP与mysql web开发第四版 笔记)
解决幽默【VmmenWSA】占用系统资源过高且无法直接结束进程办法
鱼圆食不食
windows
起因今天打开任务管理器时,偶然发现一个名为VmmemWSA的进程占用了大量内存。经过询问,得知它与Windows虚拟化有关,但目前电脑上并没有运行任何虚拟化工具(如WSL)。尝试使用管理员权限和命令行工具(CLI)等方法都无法关闭该进程。经过多次尝试,终于找到了解决办法,接下来分享给大家。出现原因VmmemWSA是与WindowsSubsystemforAndroid(WSA)相关的进程。当尝试关
财务规划与教育:投资自己,为赚钱之路铺路
氧惠超好用
要明确自己的愿景,有目的地生活,主动挖掘自己的赚钱能力,对自己的收入合理安排,明智地管理自己的时间,做到工作和家庭平衡,并用自己的财富造福他人。迷茫想挣钱又不知道做什么的时候,想想众多成功案例,其实是在告诉我们:有规划、有能力,能够主动掌控生活的人生有多爽!一、职业规划:挖掘自己的天赋和激情,利用自己的技能和知识变现,实现财务自由。具体分为三步;第一步,强烈的愿望:创建你自己关于财务自由的愿景,相
【面试】面试官:请介绍一下你如何高效处理海量数据与JVM内存故障排查方法?
文章目录高效处理海量数据与JVM内存分析实战指南问题一:无内存限制下如何快速安全插入1000亿条数据到HashMap?1.数据结构优化2.内存与IO协同优化3.业务级安全策略问题二:JVM内存分析与OOM故障排查1.实时内存占用分析2.OOM事后分析流程步骤1:获取诊断三件套步骤2:定位泄漏根源步骤3:业务防御机制架构启示录高效处理海量数据与JVM内存分析实战指南问题一:无内存限制下如何快速安全插
分布式锁特点、以及用python3实现redis分布式锁
数据知道
python3案例和总结 分布式 redis 数据库 python
更多内容请见:python3案例和总结-专栏介绍和目录文章目录一、Redis分布式锁核心原理1.1Redis锁机制1.2锁释放二、基础实现代码2.1使用`redis-py`客户端2.2分布式锁类三、使用示例3.1基础锁操作3.2装饰器模式四、高级特性实现4.1Redlock算法(高可用方案)五、生产环境最佳实践5.1锁粒度控制5.2异常处理5.3监控与调试5.4重试机制六、测试代码6.1并发测试6
云服务器环境下Linux系统epoll机制与高并发服务器优化实践
cpsvps_net
服务器 linux 运维
在当今云计算时代,云已成为企业部署高并发服务的首选平台。本文将深入探讨Linux系统核心的epoll机制如何赋能云环境下的高并发服务器,解析其底层工作原理与性能优势,并对比传统IO复用模型的差异,帮助开发者构建更高效的云端服务架构。云服务器环境下Linux系统epoll机制与高并发服务器优化实践一、云服务器环境对高并发服务的特殊需求在云服务器环境中,资源弹性扩展的特性使得高并发服务成为可能,但同时
LabVIEW VI Server导出功能
LabVIEW中借助VIServer实现导出VI的配置、执行与交互流程,覆盖服务端配置(含权限管理、设置还原)、客户端调用等核心环节,验证跨VI交互与远程调用逻辑,为分布式应用提供基础实现方案。功能说明1.服务端配置(supportExportingVIs-Server.vi关联逻辑)功能:开放本地VIServer服务(基于TCP/IP端口3363),将正弦波(Helper-Export-Sine
2023年抖音年货节是什么时候?抖音好物年货节介绍和节奏
氧惠评测
很多活动,各大电商平台都有。比如双11、双12这种活动,各大电商平台都是有的。再比如节假日和年货节这种,也都是有的。那2023年抖音年货节是什么时候?淘宝年货节密令天降红包1511红包到手17购物、看电影、点外卖、用氧惠APP!更优惠!氧惠(全网优惠上氧惠)——是与以往完全不同的抖客+淘客app!2023全新模式,我的直推也会放到你下面,送1:1超级补贴(邀请好友自购多少,你就推广得多少,非常厉害
JVM与Spring Boot核心解析
我是廖志伟
Java场景面试宝典 Java JVM Spring Boot
我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、Spri
云服务器性能优化全攻略:CPU、内存、磁盘IO调优实战
Gloria歌洛莉亚
c语言 数据库 服务器 python 性能优化
在云计算时代,服务器性能直接影响应用响应速度、用户体验和运营成本。无论是高并发网站、实时数据分析还是机器学习训练,优化云服务器性能都是开发者必须掌握的核心技能。本攻略将从CPU调度、内存管理、磁盘IO三个维度,结合Linux系统特性和实际场景,提供可落地的优化方案。一、CPU性能调优:从调度策略到并行计算1.1CPU资源监控与瓶颈定位实时监控工具:top-c#动态查看进程CPU占用(按P键按CPU
Java Spring 框架的低代码开发平台选型与实践
JavaSpring框架的低代码开发平台选型与实践关键词:JavaSpring、低代码开发、平台选型、快速开发、企业应用、微服务架构、可视化编程摘要:本文深入探讨了基于JavaSpring框架的低代码开发平台选型与实践。文章首先介绍了低代码开发的概念和Spring框架的优势,然后详细分析了主流低代码平台的架构特点和适用场景。通过对比评估指标、核心功能和技术实现,提供了科学的选型方法论。文章还包含了
如何在keil5中实现printf函数
风停了123
单片机 嵌入式硬件
在KeilMDK(Keil5)中实现printf函数,需通过重定向字符输出到硬件接口(如串口),并配置工程选项。以下是完整步骤及注意事项:一、实现步骤1.添加头文件与重定向函数包含标准I/O库:#include//提供printf函数声明重写fputc函数(以STM32串口为例)://方法1:使用标准库函数(如HAL库)intfputc(intch,FILE*f){HAL_UART_Transmi
OpenCV-光流估计
文章目录一、光流估计介绍1.光流估计的基本概念2.光流估计的原理3.光流估计的前提4.OpenCV中的光流估计算法5.参数设置与调整二、代码实现三、注意事项OpenCV中的光流估计是计算机视觉领域中的一项重要技术,它通过分析图像序列中像素点的运动,来估计物体的运动信息。以下是对OpenCV中光流估计的详细解析:一、光流估计介绍1.光流估计的基本概念光流是空间运动物体在观测成像平面上的像素运动的“瞬
【爬虫】05 - 爬虫攻防
是小崔啊
# 爬虫学习 爬虫
爬虫05-爬虫攻防文章目录爬虫05-爬虫攻防一:随机User-Agent爬虫1:fake-useragent2:高级反反爬策略3:生产环境建议二:代理IP爬虫1:获取代理IP2:高阶攻防3:企业级的代理实战三:动态数据的抓取1:动态页面技术全景2:动态页面逆向工程2.1:XHR请求追踪与解析2.2:websocket实时数据捕获3:无头浏览器控制技术3.1:Playwright详解3.2:反反爬虫
云服务器磁盘IO性能优化的测试与配置方法
云服务器磁盘IO性能优化的测试与配置方法在云计算环境中,磁盘IO性能直接影响着应用程序的响应速度和系统整体稳定性。本文将深入解析云服务器磁盘IO性能优化的关键技术路径,从测试方法论到配置调整方案,帮助运维人员突破存储瓶颈。我们将重点探讨如何通过科学的基准测试定位问题,并给出针对不同云服务商环境的实用优化策略。云服务器磁盘IO性能优化的测试与配置方法一、理解云磁盘IO性能的核心指标云服务器磁盘IO性
20191009读书笔记
龙套哥萨克海龙
阅读1小时,总计1017小时,第981日阅读《九品中正制研究》第二章随着九品中正制的建立,标志着两汉以来以察举征辟制为主体的旧的选举时代的结束,也标志着魏晋南北朝时期以九品中正制为主体的新的选举时代的开始。曹魏初年,由于受曹操“唯才是举”选举政策的影响,中正选举尚能坚持选贤任能的标准,并以“家世”、“德才”两项综合定品。及至齐王芳嘉平以后,由于世家大族势力的兴起,选举标准也相应地发生了变化,史称“
php、go、python后端接口签名实现
奇华智能
后台开发 linux 签名 接口安全
1.php实现/**生成签名,$args为请求参数,$key为私钥*/functionmakeSignature($args,$key){if(isset($args['sign'])){$oldSign=$args['sign'];unset($args['sign']);}else{$oldSign='';}ksort($args);$requestString='';foreach($arg
浏览器解码过程分析
浏览器解码过程分析前言在学习xss漏洞的过程中我发现一个问题,当我想绕过过滤机制时,可以采用编码的方式进行绕过这种方法,但是并不是每一种编码格式都能绕过,需要不停的尝试才行,这样过于浪费时间。后来我发现浏览器与服务器数据传输过程中有好几种编码格式,不同的编码格式有着不同的解析引擎,作为一个浏览器,在解析一篇HTML文档时主要有三个处理过程:HTML解析,URL解析和JavaScript解析。每个解
定位体系第5话《实践篇-上:小品牌和新品牌,差异化塑造如何落地?》
范红运的营销讲义
幻灯片53.jpg幻灯片54.jpg幻灯片55.jpg幻灯片56.jpg1、选择特性,创造差异化概念每个产品根据其所属品类,都具有一系列不同的特性。对顾客而言,有的特性比其他更加重要,所以必须想方设法占有最重要的特性。A、“对立面”特性:与市场领导者“相反”的特性。B、“最重要”特性:防蛀,是牙膏品类最重要的一个特性。C、“单一利益”特性:聚焦优质的“单一特性+单一利益”,会带来光环效应。D、“品
也许,又或许是注定
二维蚂蚁
也许,我注定该是独自一人。日下黄昏,独步堤岸。小径阴柳,情侣络绎。微纹湖面,鸳鸯成双。却泛不起一丝波澜,于我沉寂的孤独之上。也许,我注定该是流浪远方。聆听黑夜,羌笛悠扬。丝丝纤细,婉转悲凉。似轻还沉,幽怨断肠。那是美丽的姑娘,正在倾诉离别后的忧伤。于是,我注定该是沉默寡言,冲动狂乱,早已湮灭。情话无声,情愫深藏。残月为伴,对饮成双。一切无端腾起的爱与恋,皆是基于我对夜空的幻想。于是,我的远方注定寂
php中的hmac,JavaScript通过CryptoJS等效实现php中hash_hmac函数加密raw_output配置
好想不取名
php中的hmac
在一个项目中,客户需要从前端签名,加密插件使用的cryptoJS,使用与后端一样的签名流程(HmacSHA1后Base64.encode)发现并不能通过签名认证,签名校验方后端php代码中使用hash_hmac函数,先来看一下则会个函数的官网说明:说明hash_hmac(string$algo,string$data,string$key[,bool$raw_output=FALSE]):stri
2021年8月6号反思日记
37c089910fbe
一.健康今天的饮食比较健康,吃了两顿有蔬菜和面试,然后健身的话大概跳了50分钟的健身操,但是状态不是很好。今天开始泡脚了,三伏天泡脚对身体非常的好,然后护肤的话今天用的是喜辽托乳膏治痘印,打算是一天刷酸,一天这个药膏。跳健身操给我的最大感受是暴汗特别的酸爽,特别的舒服,每天不跳不出汗,感觉不健康。二.个人成长今天状态不是很好,没有读书也没有做笔记,打算晚上试试看。反思日记的话,今天晚上准时写啊,还
Unity UI架构的道与术:从“一团乱麻”到“井然有序”(7)
第六章:架构的回归——在理论的优雅与现实的代价之间,寻找你的最优解穿越了UI技术演进的漫漫长路,我们从一个新手的“一团乱麻”,到用MVC、MVP、MVVM这些“手术刀”,一步步地为代码建立秩序。然而,在这场对“终极优雅”的漫长求索中,我们必须在旅程的终点,停下脚步,回归到所有软件工程最朴素的本质——权衡。架构设计的真谛,不在于找到一个完美的“黄金标准”,而在于清醒地认识到每一种选择背后的代价,并为
Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(1)
伽蓝_游戏
unity ui 架构 游戏引擎 游戏 c# .net
第一章:全面的特性对决——一份来自官方的详细评测报告在Unity引擎的UI开发领域,开发者主要面对两种核心技术选型:成熟且深度集成的UGUI(UnityUI)系统,以及代表未来方向、以性能和现代工作流为设计目标的UIToolkit。两者在底层架构、工作流程、性能模型和功能覆盖上存在本质差异。本章将基于详细的功能特性对比,对二者进行深入的技术分析,为开发者在项目初期做出合理的技术选型提供依据。核心差
Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(2)
伽蓝_游戏
unity ui 架构 游戏引擎 游戏 c# .net
第二章:初识新王——UIToolkit的核心理念与架构剖析在第一章中,我们通过详尽的特性对比,清晰地看到了UIToolkit作为“新王”所展现出的、在性能和现代化工作流上的巨大潜力。然而,要真正理解并驾驭这把未来的“神兵利器”,我们必须更进一步,深入其内部,系统性地剖析它的核心设计理念、底层架构和关键技术特性。这一章,我们将正式踏上对UIToolkit的探索之旅,揭示其“Web技术启发”背后的真正
微服务架构监控:四大黄金指标解析
AI云原生与云计算技术学院
架构 微服务 云原生 ai
微服务架构监控:四大黄金指标解析关键词:微服务架构、监控体系、四大黄金指标、SRE、延迟、流量、错误、饱和度摘要:本文深入解析微服务架构监控的核心方法论——四大黄金指标(延迟、流量、错误、饱和度),基于GoogleSRE最佳实践,结合具体技术实现与数学模型,阐述指标设计原理、数据采集方法、可视化实践及异常诊断逻辑。通过完整的项目实战案例,演示如何构建端到端监控体系,帮助技术团队建立可观测性基线,提
YFCMF-TP6 改后台模块路径方法
huluang
php
1、创建表单,表民phpthinkcrud-tbeian_dignji-u12、app路径controllerlang/zh-cnmodelvalidateview以及public/assets/js/backend/找到beian_dignji每个路径下创建需要增加的文件夹名称,如beian,并将以上目录的文件或文件夹剪切到当前文件及下3、编辑表fa_auth_rule规则名称主要为105,上级
SAP Word 模板与 XML 数据流合并过程深度剖析——以表格结构为例
汪子熙
ABAP 百科全书 word xml CRM ABAP NetWeaver SAP
在CRMWebClientUI的Office集成功能里,Word模板与XML数据流的动态合并,是合同、报价单等文档自动生成的技术核心。本文结合SAP官方示例代码与OpenXML规范,从模板绑定、数据预处理、运行时递归填充到实际排错技巧,全景展示表格结构合并的幕后细节,并给出一段源自真实项目的实战案例,帮助读者迅速掌握这一看似神秘的“魔术”。(document567.rssing.com,docum
verilator如何实现RTL的仿真(腾讯混元)
Verilator是一个用于将Verilog或SystemVerilogRTL(寄存器传输级)代码转换为C++或SystemC模型的工具,主要用于高性能的功能仿真和验证。它不是像ModelSim或VCS那样的传统事件驱动仿真器,而是通过静态编译的方式将RTL转换为可执行的C++代码,从而实现高效仿真。下面详细介绍Verilator实现RTL仿真的流程与实现细节。一、Verilator的基本工作流程
WebSocket断链排查与重连实战:7种实时检测与自动恢复技巧
Clownseven
websocket 网络协议 网络
更多云服务器知识,尽在hsotol.com前一秒用户还在聊着天,后一秒界面突然“连接已断开,请重试”,你赶忙看日志,发现服务并没崩,CPU正常、内存平稳,也没报错。可用户就是断了,而且还不是一个两个。这种时候你才想起来:这货不是HTTP,是WebSocket。它不是请求-响应那种你来我往,它像一根细长的管子,连上之后就一直开着,谁主动断谁才结束。可问题是——它,突然就没了。WebSocket长连接
AI 驱动自动化运维平台架构与实现
大富大贵7
程序员知识储备1 程序员知识储备2 程序员知识储备3 算法 机器学习 人工智能 决策树 大数据
摘要:随着云计算、容器化和大规模分布式系统的普及,传统人工运维方法已难以满足现代IT环境中海量指标、日志和拓扑关系的实时分析与故障响应需求。AI驱动的自动化运维(AIOps)平台通过融合机器学习、深度学习、图分析以及强化学习等多学科技术,实现对海量运维数据的智能感知、预测、诊断和自动化修复。本文深入探讨AI驱动自动化运维平台的整体架构设计与核心技术实现,涵盖数据采集与预处理、AI引擎设计、自动化执
Algorithm
香水浓
java Algorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvm jboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
一个简单的存储过程
asialee
mysql 存储过程 构造数据 批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
annot convert from HomeFragment_1 to Fragment
百合不是茶
android 导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
Weblogic10两种修改端口的方法
bijian1013
weblogic 端口号 配置管理 config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
ajax 三种提交请求的方法
BlueSkator
Ajax jqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
编程之美-最短摘要的生成
bylijinnan
java 数据结构 算法 编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
json数据解析及typeof
chengxuyuancsdn
js typeof json解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
流程系统设计的层次和目标
comsci
设计模式 数据结构 sql 框架 脚本
流程系统设计的层次和目标
 
RMAN List和report 命令
daizj
oracle list report rman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
MySQL查询语句练习题,测试足够用了
flyvszhb
sql mysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
让程序员少走弯路的14个忠告
jingjing0907
工作 计划 学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
FAQ - SAP BW BO roadmap
blueoxygen
BO BW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
关于java堆内存溢出的几种情况
tomcat_oracle
java jvm jdk thread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D