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开发第四版 笔记)
第5篇:从入门到精通:深入详解Python模块与包管理的应用
猿享天开
python 开发语言
第5篇:模块与包管理目录模块概述什么是模块导入模块标准库简介创建与使用自定义模块创建模块导入自定义模块模块搜索路径包(Packages)什么是包创建包导入包中的模块常用内置模块介绍math模块datetime模块os模块sys模块模块与包的最佳实践命名规范组织结构避免循环导入示例代码常见问题及解决方法总结模块概述什么是模块模块是Python中组织代码的一种方式。一个模块就是一个包含Python定义
SpringBoot实战系列之发送短信验证码
m0_67401660
面试 学习路线 阿里巴巴 android 前端 后端
大家好,我是??大二在读作业侠系列最新文章??Java实现聊天程序SpringBoot实战系列??SpringBoot实战系列之发送短信验证码一起刷算法与数据结构最新文章??一起刷算法与数据结构-树篇1环境搭建大集合环境搭建大集合(持续更新)内容速览:1.短信验证码平台选择考虑点2.短信平台3.实战发送短信验证码1.短信验证码平台选择考虑点各个类型短信价格短信到达率、到达时间短信内容变量灵活,便持
Java对接DeepSeek全攻略:从0到1小白无忧
古龙飞扬
java 开发语言 ai
本文将带你从零开始,详细讲解如何在Java中对接DeepSeekAPI,适合小白用户。我们将从环境搭建、API调用、数据处理等方面逐步展开,并提供完整的代码示例。目录准备工作获取DeepSeekAPI密钥创建Java项目添加依赖使用Maven引入HTTP和JSON库编写代码创建请求和响应类发送HTTP请求处理API响应完整代码示例运行与测试常见问题与解决方案1.准备工作1.1获取DeepSeekA
豆包AI的详细介绍
古龙飞扬
人工智能
一、平台访问与登录网页版:在浏览器中输入豆包官网地址,登录账号后,点击首页导航栏中的“AI作画”或相关图片生成入口,即可进入图片生成页面。APP版:在安卓应用市场或iOS的AppStore中搜索“豆包”,下载安装后打开并登录,在首页或功能区找到“AI作画”等类似入口,点击进入图片生成界面。二、主要功能及示例智能对话功能描述:豆包AI能够理解和解析自然语言,用户可以通过语音或者文字的方式输入问题,它
Spring Security 6.4登录全览:机制、特性、实战与优化
古龙飞扬
java 前端 数据库
一、登录机制SpringSecurity的登录机制是其安全框架的核心部分,它提供了一种灵活且强大的方式来保护应用程序的资源。在SpringSecurity6.4中,登录机制主要包括以下几个方面:认证流程:用户通过登录表单提交用户名和密码。SpringSecurity的UsernamePasswordAuthenticationFilter拦截该请求,并从中提取用户名和密码。创建一个Username
用Python打造智能姓名生成器:从数据分离到AI赋能
灏瀚星空
python 人工智能 开发语言 经验分享 笔记
用Python打造智能姓名生成器:从数据分离到AI赋能目录项目概述与功能清单环境准备与工具选择项目架构设计核心代码实现AI古文解析模块交互界面开发使用示例与效果展示扩展思路与优化建议1.项目概述与功能清单核心功能数据管理CSV文件存储姓氏/名字库支持用户导入/导出数据交互界面姓名生成与实时预览已选名单管理(增删改查)排除词输入框(黑名单过滤)AI赋能从古文中提取字词及注解自动生成姓名寓意解析扩展功
HarmonyOS NEXT 开发环境搭建与金融理财类APP开发指南
harmonyos
引言随着华为鸿蒙操作系统HarmonyOSNEXT的推出,越来越多的开发者开始关注并投入到这一新生态系统的开发中。本文将详细介绍如何在HarmonyOSNEXT上搭建开发环境,并通过一个金融理财类财务记账APP的示例,展示如何进行应用程序的技术开发。开发环境搭建首先,开发者需要准备一台运行Windows或macOS的计算机,并确保安装了最新版本的JavaDevelopmentKit(JDK)。接下
IMX6ULL学习整理篇——UBoot的一些基础知识(1.编译流程)
charlie114514191
从0开始的学习ARMv7a IMX6ULL芯片 学习 UBoot 嵌入式软件 编译
前言笔者整理了最近刷IMX6ULL的一些学习笔记,这里打算稍微整理一下东西发上来作为作为一个补充正文大部分而言,当我们拿到源码的时候,一般都是——先使用make来生成一份针对我们目标开发板的配置。举个例子,正点原子针对他们的开发板(EMMC作为类似于我们电脑的硬盘,DDR类似我们电脑的内存),使用的就是他们自己配置的mx6ull_14x14_ddr512_emmc_defconfig文件。也就是说
Python常用10个模块详解:提升开发效率的利器
Python_trys
python microsoft 数据库 开发语言 Python入门 Python基础 Python教程
包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取!】Python作为一门功能强大且易于学习的编程语言,拥有丰富的标准库和第三方模块,能够帮助开发者快速实现各种功能。本文将详细介绍Python中常用的10个模块,帮助你在开发中更高效地完成任务。1.os模块:操作系统交互os模块提供了与操作系统交互的功能,包括文件操作、目录管理、环境变量等。常用功能:文件与目录操作:importos#获取当前
使用Node.js对接StockTV全球金融市场数据API
数据分析爬虫
使用Node.js对接StockTV全球金融市场数据API摘要:本文详细介绍了如何通过Node.js客户端库快速接入StockTV全球金融市场数据API,涵盖股票、外汇、期货和加密货币的实时行情获取与历史数据查询。通过本文,开发者可掌握RESTAPI调用、WebSocket实时订阅等核心功能。一、项目概述StockTVAPINode.js客户端是一个轻量级SDK,提供对全球四大金融市场的标准化访问
区间合并问题
六七_Shmily
数据结构与算法分析 算法 区间合并
在算法中遇到区间合并问题时,可以从以下角度进行分析和解决:一、核心思路:排序与贪心策略排序预处理将区间按照起始端点升序排序,确保后续处理时相邻区间可能重叠。这是解决区间合并问题的关键预处理步骤[。排序后,重叠或相邻的区间会连续排列,便于合并(例如,区间[1,3]和[2,6]会相邻)。贪心合并逻辑遍历排序后的区间,逐个判断是否与结果集中的最后一个区间重叠:重叠条件:当前区间的起始点≤结果集最后一个区
VMware中linux系统与主机win系统设置共享文件夹、安装VMware tools
鲁鲁在川
linux 运维 服务器
1.设置.虚拟机==》设置==硬件/选项==》共享文件夹==》总是启用总是启用为灰色,在虚拟机未开启其设置2.添加共享文件夹3..否存在/mnt/hgfs文件夹没有创建,有则提示sudomkdir/mnt/hgfs4.挂载共享文件夹!!挂载共享文件夹!!挂载共享文件夹!!下次启动虚拟机,还需要再填一次!!每次启用,每次挂载!!!!!!!!sudovmhgfs-fuse.host://mnt/hgf
Python模块详解:定义、操作方法与高级特性
编程咕咕gu-
python 数据库 开发语言 学习路线 数据分析
如果你正在学习Python,那么你需要的话可以点击这里Python重磅福利:入门&进阶全套学习资料、电子书、软件包、项目源码等等免费分享!在Python中,模块是一个包含Python定义和语句的文件。模块可以定义函数、类和变量。模块也可以包含可执行的代码。你可以通过import语句将一个模块中的函数、类等导入到当前的程序中,以便能够重复使用代码,提高代码的可维护性。模块定义一个Python文件(.
STL学习笔记
2301_76962440
c++ 学习 笔记
包含数据结构和数学函数#includeusingnamespacestd;boolcmp(paira,pairb){//第二位从小到大if(a.second!=b.second)returna.secondb.first;}intgcd(inta,intb){if(!b)returna;elsereturngcd(b,a%b);}intlcm(inta,intb){returna/gcd(a,b)
构建可扩展的Python API与框架:实践与指南
清水白石008
Python题库 python 计算机 python 开发语言
构建可扩展的PythonAPI与框架:实践与指南一、引言在当今的软件开发中,可扩展性已成为一个不可或缺的特性。一个可扩展的API或框架不仅能够满足当前的需求,还能轻松应对未来的变化和增长。本文将深入探讨在Python中如何设计一个可扩展的API或框架,通过实际例子和详细步骤,为您提供一个实用的指南。二、理解可扩展性可扩展性指的是系统或软件能够容易地适应变化,包括但不限于新功能的添加、现有功能的修改
AI开拓者指南:GenAI产品应用TIPs——从采购到使用(采购篇)
ai开发
AI浪潮愈发澎湃的当下,生成式人工智能技术已成为企业创新与效率提升的重要工具。企业对生成式人工智能产品(以下简称为“GenAI产品”)的应用需求日益增长,其应用场景也愈发多样化:开展营销活动的过程中利用AI生成创意文案和视觉设计素材,极大地缩短了创作周期并降低了成本;使用AI客服机器人处理客户咨询,显著地提高了客户满意度和响应速度;使用AI还可以为客户提供个性化的产品推荐,提高销售转化率等等。然而
python测试工具 doctest
pythondoctest
python调试工具doctestbriefintroductiondoctest是python自带的一个调试测试工具,可用于初步检测你写的python程序的输入与输出结果是否符合你的预期通过在自己写的函数内,按照规定的格式写上你想要对比的输入输出结果,再使用python3-mdoctestexample.py(example.py是你要test的python程序),python会自动帮你用你的输
如何做好产品测试管理
测试工具
做好产品测试管理的关键在于测试规划、流程标准化、数据驱动决策。其中,测试规划要求在项目初期就明确产品质量目标和测试策略;流程标准化强调建立严谨、可重复的测试流程和标准,确保每个测试环节有章可循;数据驱动决策则通过实时数据监控和反馈分析,持续优化测试方案,最终提升产品质量与用户满意度。一、产品测试管理的重要性与基本概念在软件开发和互联网时代,产品测试管理是保障软件质量、确保产品稳定交付的核心环节。产
sql server用触发器取另外一台电脑的mysql数据_SQL Server 如何创建触发器实现一张表数据更新时,同步增加、删除、修改另一张表的数据。...
清清清飏
sql
一、触发器知识点摘要:实际应用中,我们经常会遇到在对SQLServer的某一张表进行增加、删除、修改操作时,需同步更新同一数据库或不同数据库的另一张表,此时我们可以使用SQLServer的表触发器来实现。使用触发器时,我们会用到触发器的两个临时虚拟表:Deleted表、Inserted表,它们用于存储【创建触发器表】的记录变动信息,即发生触发事件时对应的【一条旧记录】和【一条新记录】,各触发事件对
数据分析:数据的存储结构、数据类型、数据集成技术、存储模型、查询语言、API、驱动器等
AI天才研究院
Python实战 自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
作者:禅与计算机程序设计艺术1.简介数据分析是一个复杂的工程,需要用到多个数据库、数据表、数据文件等数据集成资源。不同的数据集成环境(如分布式系统、异构数据库)会影响数据分析的效率和效果。在进行数据分析时,首先要确定数据集成方案、选择合适的数据模型和索引策略,以及评估各种解决方案之间的优劣。因此,掌握数据的存储结构、数据类型、数据集成技术、存储模型、查询语言、API、驱动器等关键信息对数据分析工作
4A架构:企业数字化转型的核心引擎
ronshi
架构 架构
4A架构,即业务架构、应用架构、数据架构和技术架构的统称,是构建数字化企业的基石。这四个方面相互关联、相互支撑,共同构成了企业信息化建设的完整体系。一、业务架构:明确方向与目标业务架构是数字化转型的起点,通过对企业价值流和业务目标的梳理,为后续的架构设计提供指导。企业需明确战略定位,识别核心业务流程,并优化组织结构,以确保数字化转型与业务目标相契合。二、应用架构:实现业务能力应用架构将业务架构转化
IntelliJ IDEA 快捷键系列:重命名快捷键详解
进一步有进一步的欢喜
intellij-idea java IDEA
目录引言一、默认重命名快捷键1.Windows系统2.Mac系统二、操作步骤与技巧1.精准选择重命名范围2.智能过滤无关内容三、总结引言在代码重构中,重命名变量、类、方法是最常用的操作之一。正确使用快捷键可以极大提升开发效率。本文针对Mac和Windows用户,详细讲解IntelliJIDEA中的重命名功能,并附上操作技巧和常见问题解决。一、默认重命名快捷键1.Windows系
Chitu:清华核弹级开源!推理引擎3倍提速+50%省卡,国产芯片告别英伟达绑架
蚝油菜花
每日 AI 项目与应用实例 开源 开源人工智能
❤️如果你也关注AI的发展现状,且对AI应用开发感兴趣,我会每日分享大模型与AI领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!AI在线答疑->智能检索历史文章和开源项目->丰富的AI工具库->每日更新->尽在微信公众号->搜一搜:蚝油菜花“还在为天价H100排队?清华让国产芯片跑出3倍英伟达性能!”大家好,我是蚝油菜花。当科技巨头用天价H100显卡筑起算力高墙时,中国团队用
SpringBoot自动配置原理及手动实现自动配置
m0_56222134
程序员 面试 java 经验分享
之前我们学习了SpringBoot中的配置文件及外部化配置,了解了SpringBoot对于配置文件的功能支持与增强,本篇我们将要来学习SpringBoot的自动配置原理及手动实现自动配置。数据库依赖引起的bug我们很多人在第一次使用SpringBoot的时候,往往对其原理认知不足,或者简单的了解以后就开始入门使用,往往最常见的就是使用SpringBoot添加一个持久化框架的依赖,用来尝试操作数据库
Git版本控制实战指南:从入门到高效协作
蜡笔小新星
git 后端
文章目录Git版本控制实战指南:从入门到高效协作一、Git核心概念解析二、环境搭建与配置1.安装Git(Windows示例)2.基础配置(必须)三、Git实战全流程演示1.项目初始化2.文件生命周期管理3.提交与历史查看四、分支管理实战1.功能分支开发2.合并与冲突解决五、远程协作流程1.连接远程仓库2.团队协作规范六、高级技巧提升效率1.重写提交历史2.紧急修复流程3.定制化配置七、企业级最佳实
敏捷开发在中小团队中的应用与挑战:实战指南与避坑手册
蜡笔小新星
敏捷流程 开发语言 经验分享
文章目录敏捷开发在中小团队中的应用与挑战:实战指南与避坑手册引言:为什么中小团队更需要敏捷?一、敏捷开发适配中小团队的底层逻辑1.1中小团队的典型特征1.2敏捷开发的价值放大器效应二、敏捷实施的五大实战步骤2.1团队定制化改造(关键!)2.2轻量级工具链搭建2.3迭代节奏控制技巧2.4可视化管理的艺术2.5持续改进机制三、必须跨越的四大死亡陷阱3.1需求镀金综合症3.2站会僵尸化3.3技术债雪球效
DevOps实践:持续集成与持续部署完全指南
蜡笔小新星
devops ci/cd 运维 开发语言 经验分享
文章目录引言:从人工到自动化的进化革命一、CI/CD核心认知升级1.1持续集成vs持续部署vs持续交付1.2中小团队为什么要实施CI/CD?二、CI/CD工具链选型指南2.1中小团队推荐技术栈2.2工具对比决策矩阵三、实战五步构建企业级流水线3.1基础环境搭建(以K8s为例)3.2代码质量门禁配置3.3容器化构建最佳实践3.4自动化部署策略3.5智能回滚机制四、三大致命陷阱与破解之道4.1流水线变
OverflowError: Python int too large to convert to C long**:整数太大,无法转换为C类型long完美解决方法 ️
默 语
c语言 开发语言
OverflowError:PythoninttoolargetoconverttoClong**:整数太大,无法转换为C类型long完美解决方法️OverflowError:PythoninttoolargetoconverttoClong**:整数太大,无法转换为C类型long完美解决方法️**摘要****1.引言****2.产生`OverflowError`的原因****2.1Python与
计算机二级c语言选择题1
xu_hhh_
计算机二级c语言选择题 c语言 开发语言
c语言源程序后缀:.c计算机能执行的程序:可执行程序c语言主要借助定义函数实现模块化结构化算法可以解决任何复杂的问题高级语言都有与之对应的编译程序或解释程序用任何一种计算机高级语言都可以把算法转换为程序计算机不可以直接执行由任意高级语言编写的程序c语言常量:(1)字符可以有两个eg:‘72’(如果单引号里面的字符有多个,以最后一个为准,打印时只打印最后一个)(2)1.2e0.5e后面不能为小数,必
新兴技术对 TCP/IP 链路层性能提升的影响研究
wire290
网络
目录软件定义网络(SDN)对链路层性能的优化灵活的流量调度快速的故障恢复网络功能虚拟化(NFV)在链路层的优势体现降低硬件成本与灵活部署提升资源利用率5G技术对链路层的革命性影响超高速率与低延迟传输海量连接支持在数字化时代浪潮中,网络技术日新月异,新兴技术不断涌现。这些技术正逐步渗透到TCP/IP协议栈的各个层面,其中链路层作为网络通信的基础,受到的影响尤为显著。从提升传输速率到增强网络稳定性,新
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