ThinkPHP学习

ThinkPHP

按照MVC模式开发的一个框架,也叫TP框架。
优点:
1.  快速,稳定的搭建系统程序
2.  可以使开发人员精力集中在业务逻辑上,不需要关心程序的底层架构
3.  可以节省大量的代码,后期的升级、维护、优化十分方便
4.  有利于团队的代码风格统一。
相关的一些框架
1、zend framework
zend公司开发的官方的框架,功能很强大,重量级框架。
2、Yii
国人自己开发的重量级框架,该框架的特点就是代码的可重用性非常好。
3、CI(code Igniter)
    轻量级的框架,
4、cakePHP
    外国的PHP开发框架
5、ThinkPHP
这是国人开发的,免费、开源的,简单的、面向对象的,轻量级的PHP框架。



在ThinkPHP\Library\Think文件夹中,几个重要的文件
1、App.class.php     框架核心类文件
2、Think.class.php       每次请求都要执行的类
3、Controller.class.php      控制器的父类
4、Model.class.php       模型的父类
5、View.class.php            试图的父类


搭建ThinkPHP的环境
在站点下新建index.php,代码如下
define("APP_PATH",'./Application/');
require './ThinkPHP/ThinkPHP.php';

运行后出现欢迎界面,在说明系统自动生成了ThinkPHP的项目目录,并写入了初始的控制器和方法。



创建控制器
1.  控制器存放在Controller文件夹中
2.  命名规范:控制器的名称+Controller.class.php
3.  类名和文件的名称要一致
4.  类名用帕斯卡命名法

5.  尽量区分大小写,windows不区分大小写,但Linux中区分
6.  ThinkPHP默认的编码是UTF-8的。
7.  如果地址中没有写控制器,这默认调用Index控制器,如果没有写方法,则默认调用index方法

命名法:
1、帕斯卡命名法:首字母大写   UserName   MyNameIsLiping
2、骆驼命名法:userName     _user_name
3、匈牙利命名法:前缀(类别)+名字     radSex    txtUsername   iIength  oStu


ThinkPHP的路由

'VAR_MODULE' => 'm',  //默认模块获取变量
'VAR_ADDON' => 'addon',  //默认插件控制器命名空间变量
'VAR_CONTROLLER' => 'c', //默认控制器获取变量
'VAR_ACTION' => 'a',  /默认操作获取变量


1.普通模式
localhost/index.php?m=home&c=goods&a=show

2.pathinfo模式
http://网址/入口文件(index.php)/分组(平台)/控制器/方法
localhost/index.php/home/goods/index  

3.rewrite()重写模式
4.兼容模式
参数s=/分组/控制器/方法。
localhost/index.php?s=/home/goods/show

ThinkPHP中,默认使用pathinfo模式。




定义和调用TP的模板
所有的模板都要放在view文件夹下。
规则:一个控制器对应一个文件夹,一个方法对应一个文件

TP模板的调用
public function index(){
    //$this->display();    当前控制器的方法
    //$this->display("show");   //当前控制器的show方法
    //$this->display("Goods/index"); //Goods控制器下的index方法
    $this->display("./Application/Public/test.html");  模板页面的绝对地址
}


TP系统常量
function show(){
    echo '';
    echo '当前请求的地址:'.__SELF__.'
'; echo '当前分组:'.__MODULE__.'
'; echo '当前控制器:'.__CONTROLLER__.'
'; echo '当前方法:'.__ACTION__.'
'; } * 项目后台的搭建 1、在Application文件夹下新建一个Admin文件夹,在Admin文件夹中新建Controller和View文件夹。 2、在Admin\Controller控制器中新建一个LoginController.class.php页面,代码如下: namespace Admin\Controller; use Think\Controller; class LoginController extends Controller{ public function login(){ $this->display(); } } 3、在login.html中更改css、js、img的路径
...
4、在Admin\Controller文件夹中新建ManagerClass.php文件 namespace Admin\Controller; use Think\Controller; class ManagerController extends Controller{ public function index(){ $this->display(); } public function head(){ $this->display(); } public function left(){ $this->display() } public function right(){ $this->display() } } 5. 对应的index文件 </noframe> 6、注意更改index、head、left、right页面中的路径 </code></pre> <ul> <li>ThinkPHP的开发模式</li> </ul> <pre><code>tp框架有两种使用模式:开发模式(调试模式),一种是生产模式(运行模式) define('APP_DEBUG', true); //调试模式 define('APP_DEBUG', false); //调试模式 运行模式会把很多核心文件代码缓存成" common~runtime.php"文件,把原来每次需要加载许多文件的请求现在只要请求一个缓存文件,节省了很多文件的打开,关闭的开销。 在页面的底部显示日志信息 在配置文件中,添加如下配置 return array( 'SHOW_PAGE_TRACE' = > true ); 配置完成后,在浏览器的右下角会显示php logo。 如果想看源码的话,在behavior文件夹下的ShowPageTraceBehavior.class.php public function run(&$params){ if(!IS_AJAX && !IS_CLL && C('SHOW_PAGE_TRACE')){ echo $this->showTrace; } } 把ThinkPHP的引擎改成Smarty return array( 'TMPL_ENGINE_TYPE'=>'Smarty', ); Smarty引擎存放在vender目录下 smarty驱动存放在Library/Think/Template/Driver 下的Smarty.class.php 若想修改Smarty的配置(不建议修改) 'TMPL_ENGINE_CONFIG' => array( 'template_dir'=>'', 'compile_dir'=>'', 'cache_dir'=>'' ); 空操作 系统在找不到请求的方法的时候,会定位到__empty()方法处理,利用这个机制,我们可以对用户请求的不存在的所有操作进行统一处理。 public function _empty(){ echo '<meta charset=utf-8 />'; echo '非法操作'; } 空控制器 当系统请求找不到控制器,会定位到空控制器上EmptyController。 <?php namespace Admin\Controller; use Think\Controller; class EmptyController extends Controller{ public function _empty(){ echo '<meta charset=utf-8 />'; echo '页面不存在'; } } ?> 跨控制器调用 1、直接实例化 public function test(){ $obj = new ManagerController(); $obj->managertest(); } 2. A() A()用来实例化其他控制器的。 $obj = A("Manager"); $obj->managertest(); 3、R() R()和A()基本一样,唯一不同的是R()函数在实例化控制器的时候把操作方法一起传递过去,省略了方法的调用 R('Manager/managertest'); </code></pre> <ul> <li>TP框架的配置文件</li> </ul> <pre><code>惯例配置:ThinkPHP/conf/convention.php 应用配置:Application/Common/conf/config.php 调试配置:Application/Common/conf/debug.php 模块配置:Application/Home/conf/config.php 加载顺序 惯例配置->应用配置->调试配置->模块配置 优先级: 模块配置>调试配置>应用配置>惯例配置 C('配置的名称') 用来获取配置信息。 判断 <if condition='表达式'> <elseif condition='表达式' /> <else/> </if> </code></pre> <ul> <li>TP表达式中运算符</li> </ul> <table> <thead> <tr> <th>PHP运算符</th> <th>对应TP中的运算符</th> </tr> </thead> <tbody> <tr> <td><</td> <td>lt</td> </tr> <tr> <td>></td> <td>gt</td> </tr> <tr> <td>==</td> <td>eq</td> </tr> <tr> <td>>=</td> <td>egt</td> </tr> <tr> <td><=</td> <td>elt</td> </tr> </tbody> </table> <pre><code>使用: your scores: {$score}<br> <if condition='$score egt 90'> 你是我的骄傲 <elseif condition='$score egt 80'> Good! <elseif condition='$score egt 70'> Well! <elseif condition='$score egt 60'> Come on! <else/> Try Again! </if> 循环 <for start='开始值' end='结束值' comparison="" step="步长" name="循环变量名"> </for> <for start='1' end='100' step="10" name='b'> {$b}:hi<br> </for> 连接数据库 <?php return array( 'SHOW_PAGE_TRACE'=>TRUE, 'DB_TYPE'=>'mysql', 'DB_HOST'=>'localhost', 'DB_NAME'=>'db_name', 'DB_USER'=>'root', 'DB_PWD'=>'123', 'DB_PORT'=>'3306', 'DB_PREFIX'=>'sw_', //数据库表前缀 ); ?> 在配置文件中,做如上的配置,即可连接数据库 </code></pre> <ul> <li>创建Model模型</li> </ul> <pre><code>把"Home/Model"文件夹剪切到Application文件夹下,让Home和Admin共同使用。 第一种实例化模型的方法 public function test(){ $goods = new \Model\GoodsModel(); echo '<pre>'; var_dump($goods); } 第二种: public function test(){ $goods=M("goods"); echo '<pre>'; var_dump($goods); } 第三种: public function test(){ $goods=D("goods"); echo '<pre>'; var_dump($goods); } 在tp3.2以后,M()和D()是一样的,在3.2之前版本中 M() 类似于是 new Model(); D('goods') 类似于 new GoodsModel(): 提示:我们可以看到goods表的信息,在GoodsModel中没有写代码,所有的业务逻辑都是Model类来实现的。 对表的操作 增加:M('表名')->add($data); 删除:M('表名')->delete($id); 更新:M('表名')->save($data); 查询:M('表名')->select(); 普通查询(显示所有的商品) 1、GoodsController中的代码如下: namespace Admin\Controller; use Think\Controller; class GoodsController extends Controller{ public function showlist(){ $list=M('goods')->select(); $this->assign('list',$list); $this->display(); } } 2.在模板中循环取出 <volist name="list" id="vo"> //list数组名称,vo循环变量 <tr id="product1"> //$i从1开始,$key从零开始 <td>{$i}</td> <td>{$vo.goods_name}</td> <td>{$vo.goods_number}</td> <td>{$vo.goods_price}</td> <td>![](/aaa/a.jpg)</td> <td>{$vo.goods_brand_id}</td> <td>{$vo.goods_create_time}</td> <td><a href="#">Modify</a></td> <td><a href="javascript:;" onclick="delete_product(1)">delete</a></td> <td></td> <tr> </volist> 3.获取一条记录 $goods=M('goods')->find(); var_dump($goods); 条件查询 //查询主键为1的记录 $list=M('goods')->select(1); //查询编号是2,3,4,5的记录 $list=M('goods')->select("2,3,4,5"); //where条件 $list=M("goods")->where("goods_name like 'iphone%'")->select(); $list=M("goods")->where("goods_name like 'iphone%' and goods_price>=102")->select(); /limit $list=M("goods")->limit(5)->select(); $list=M("goods")->limit(2,5)->select(); //where and limit $list=M("Model")->where("goods_price>1000")->limit(3)->select(); //排序 $list=M("goods")->where("goods_price desc")->select(); //指定字段 $list=M("goods")->field("goods_nae,goods_price")->select(); //having $list=M("goods")->having("goods_price>2000")->select(); //分组 $list=M("goods")->group("goods_brand_id")->field("goods_brand_id,max(goods_price) m")->having('m>2000')->select(); having和where的区别 区别一: where后面跟的字段必须在数据表中有 having后面跟的字段必须在数据集中有 区别二: select * from 表 where 条件 group by 分组 having 条件 动态查询 getby+字段名 $data=M('goods')->getBygoods_id(9); //返回一条记录 聚合函数 $goods=M("goods"); $goods->count(); $goods->max("goods_price"); $goods->min("goods_price"); $goods->mavg("goods_price"); $goods->sum("goods_price"); 数据添加 1、通过关联数组的方法添加:如果主键自动增长 则返回自动增长的编号,否则返回受记录的记录数.如果SQL遇见有错误,则返回false; $data = array( 'good_name'=>'phone', 'goods_price'=>2400 ); echo M('goods')->add($data); 2、通过AR(active record)方式来添加 $goods=M('goods'); $goods->goods_name = 'TV'; $goods->goods_price = 45332; echo $goods->add(); 数据修改 1、通过关联数组的方法 $data = array( 'goods_name'=>'phone222', 'goods_price'=>2234, 'goods_id'=>22 ); echo M('goods')->save($data); //返回受影响的记录 2、通过AR(active record)方式 $goods=M("goods"); $goods->goods_name='TV333'; $goods->goods_price =22334; $goods_goods_id = 222; echo $goods->save(); 删除数据 M("goods")->delete(123); M("goods")->delete("112,33"); M(goods)->where("goods_name='apple'")->delete(); $goods=M('goods'); $goods->goods_id = 33; $goods->delete(); 执行SQL语句 //查询用query方法 $list=M()->query('select * from sw_goods'); var_dump($list); //增加,删除,修改用execute方法 echo M()->execute('delete from sw_goods where good_id=23'); </code></pre> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1275368069933318144"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(ThinkPHP学习)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1891013722827190272.htm" title="DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)" target="_blank">DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)</a> <span class="text-muted">宝码香车</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦目录DeepSeek助力Vue开发:打造丝滑的通知栏(NotificationBar)前言进入安装好的DeepSeek页面效果指令输入think根据提供的参数和项目结构,我为您实现Notification组件。以下是分步骤的解决方案:代码测试页面</div> </li> <li><a href="/article/1891001876078456832.htm" title="DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)" target="_blank">DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)</a> <span class="text-muted">宝码香车</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a> <div>前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦目录DeepSeek助力Vue开发:打造丝滑的卡片(Card)前言进入安装好的DeepSeek页面效果指令输入think代码生成改进建议(可根据需要选择实现):使用示例:组件特性说明:代码测试页面效果自己部署DeepSeek安装地址相关文章️✍️</div> </li> <li><a href="/article/1890954834446708736.htm" title="通过ThinkPad小红点键盘左右滑动页面" target="_blank">通过ThinkPad小红点键盘左右滑动页面</a> <span class="text-muted">neowell</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%A4%96%E8%AE%BE/1.htm">计算机外设</a> <div>问题ThinkPad小红点键盘的中间按键充当鼠标中键的作用,在Windows上,可以通过键盘的中键+指点杆实现上下页面的滑动。但当页面较宽,需要进行左右滑动时,会发现中键+指点杆的操作无法实现,此时可以通过安装键盘对应的官方键盘驱动来解决这个问题。比如我之前的笔记。但我现在换了不同的操作系统,无法安装Windows端的驱动,导致无法通过键盘的中键+指点杆组合实现左右页面滑动的效果。解决首先是通用解</div> </li> <li><a href="/article/1890872117218570240.htm" title="自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )" target="_blank">自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )</a> <span class="text-muted">宝码香车</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a> <div>前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦目录自己部署DeepSeek助力Vue开发:打造丝滑的时间线(Timeline)前言进入安装好的DeepSeek页面效果指令输入think代码解释使用示例组件代码代码测试整理后主要代码定义组件Timeline.vue页面效果自己部署DeepSee</div> </li> <li><a href="/article/1890728373450240000.htm" title="ThinkPHP8视图赋值与渲染" target="_blank">ThinkPHP8视图赋值与渲染</a> <span class="text-muted">夏天又到了</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B8%8E%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91/1.htm">编程与应用开发</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/studio/1.htm">studio</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a> <div>【图书介绍】《ThinkPHP8高效构建Web应用》-CSDN博客《2025新书ThinkPHP8高效构建Web应用编程与应用开发丛书夏磊清华大学出版社教材书籍9787302678236ThinkPHP8高效构建Web应用》【摘要书评试读】-京东图书在控制器操作中,使用view函数可以传入视图变量并渲染模板,其语法如下:view(视图名称,模板变量);需要注意的是,默认情况下生成的应用会采用Thi</div> </li> <li><a href="/article/1890680702513508352.htm" title="显示Class 'Think\Controller\FuController' not found和Call to a member function assign() on a non-object..." target="_blank">显示Class 'Think\Controller\FuController' not found和Call to a member function assign() on a non-object...</a> <span class="text-muted">akesuy0400</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>Class'Think\Controller\FuController'notfound错误位置FILE:D:\wamp\www\tinkphp\Application\Come\Controller\IndexController.class.phpLINE:5问题出现在Tink,文件路径不对,把它换成Come就可以了。问题出现在控制器里面的__construct()方法覆盖掉了父类的构造方法,</div> </li> <li><a href="/article/1890531519429144576.htm" title="yarn : 无法加载文件 C:\Users\Think\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microso" target="_blank">yarn : 无法加载文件 C:\Users\Think\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microso</a> <span class="text-muted">张张Z7</span> <a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>这个错误通常是由于在系统上的执行策略限制导致的。执行策略是一种安全功能,用于控制在计算机上运行的脚本的权限级别1、打开PowerShell作为管理员:右键点击开始菜单,选择"WindowsPowerShell(管理员)"2、输入以下命令来更改执行策略Set-ExecutionPolicy-ScopeCurrentUser-ExecutionPolicyUnrestricted3、在确认提示中输入"</div> </li> <li><a href="/article/1890230527374454784.htm" title="框架安全-CVE 复现&Spring&Struts&Laravel&ThinkPHP漏洞复现" target="_blank">框架安全-CVE 复现&Spring&Struts&Laravel&ThinkPHP漏洞复现</a> <span class="text-muted">网络安全小张</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>目录服务攻防-框架安全&CVE复现&Spring&Struts&Laravel&ThinkPHP*概述PHP-开发框架安全-Thinkphp&Laravel*漏洞复现*Thinkphp-3.XRCEThinkphp-5.XRCELaravel框架安全问题-CVE-2021-3129RCEJAVAWEB-开发框架安全-Spring&Struts2*Struts2框架安全*漏洞复现*S2-009远程执</div> </li> <li><a href="/article/1890228382365446144.htm" title="ThinkPHP5_基础笔记" target="_blank">ThinkPHP5_基础笔记</a> <span class="text-muted">Delong-Zhang</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/ThinkPHP/1.htm">ThinkPHP</a> <div>ThinkPHP5_云知梦_基础第1章TP5.0安装1、TP5.0系列课程2、PHP框架?3、ThinkPHP框架4、检测TP5.0环境5、TP5.0的安装6、配置虚拟主机7、目录结构8、URL地址了解9、了解TP开发模式10、MVC模式11、MVC在TP中如何体现12、MVC的变形第2章TP5.0架构1、TP架构的概述2、URL解析3、入口文件4、应用5、模块(以前台为例)6、控制器7、操作(方</div> </li> <li><a href="/article/1889886510983999488.htm" title="DeepSeek预言未来5年升值最快的东西" target="_blank">DeepSeek预言未来5年升值最快的东西</a> <span class="text-muted">ZhuBin365</span> <a class="tag" taget="_blank" href="/search/%E5%85%B6%E5%AE%83/1.htm">其它</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a> <div>Thinking好的,我现在需要思考未来5年哪些东西可能会升值最快。首先,我得考虑当前的经济趋势和技术发展的方向。通货膨胀可能继续,所以实物资产可能保值。然后是科技领域,比如人工智能、量子计算这些前沿技术相关的资产可能会有增长。接着,环保和可持续发展是热门话题,可再生能源相关的产业可能会增值。例如,太阳能、风能的公司股票或者相关技术专利。另外,电动汽车和电池技术也可能持续发展,锂、钴等稀有金属的需</div> </li> <li><a href="/article/1889683649142517760.htm" title="【译】Nodejs应用安全备忘录" target="_blank">【译】Nodejs应用安全备忘录</a> <span class="text-muted"></span> <div>本人的博客http://www.wjs.photo/,感兴趣的可以看看哦,基于NodeJs框架ThinkJs本文翻译自www.risingstack.com,并非逐字逐句的翻译,有错误的地方请指出,谢谢啦应用程序的安全就像是你房间里突然出现一只大象,那么明显,但是写代码的同学还是会忽略。也都认为应用程序的安全非常重要但是却很少有时间认真对待,毕竟我们有那么多bug要改(坏笑)。所以我们整理了一个N</div> </li> <li><a href="/article/1889571654791655424.htm" title="KDD 2023 | 先睹为快!KDD 2023论文合集50篇(附下载地址)" target="_blank">KDD 2023 | 先睹为快!KDD 2023论文合集50篇(附下载地址)</a> <span class="text-muted">马拉AI</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>下载地址:点我跳转1.DoubleAdapt:AMeta-learningApproachtoIncrementalLearningforStockTrendForecastingCode:NoneArea:一种用于股票趋势预测增量学习的元学习方法2.HomoGCL:RethinkingHomophilyinGraphContrastiveLearningCode:https://github.c</div> </li> <li><a href="/article/1889274108093460480.htm" title="换平台对比推理能力:DeepSeekR1强于Gemini2.0Flash" target="_blank">换平台对比推理能力:DeepSeekR1强于Gemini2.0Flash</a> <span class="text-muted">stereohomology</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E5%AF%B9%E6%AF%94/1.htm">大语言模型对比</a> <div>为了验证之前的猜测,换了个平台,也是免费的、提供多个大模型使用或测试的平台,这样大模型就不记得我了。对比的是DeepSeekR1(不知道满血版什么意思?不过做对了!)和Gemini2.0Flash(不是Gemini2.0FlashThinkingExperimental),仍然是之前一道小学数学应用题的解答和推理能力。两地A、B之间相距4000m;甲从A地以匀速60m/min向B出发,同时乙从B地</div> </li> <li><a href="/article/1889273981761024000.htm" title="Gemini 2.0 FlashThinking Experimental答对这个问题只需要提示一次" target="_blank">Gemini 2.0 FlashThinking Experimental答对这个问题只需要提示一次</a> <span class="text-muted">stereohomology</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>我用同一个账号再问同一个问题,给出的解答就总是正确的了。不知道是不是它记住了我的账号?还是在问答的过程中具有自我学习能力?——如果是第一种情况,换其其他账号再问就还会出错。但是,我要记住第一次提问它的回答是错误的;DeepSeekR1首次回答就正确。目前来说,这两个模型的推理能力的确最好。其它的推理能力都还是垃圾。</div> </li> <li><a href="/article/1889256715585646592.htm" title="DARTS-PT: 重新思考可微分神经架构搜索中的架构选择" target="_blank">DARTS-PT: 重新思考可微分神经架构搜索中的架构选择</a> <span class="text-muted">凌洲丰Edwina</span> <div>DARTS-PT:重新思考可微分神经架构搜索中的架构选择darts-pt[ICLR2021OutstandingPaper]RethinkingArchitectureSelectioninDifferentiableNAS项目地址:https://gitcode.com/gh_mirrors/da/darts-pt项目介绍DARTS-PT是一个基于GitHub的开源项目,源自ICLR2021的一</div> </li> <li><a href="/article/1889106797147516928.htm" title="详解Redis中lua脚本和事务" target="_blank">详解Redis中lua脚本和事务</a> <span class="text-muted">优人ovo</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>Inlearningknowledge,oneshouldbegoodatthinking,thinking,andthinkingagain.—-AlbertEinstein引言Lua脚本的原子性和事务的ACID特性想必大家都很熟悉,本篇文章将从性能表现和原理帮助我们快速理解他们基本概念1.RedisLua脚本从2.6版本起,Redis开始支持Lua脚本。开发者能够将一系列Redis命令封装于一</div> </li> <li><a href="/article/1889058628539838464.htm" title="DeepSeek 助力 Vue 开发:打造丝滑的步骤条" target="_blank">DeepSeek 助力 Vue 开发:打造丝滑的步骤条</a> <span class="text-muted">宝码香车</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦目录DeepSeek助力Vue开发:打造丝滑的步骤条指令输入think步骤步骤1:安装依赖项步骤2:创建文件结构步骤3:编写Vue组件1.简单静态进度条(`simple-static.vue`)2.动态百分比进度条(`dynamic-percen</div> </li> <li><a href="/article/1888952699530047488.htm" title="t450加固态硬盘教程_Thinkpad T450 超级笔记本 开箱更换SSD和内存" target="_blank">t450加固态硬盘教程_Thinkpad T450 超级笔记本 开箱更换SSD和内存</a> <span class="text-muted">weixin_39668496</span> <a class="tag" taget="_blank" href="/search/t450%E5%8A%A0%E5%9B%BA%E6%80%81%E7%A1%AC%E7%9B%98%E6%95%99%E7%A8%8B/1.htm">t450加固态硬盘教程</a> <div>ThinkpadT450超级笔记本开箱更换SSD和内存2016-02-1410:30:0623点赞81收藏24评论小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情新年之前好不容易想放松一下,结果正在此时,就来了两台新的电脑,一台DELL7040,那台已经在我之前的文章里分享给大家了,另外一台就是今天的主角ThinkpadT450。本来当时机器来的时候就</div> </li> <li><a href="/article/1888610150164525056.htm" title="FastAdmin后台盲盒商城 晒图+免签支付+短信验证+在线回收 ThinkPHP框架源码" target="_blank">FastAdmin后台盲盒商城 晒图+免签支付+短信验证+在线回收 ThinkPHP框架源码</a> <span class="text-muted">希希分享</span> <a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E8%B5%84%E6%BA%90/1.htm">源码资源</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E5%B8%8C%E7%BD%9158soho_cn/1.htm">软希网58soho_cn</a><a class="tag" taget="_blank" href="/search/FastAdmin%E5%90%8E%E5%8F%B0%E7%9B%B2%E7%9B%92%E5%95%86%E5%9F%8E/1.htm">FastAdmin后台盲盒商城</a><a class="tag" taget="_blank" href="/search/ThinkPHP%E6%A1%86%E6%9E%B6%E6%BA%90%E7%A0%81/1.htm">ThinkPHP框架源码</a> <div>源码前端UNIAPP开发,可以打包成APP(非H5封壳)+H5,接其他平台支付通道,前后端全开源h5盲盒首页可以直接开盒新ul修复优化BUG,修复无限抽,,短信接口使用第三方低价接口不使用阿里云高门槛,晒图图片显示,收藏删除功能,前端界面优化三级分销分润自定义添加商品设置自定义中奖概率!商品回收功能例如60抽的商品,回收40价格货!一键回收;发货管理;玩法介绍;流程展示;开奖模式;模式;分销模式可</div> </li> <li><a href="/article/1888594892083490816.htm" title=".NET周刊【9月第3期 2024-09-15】" target="_blank">.NET周刊【9月第3期 2024-09-15】</a> <span class="text-muted">INCerry</span> <a class="tag" taget="_blank" href="/search/.NET/1.htm">.NET</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a> <div>国内文章关于.NET在中国为什么工资低的分析https://www.cnblogs.com/thinkingmore/p/18406244.NET在中国开发者的薪资偏低,主要因市场需求、技术栈选择和企业文化等因素所致。历史上,.NET曾因微软的闭源策略发展受限,尽管后来推出了跨平台的.NETCore,但市场接受度仍不高,主要应用于国有企业和传统行业。与Java、Python相比,.NET在新兴领域</div> </li> <li><a href="/article/1888359123699953664.htm" title="每日Attention学习18——Grouped Attention Gate" target="_blank">每日Attention学习18——Grouped Attention Gate</a> <span class="text-muted">xiongxyowo</span> <a class="tag" taget="_blank" href="/search/%E5%88%92%E6%B0%B4/1.htm">划水</a> <div>模块出处[ICLR25Submission][link]UltraLightUNet:RethinkingU-shapedNetworkwithMulti-kernelLightweightConvolutionsforMedicalImageSegmentation模块名称GroupedAttentionGate(GAG)模块作用轻量特征融合模块结构模块特点特征融合前使用GroupConv进行处</div> </li> <li><a href="/article/1888074808017612800.htm" title="测试中的第一性原理:回归本质的质量思维革命" target="_blank">测试中的第一性原理:回归本质的质量思维革命</a> <span class="text-muted">测试者家园</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%BC%80%E5%8F%91%E5%92%8C%E6%B5%8B%E8%AF%95/1.htm">测试开发和测试</a><a class="tag" taget="_blank" href="/search/%E8%B4%A8%E9%87%8F%E6%95%88%E8%83%BD/1.htm">质量效能</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%B4%A8%E9%87%8F%E6%95%88%E8%83%BD/1.htm">质量效能</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%AD%96%E7%95%A5/1.htm">测试策略</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">智能测试</a> <div>在软件工程领域,测试活动常被惯性思维和经验主义所主导——测试用例库无限膨胀、自动化脚本维护成本居高不下、测试策略与业务目标渐行渐远。要突破这种困境,第一性原理(FirstPrinciplesThinking)提供了独特的解题视角:剥离表象、回归本质,通过基础真理重构质量保障体系。一、打破经验主义的思维枷锁第一性原理要求从业者摒弃"行业惯例"和"历来如此"的先验假设,从系统的基本构成要素出发进行推演</div> </li> <li><a href="/article/1887364438810488832.htm" title="怎么实现AI思考过程" target="_blank">怎么实现AI思考过程</a> <span class="text-muted">懒编程-二两</span> <a class="tag" taget="_blank" href="/search/%E7%8A%B6%E6%80%81%E6%A8%A1%E5%BC%8F/1.htm">状态模式</a> <div>unsetunset前言unsetunset在做多Agent系统时,因为整个系统可能会经过多次Agent处理,耗时会比较高,如果不给前端展示Agent处理的过程,那么用户的体验就会非常不好,在用户的视角,你的程序可能卡死了,但其实你的Agent在背后干活以求获得好的结果。解决方案也比较直观,就是将Agent的处理过程在前端返回出来,这也是很多产品的做法,即所谓的有一个thinking过程的展示。本</div> </li> <li><a href="/article/1887336570499952640.htm" title="35岁PHP程序员如何利用“《资治通鉴》”来提升自己?底层原理是什么?" target="_blank">35岁PHP程序员如何利用“《资治通鉴》”来提升自己?底层原理是什么?</a> <span class="text-muted">快点好好学习吧</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>《资治通鉴》是中国历史上一部重要的编年体通史,由北宋时期的司马光主持编写。这部书涵盖了从战国时期到五代十国长达1362年的历史,内容详尽,记录了政治、军事、经济、文化等多方面的历史事件和人物传记。对于35岁的PHP程序员来说,《资治通鉴》中的思想和历史教训可以为个人成长、职业发展、团队管理以及创新思维等方面提供深刻的启示。1.战略思维与长远规划(StrategicThinkingandLong-t</div> </li> <li><a href="/article/1887037369102692352.htm" title="深入理解 ThinkPHP:框架结构与核心概念详解" target="_blank">深入理解 ThinkPHP:框架结构与核心概念详解</a> <span class="text-muted">奥顺互联V</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a> <div>深入理解ThinkPHP:框架结构与核心概念详解ThinkPHP是一款广泛使用的PHP开发框架,以其高效性和灵活性受到开发者的青睐。要充分利用这一框架,理解其结构和核心概念是至关重要的。本文将详细解析ThinkPHP的框架结构及其重要概念,帮助开发者在实际项目中更加得心应手。1.ThinkPHP框架概述ThinkPHP采用MVC(模型-视图-控制器)设计模式,旨在将应用程序的业务逻辑、用户界面和数</div> </li> <li><a href="/article/1887037240887013376.htm" title="我的PHP学习之路:经验分享与建议" target="_blank">我的PHP学习之路:经验分享与建议</a> <span class="text-muted">奥顺互联V</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a> <div>我的PHP学习之路:经验分享与建议PHP作为一种广泛使用的服务器端脚本语言,因其易学性和强大的功能而受到许多开发者的青睐。回顾我的PHP学习之路,我希望通过分享我的经验和建议,帮助那些正在学习或计划学习PHP的朋友们更高效地掌握这门语言。1.学习的起点1.1.理解PHP的基本概念在开始学习PHP之前,首先需要了解它的基本概念和应用场景。PHP是一种开源的服务器端脚本语言,主要用于Web开发。它可以</div> </li> <li><a href="/article/1886930067041349632.htm" title="metagpt中ActionNode的用法" target="_blank">metagpt中ActionNode的用法</a> <span class="text-muted">ZHOU_WUYI</span> <a class="tag" taget="_blank" href="/search/metagpt/1.htm">metagpt</a><a class="tag" taget="_blank" href="/search/metagpt/1.htm">metagpt</a> <div>目录整体流程1.基础组件:2.SIMPLE_THINK_NODE和SIMPLE_CHECK_NODE:3.THINK_NODES类:4.ThinkAction类:5.SimplePrint类:6.Printer类:7.main函数:总结:主要执行流程:代码参考链接:整体流程实现一个基于节点(Node)结构和思维推理的系统,用于生成和打印数字列表。它使用了ActionNode和Action类来定义任</div> </li> <li><a href="/article/1886829835406340096.htm" title="php解析失败,解决ThinkPHP模板常量解析失败" target="_blank">php解析失败,解决ThinkPHP模板常量解析失败</a> <span class="text-muted">集成电路科普者</span> <div>ThinkPHP在设计时没有考虑过把__XXX__这种模板常量用在一些PHP操作上,比如模板继承、Include标签统统不能用模板常量,比如下面这样ThinkPHP是不解析的,直接过滤掉。其原因有21.URL路径PHP是不认的,PHP引用文件需要文件路径比如引用js文件你可以这样127.0.0.1/nut_shop/Public/jQuery.js而引用PHP文件则需要./Public/nav.h</div> </li> <li><a href="/article/1886228177374736384.htm" title="PHP代码审计学习02" target="_blank">PHP代码审计学习02</a> <span class="text-muted">玄客)</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>目录代码审计一般思路Beescms代码审计(upload)Finecms基于前台MVC任意文件上传挖掘思路CLTPHP基于thinkphp5框架的文件上传挖掘思路今天来看PHP有框架MVC类,文件上传,断点调试挖掘。同样还是有关键字搜索和功能点抓包两种方法来找到文件和代码段,最后进行分析。经过这两天的代码审计学习,有了一些认识,那就是渗透测试相当于是黑盒测试,而代码审计相当于是白盒测试,代码审计会</div> </li> <li><a href="/article/1885936274217431040.htm" title="如何本地部署DeepSeek?DeepThink R1 本地部署全攻略:零基础小白指南。" target="_blank">如何本地部署DeepSeek?DeepThink R1 本地部署全攻略:零基础小白指南。</a> <span class="text-muted">白马区块Crypto100</span> <a class="tag" taget="_blank" href="/search/Solana/1.htm">Solana</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%A5%97%E5%88%A9%E7%AD%96%E7%95%A5%E4%BA%A4%E6%98%93/1.htm">套利策略交易</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/AI%E5%8A%A9%E6%89%8B/1.htm">AI助手</a> <div>离线运行AI,免费使用OpenAI级别推理模型本教程将手把手教你如何在本地部署DeepThinkR1AI模型,让你无需联网就能运行强大的AI推理任务。无论你是AI新手还是资深开发者,都可以轻松上手!目录DeepThinkR1介绍安装Ollama(AI运行环境)下载并安装DeepThinkR1模型在终端运行DeepThinkR1使用Chatbox浏览器UI交互创建你的专属AI伙伴进阶玩法:离线AI编</div> </li> <li><a href="/article/57.htm" title="多线程编程之join()方法" target="_blank">多线程编程之join()方法</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/JOIN/1.htm">JOIN</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a> <div>现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢? &nbsp; Java实现过程如下: public class T1 implements Runnabl</div> </li> <li><a href="/article/184.htm" title="java中switch的使用" target="_blank">java中switch的使用</a> <span class="text-muted">bingyingao</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/break/1.htm">break</a><a class="tag" taget="_blank" href="/search/continue/1.htm">continue</a> <div>java中的switch仅支持case条件仅支持int、enum两种类型。 用enum的时候,不能直接写下列形式。 switch (timeType) { case ProdtransTimeTypeEnum.DAILY: break; default: br</div> </li> <li><a href="/article/311.htm" title="hive having count 不能去重" target="_blank">hive having count 不能去重</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/%E5%8E%BB%E9%87%8D/1.htm">去重</a><a class="tag" taget="_blank" href="/search/having+count/1.htm">having count</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E6%95%B0/1.htm">计数</a> <div>hive在使用having count()是,不支持去重计数 &nbsp; hive (default)&gt; select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)&gt;1 limit 10;&nbsp; FAILED: SemanticExcep</div> </li> <li><a href="/article/438.htm" title="WebSphere对JSP的缓存" target="_blank">WebSphere对JSP的缓存</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/WAS+JSP+%E7%BC%93%E5%AD%98/1.htm">WAS JSP 缓存</a> <div>&nbsp; &nbsp; &nbsp; 对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。 &nbsp; &nbsp; &nbsp; &nbsp;现服务</div> </li> <li><a href="/article/565.htm" title="设计模式总结" target="_blank">设计模式总结</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>1.工厂模式 &nbsp; 1.1 工厂方法模式 (由一个工厂类管理构造方法) &nbsp;&nbsp;&nbsp;&nbsp; 1.1.1普通工厂模式(一个工厂类中只有一个方法) &nbsp;&nbsp;&nbsp;&nbsp; 1.1.2多工厂模式(一个工厂类中有多个方法) &nbsp;&nbsp;&nbsp;&nbsp; 1.1.3静态工厂模式(将工厂类中的方法变成静态方法) &n</div> </li> <li><a href="/article/692.htm" title="实例:供应商管理报表需求调研报告" target="_blank">实例:供应商管理报表需求调研报告</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E8%A1%A8%E7%B3%BB%E7%BB%9F/1.htm">报表系统</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E8%A1%A8%E8%BD%AF%E4%BB%B6/1.htm">报表软件</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8C%96%E9%80%89%E5%9E%8B/1.htm">信息化选型</a> <div>引言 随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标 1、通过报表为采购决策提供数据分析与支撑 2、对供应商进行综合评估以及管理,合理管理和</div> </li> <li><a href="/article/819.htm" title="mysql" target="_blank">mysql</a> <span class="text-muted">林鹤霄</span> <div>转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html mysql -uroot -p ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) &nbsp; [root@centos var]# service mysql</div> </li> <li><a href="/article/946.htm" title="Linux下多线程堆栈查看工具(pstree、ps、pstack)" target="_blank">Linux下多线程堆栈查看工具(pstree、ps、pstack)</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>原文:http://blog.csdn.net/yfkiss/article/details/6729364 &nbsp; 1. pstree pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552)&nbsp;&nbsp;&n</div> </li> <li><a href="/article/1073.htm" title="html input与textarea 值改变事件" target="_blank">html input与textarea 值改变事件</a> <span class="text-muted">alxw4616</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>// 文本输入框(input) 文本域(textarea)值改变事件 // onpropertychange(IE) oninput(w3c) $('input,textarea').on('propertychange input', function(event) { &nbsp; &nbsp; &nbsp;console.log($(this).val()) }); &nbsp; </div> </li> <li><a href="/article/1200.htm" title="String类的基本用法" target="_blank">String类的基本用法</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/String/1.htm">String</a> <div>&nbsp; 字符串的用法; &nbsp; &nbsp; // 根据字节数组创建字符串 byte[] by = { 'a', 'b', 'c', 'd' }; String newByteString = new String(by); &nbsp; &nbsp; &nbsp; &nbsp; 1,length() &nbsp;获取字符串的长度 &nbsp; &nbsp; &nbs</div> </li> <li><a href="/article/1327.htm" title="JDK1.5 Semaphore实例" target="_blank">JDK1.5 Semaphore实例</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a><a class="tag" taget="_blank" href="/search/Semaphore/1.htm">Semaphore</a> <div>Semaphore类 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。 S</div> </li> <li><a href="/article/1454.htm" title="使用GZip来压缩传输量" target="_blank">使用GZip来压缩传输量</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/GZip/1.htm">GZip</a> <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PJL Compressi</div> </li> <li><a href="/article/1581.htm" title="【Java范型三】Java范型详解之范型类型通配符" target="_blank">【Java范型三】Java范型详解之范型类型通配符</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>&nbsp; &nbsp; 定义如下一个简单的范型类, &nbsp; package com.tom.lang.generics; public class Generics&lt;T&gt; { private T value; public Generics(T value) { this.value = value; } } </div> </li> <li><a href="/article/1708.htm" title="【Hadoop十二】HDFS常用命令" target="_blank">【Hadoop十二】HDFS常用命令</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>1. 修改日志文件查看器 &nbsp; hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml cat edits.xml &nbsp; 修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志 &nbsp; 2. fsimage查看HDFS中的块信息等 &nb</div> </li> <li><a href="/article/1835.htm" title="怎样区别nginx中rewrite时break和last" target="_blank">怎样区别nginx中rewrite时break和last</a> <span class="text-muted">ronin47</span> <div>在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。 location&nbsp;/ &nbsp;&nbsp; {&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;proxy_pass&nbsp;http://test;&nbsp;</div> </li> <li><a href="/article/1962.htm" title="java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m" target="_blank">java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.ArrayList; import java.util.List; import java.util.Stack; public class CombinationToSum { /* 第21 题 2010 年中兴面试题 编程求解: 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等</div> </li> <li><a href="/article/2089.htm" title="eclipse svn 帐号密码修改问题" target="_blank">eclipse svn 帐号密码修改问题</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a><a class="tag" taget="_blank" href="/search/svn%E5%B8%90%E5%8F%B7%E5%AF%86%E7%A0%81%E4%BF%AE%E6%94%B9/1.htm">svn帐号密码修改</a> <div>问题描述: &nbsp;&nbsp;&nbsp;&nbsp; Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。 解决思路: &nbsp;&nbsp;&nbsp;&nbsp; 删除subclipse记录的帐号、密码信息,重新输入</div> </li> <li><a href="/article/2216.htm" title="[电子商务]传统商务活动与互联网的结合" target="_blank">[电子商务]传统商务活动与互联网的结合</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1/1.htm">电子商务</a> <div> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如何避免销售量和利润率增加的</div> </li> <li><a href="/article/2343.htm" title="java 解析 properties-使用 Properties-可以指定配置文件路径" target="_blank">java 解析 properties-使用 Properties-可以指定配置文件路径</a> <span class="text-muted">cuityang</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/properties/1.htm">properties</a> <div>#mq xdr.mq.url=tcp://192.168.100.15:61618; import java.io.IOException; import java.util.Properties; public class Test { String conf = &quot;log4j.properties&quot;; private static final</div> </li> <li><a href="/article/2470.htm" title="Java核心问题集锦" target="_blank">Java核心问题集锦</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80/1.htm">基础</a><a class="tag" taget="_blank" href="/search/%E6%A0%B8%E5%BF%83/1.htm">核心</a><a class="tag" taget="_blank" href="/search/%E9%9A%BE%E7%82%B9/1.htm">难点</a> <div>注意,这里的参考文章基本来自Effective Java和jdk源码 1)ConcurrentModificationException 当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是: 1)用listIterator, 它支持在遍历的过程中修改元素, 2)不用listIterator, new一个</div> </li> <li><a href="/article/2724.htm" title="1分钟学会Markdown语法" target="_blank">1分钟学会Markdown语法</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/markdown/1.htm">markdown</a> <div>markdown 简明语法 基本符号 *,-,+ 3个符号效果都一样,这3个符号被称为&nbsp;Markdown符号 空白行表示另起一个段落 `是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签 换行 单一段落( &lt;p&gt;) 用一个空白行 连续两个空格 会变成一个 &lt;br&gt; 连续3个符号,然后是空行</div> </li> <li><a href="/article/2851.htm" title="Gson使用二(GsonBuilder)" target="_blank">Gson使用二(GsonBuilder)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/gson/1.htm">gson</a><a class="tag" taget="_blank" href="/search/GsonBuilder/1.htm">GsonBuilder</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述 &nbsp; &nbsp; GsonBuilder用来定制java跟json之间的转换格式 &nbsp; 二.基本使用 实体测试类: 温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField</div> </li> <li><a href="/article/2978.htm" title="报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList" target="_blank">报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f</div> </li> <li><a href="/article/3105.htm" title="JavaWeb之JSP指令" target="_blank">JavaWeb之JSP指令</a> <span class="text-muted">ihuning</span> <a class="tag" taget="_blank" href="/search/javaweb/1.htm">javaweb</a> <div>&nbsp; 要点 &nbsp; JSP指令简介&nbsp; page指令&nbsp; include指令&nbsp; &nbsp; JSP指令简介&nbsp; &nbsp; JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。 JSP指令的基本语法格式: &lt;%@ 指令 属性名=&quot;</div> </li> <li><a href="/article/3232.htm" title="mac上编译FFmpeg跑ios" target="_blank">mac上编译FFmpeg跑ios</a> <span class="text-muted">啸笑天</span> <a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a> <div>1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl 2、安装yasm-1.2.0 curl http://www.tortall.net/projects/yasm</div> </li> <li><a href="/article/3359.htm" title="sql mysql oracle中字符串连接" target="_blank">sql mysql oracle中字符串连接</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a> <div>有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的: MySQL: CONCAT() Oracle: CONCAT(), || SQL Server: + CONCAT() 的语法如下: Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。 请注意,Oracle的CON</div> </li> <li><a href="/article/3486.htm" title="Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate" target="_blank">Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>// 报错如下: $ git pull origin master fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce rtificate &nbsp; // 原因: 由于git最新版默认使用ssl安全验证,但是我们是使用的git未设</div> </li> <li><a href="/article/3613.htm" title="windows命令行设置wifi" target="_blank">windows命令行设置wifi</a> <span class="text-muted">surfingll</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/wifi/1.htm">wifi</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0%E6%9C%ACwifi/1.htm">笔记本wifi</a> <div>还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么 教你命令行设置 笔记本电脑wifi: 1、开启wifi命令 netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456 netsh wlan start hostednetwork pause 其中pause是等待输入,可以去掉 2、</div> </li> <li><a href="/article/3740.htm" title="Linux(Ubuntu)下安装sysv-rc-conf" target="_blank">Linux(Ubuntu)下安装sysv-rc-conf</a> <span class="text-muted">wmlJava</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/sysv-rc-conf/1.htm">sysv-rc-conf</a> <div>安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf 操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。 &nbsp; &nbsp; 背景知识 sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf</div> </li> <li><a href="/article/3867.htm" title="svn切换环境,重发布应用多了javaee标签前缀" target="_blank">svn切换环境,重发布应用多了javaee标签前缀</a> <span class="text-muted">zengshaotao</span> <a class="tag" taget="_blank" href="/search/javaee/1.htm">javaee</a> <div>更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。 &nbsp; 然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。 &nbsp; 检出</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>