程序员自己的问答社区我要提问
来自 JavaScript
最新刘奇回答:
首先JavaScript是一门弱类型的语言(个人感觉更加简单),他会自动隐式转换类型,所有的变量命名都用var,不管是数组,整型。浮点型。至于你使用那句,表示看不懂,后面是一个y语句,调用window的一个alert方法,输出99,这样一个...[ 查看全部 ]

首先JavaScript是一门弱类型的语言(个人感觉更加简单),他会自动隐式转换类型,所有的变量命名都用var,不管是数组,整型。浮点型。

至于你使用那句,表示看不懂,后面是一个y语句,调用window的一个alert方法,输出99,这样一个方法复制给一个变量。语法上是错误的,我用FIrefox,发现num会是一个undefined的值,这符合我理解,你这个99表示疑惑。


收起
来自 Java
最新伊谢尔伦回答:
首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:ArrayList...[ 查看全部 ]

首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:

ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。

Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。

LinkedList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。另外,他还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。

查看Java源代码,发现当数组的大小不够的时候,需要重新建立数组,然后将元素拷贝到新的数组内,ArrayList和Vector的扩展数组的大小不同。

ArrayList中:

public boolean add(E e) {
  
    ensureCapacity(size + 1);  // 增加元素,判断是否能够容纳。不能的话就要新建数组
   
    elementData[size++] = e;
  
    return true;
  
}
  
 public void ensureCapacity(int minCapacity) {
  
    modCount++;
  
    int oldCapacity = elementData.length;
  
    if (minCapacity > oldCapacity) {
  
        Object oldData[] = elementData; // 此行没看出来用处,不知道开发者出于什么考虑
   
        int newCapacity = (oldCapacity * 3)/2 + 1; // 增加新的数组的大小
   
        if (newCapacity < minCapacity)
  
       newCapacity = minCapacity;
  
            // minCapacity is usually close to size, so this is a win:
   
            elementData = Arrays.copyOf(elementData, newCapacity);
  
    }
  
}

Vector中:

private void ensureCapacityHelper(int minCapacity) {
  
    int oldCapacity = elementData.length;
  
    if (minCapacity > oldCapacity) {
  
        Object[] oldData = elementData;
  
        int newCapacity = (capacityIncrement > 0) ?
  
       (oldCapacity + capacityIncrement) : (oldCapacity * 2);
  
        if (newCapacity < minCapacity) {
  
       newCapacity = minCapacity;
  
        }
  
         elementData = Arrays.copyOf(elementData, newCapacity);
  
    }
  
}

关于ArrayList和Vector区别如下:

ArrayList在内存不够时默认是扩展50% + 1个,Vector是默认扩展1倍。

Vector提供indexOf(obj, start)接口,ArrayList没有。

Vector属于线程安全级别的,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销。


收起
来自 PHP
最新伊谢尔伦回答:
这里做一个实例试验一下,希望对你有帮助存储过程:<...code...>$phpt_proc_return.phpip:1.34.21.86,port:8088ip:1.34.59.50,port:8088ip:1.34.69....[ 查看全部 ]

这里做一个实例试验一下,希望对你有帮助

存储过程:

delimiter//
createprocedureusp_s2(outpar1int)
begin
selectinet_ntoa(ip),portfromproxy_listlimit5;
selectcount(*)intopar1fromproxy_list;
END//
delimiter;

session 1执行:

mysql>callusp_s2(@a);
+—————+——+
|inet_ntoa(ip)|port|
+—————+——+
|1.34.21.86  |8088|
|1.34.59.50  |8088|
|1.34.69.15  |8088|
|1.34.73.110  |8088|
|1.34.76.218  |8088|
+—————+——+
5rowsinset(0.00sec)
QueryOK,1rowaffected(0.01sec)
mysql>select@a;
+——+
|@a  |
+——+
|4430|
+——+
1rowinset(0.00sec)

session 2执行:

mysql>select@a;
+——+
|@a  |
+——+
|NULL|
+——+
1rowinset(0.00sec)

可见两个session得到的结果不一致。 基本可以肯定两次调用落入不同的会话中会得到不同的值。
为了一致可以如用如下调用:

<?php
$hostname="127.0.0.1";
$username="wubx";
$password="wubxwubx";
$database="proxydb";
$db=newmysqli($hostname,$username,$password,$database);
if(mysqli_connect_errno()){
    printf("Connect failed: %s\n",mysqli_connect_error());
    exit();
}
$result=$db->multi_query("call usp_s2(@total); select @total;");
if($result){
    do{
    if($r=$db->store_result()){
        if($r->field_count==2){
            while($row=$r->fetch_row()){
                print"ip: $row[0], port: $row[1]\n";
            }
        }else{
            $row =$r->fetch_row();
            print"total: $row[0]\n";
        }
    }
    }while($db->next_result());
}
$db->close();
?>

$phpt_proc_return.php
ip:1.34.21.86,port:8088
ip:1.34.59.50,port:8088
ip:1.34.69.15,port:8088
ip:1.34.73.110,port:8088
ip:1.34.76.218,port:8088
total:4430

Good luck.


收起
来自 Linux
最新伊谢尔伦回答:
有可能是模板的文件名的问题。用过TP的都知道:thinkphp会在$this->display()的时候,会自动获取方法名作为模板的文件名,比如一个getUserInfo方法对用着getuserinfo.html的模板文件。对控制器里...[ 查看全部 ]

有可能是模板的文件名的问题。

用过TP的都知道:thinkphp会在$this->display()的时候,会自动获取方法名作为模板的文件名,比如一个getUserInfo方法对用着getuserinfo.html的模板文件。

对控制器里的方法,我用驼峰命名法,而view层里的模板名,也是用了驼峰命名法。比如getUserInfo方法对应了getUserInfo.html的模板文件,但是!thinkphp在$this->display()的时候,读取方法名作为模板名,读出来的方法名是小写的,也就是要求模板名为getuserinfo.html。

在Windows下不区分文件名大小写,Linux会区分,所以报错了。

解决办法:要么改模板文件名为小写,要么$this->display('模板文件名')(不带.html)。


收起
来自 JavaScript
最新刘奇回答:
tyc catch 捕获并处理异常[ 查看全部 ]

tyc catch 捕获并处理异常

收起
来自 React
最新阿神回答:
根据需求设置,但是你也可以把包含所有库的插件引导进去就不用特引入某项库。类似于bootstrap.js引入后就不用用户定制特定功能的插件,不过建议分别引入,减少项目文件的体积。[ 查看全部 ]

根据需求设置,但是你也可以把包含所有库的插件引导进去就不用特引入某项库。类似于bootstrap.js引入后就不用用户定制特定功能的插件,不过建议分别引入,减少项目文件的体积。

收起
来自 HTML
最新伊谢尔伦回答:
通过css属性display:block;或者display:inline-block; 把行属性修改成块状属性,就ok了。以后制作网页会经常需要使用这两个属性。[ 查看全部 ]

通过css属性display:block;或者display:inline-block; 
把行属性修改成块状属性,就ok了。以后制作网页会经常需要使用这两个属性。

收起
来自 PHP
最新伊谢尔伦回答:
当使用 PDO 连接操作数据库的时候,有时会出现:保存在数据库中的汉字为乱码。以文件为 UTF-8 格式,其解决方法如下:(1)实例化的对象直接执行 query() 方法或者 exec() 方法:<...code...>[ 查看全部 ]

当使用 PDO 连接操作数据库的时候,有时会出现:保存在数据库中的汉字为乱码。以文件为 UTF-8 格式,其解决方法如下:

(1)实例化的对象直接执行 query() 方法或者 exec() 方法:

<?php
  class DB {
    static public function getDB() {
      try {
        $_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2);
        $_pdo = new PDO(DB_DSN, DB_NAME, DB_PASS, $_opts_values);
      } catch (PDOException $e) {
        exit('数据库连接错误!错误信息:'.$e->getMessage());
      }
      $_pdo->query("SET NAMES utf8"); // $_pdo->exec('SET NAMES utf8'); //设置数据库编码,两种方法都可以
      return $_pdo;
    }
  }
?>

(2)在实例化 PDO 的第四个参数添加 MYSQL_ATTR_INIT_COMMAND 属性:

<?php
  class DB {
    static public function getDB() {
      try {
        $_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2,
           PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8');
        $_pdo = new PDO(DB_DSN, DB_NAME, DB_PASS, $_opts_values);
      } catch (PDOException $e) {
        exit('数据库连接错误!错误信息:'.$e->getMessage());
      }
      return $_pdo;
    }
  }
?>


收起
来自 PHP
最新伊谢尔伦回答:
PHP中提供了<<<运算符构建多行字符串序列的方法,通常称为here-document或表示为heredoc的简写。这种方法详细表述了字符串的字面值,并在文本中保留了字符串的下划线和其他空格(包括缩进)。例如:<.....[ 查看全部 ]

PHP中提供了<<<运算符构建多行字符串序列的方法,通常称为here-document或表示为heredoc的简写。

这种方法详细表述了字符串的字面值,并在文本中保留了字符串的下划线和其他空格(包括缩进)。例如:

<?php
$author ='wixy';
echo <<<_END
Thisis a Headline
Thisis the first line.
Thisis the second line.
---Writtenby $author.
_END;
?>

PHP解析器会将两个_END标签中间的所有内容输出,就相当于一个用双引号引用的字符串。

这意味着,我们可以将一整段HTML语言直接写在PHP代码中,然后用PHP变量来替换具体的动态部分。

<?php
 $out =<<<_END
 .....
 _END;
 ?>

也可用上面这种方式将两个标签中的内容赋值给变量。

注意:用来关闭的_END标签必须单独放在一行,而且这一行中不能添加其他内容,即使注释或者空格也不允许的。


收起
来自 JavaScript
最新阿神回答:
考虑兼容性就是这样, 还有很多在用XP的人还是用的是ie8以下的浏览器,如果你做出来的前端页面, 只有一两个人看的异常,没有太大问题, 但是如果是一小批人看的异常, 那就是你考虑得不全面[ 查看全部 ]

考虑兼容性就是这样, 还有很多在用XP的人还是用的是ie8以下的浏览器,如果你做出来的前端页面, 只有一两个人看的异常,没有太大问题, 但是如果是一小批人看的异常, 那就是你考虑得不全面

收起
来自 JavaScript
最新刘奇回答:
对象比较是指该命名下,他们对内存中存储数据的比较;举个例子吧,直接声明一个对象和构造一个对象,可能值是一样的,但是内存中的数据肯定是不同的,原型也不同;因此是不同的。两个声明对象比较的话,对内存中的数据也是两套,比较也是不同的。你把这个比较...[ 查看全部 ]

对象比较是指该命名下,他们对内存中存储数据的比较;

举个例子吧,直接声明一个对象和构造一个对象,可能值是一样的,但是内存中的数据肯定是不同的,原型也不同;因此是不同的。

两个声明对象比较的话,对内存中的数据也是两套,比较也是不同的。

你把这个比较理解为“是否同一个”而不是“是否相同”


收起
来自 Bootstrap
最新阿神回答:
Bootstrap设备:              超小型设备           小型设备    ...[ 查看全部 ]

Bootstrap设备:

              超小型设备           小型设备                 中型设备               大型设备

               <768px       768px< x <992px     992px<x<1200px     <1200px

class前缀  .col-xs-             .col-sm-                   .col-md-                .col-lg-  

列的和          12                     12                              12                       12

列宽            auto                  60px                         78px                   95px  

手机算是超小型设备        依次往后排    最大的设备就是台式电脑     

收起
来自 Java
最新伊谢尔伦回答:
可以通过以下代码来实现:<...code...>[ 查看全部 ]

可以通过以下代码来实现:

package lc.util;
import java.math.BigDecimal;
public class MathHelper {
 private static final int DEF_DIV_SCALE = 10;
 private MathHelper() {
 }
 /**
  * 提供精确的加法运算。
  *
  * @param v1
  *            被加数
  * @param v2
  *            加数
  * @return 两个参数的和
  */
 public static double add(double v1, double v2) {
  BigDecimal b1 = new BigDecimal(Double.toString(v1));
  BigDecimal b2 = new BigDecimal(Double.toString(v2));
  return b1.add(b2).doubleValue();
 }
 /**
  * 提供精确的减法运算。
  *
  * @param v1
  *            被减数
  * @param v2
  *            减数
  * @return 两个参数的差
  */
 public static double sub(double v1, double v2) {
  BigDecimal b1 = new BigDecimal(Double.toString(v1));
  BigDecimal b2 = new BigDecimal(Double.toString(v2));
  return b1.subtract(b2).doubleValue();
 }
 /**
  * 提供精确的乘法运算。
  *
  * @param v1
  *            被乘数
  * @param v2
  *            乘数
  * @return 两个参数的积
  */
 public static double mul(double v1, double v2) {
  BigDecimal b1 = new BigDecimal(Double.toString(v1));
  BigDecimal b2 = new BigDecimal(Double.toString(v2));
  return b1.multiply(b2).doubleValue();
 }
 /**
  * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。
  *
  * @param v1
  *            被除数
  * @param v2
  *            除数
  * @return 两个参数的商
  */
 public static double p(double v1, double v2) {
  return p(v1, v2, DEF_DIV_SCALE);
 }
 /**
  * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。
  *
  * @param v1
  *            被除数
  * @param v2
  *            除数
  * @param scale
  *            表示表示需要精确到小数点以后几位。
  * @return 两个参数的商
  */
 public static double p(double v1, double v2, int scale) {
  if (scale < 0) {
   throw new IllegalArgumentException(
     "The scale must be a positive integer or zero");
  }
  BigDecimal b1 = new BigDecimal(Double.toString(v1));
  BigDecimal b2 = new BigDecimal(Double.toString(v2));
  return b1.pide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
 }
 /**
  * 提供精确的小数位四舍五入处理。
  *
  * @param v
  *            需要四舍五入的数字
  * @param scale
  *            小数点后保留几位
  * @return 四舍五入后的结果
  */
 public static double round(double v, int scale) {
  if (scale < 0) {
   throw new IllegalArgumentException(
     "The scale must be a positive integer or zero");
  }
  BigDecimal b = new BigDecimal(Double.toString(v));
  BigDecimal one = new BigDecimal("1");
  return b.pide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
 }
}


收起
最新阿神回答:
聚合需要统一接口,装饰器是用一个类去装饰另一个类,无需实现接口[ 查看全部 ]

聚合需要统一接口,装饰器是用一个类去装饰另一个类,无需实现接口

收起
来自 PHP
最新伊谢尔伦回答:
有些时候我们在显示一篇文章的时候,可能需要把某些关键字进行标红,高亮显示,以便我们能快速的查找和定位这些关键字,下面让我们看看具体实现的代码。<...code...>[ 查看全部 ]

有些时候我们在显示一篇文章的时候,可能需要把某些关键字进行标红,高亮显示,以便我们能快速的查找和定位这些关键字,下面让我们看看具体实现的代码。

/**
  * 关键字套红方法
  * 
  * @access public
  * @param array $options 参数数组
  *  <li> $info_arr  array  内容</li>
  *  <li> $search_arr array  关键词数组 </li>
  * @return int or array
  */
  function set_arr_keyword_red($info_arr, $search_arr)
 {
  foreach ($search_arr as $search_str)
  {
   foreach ($info_arr as $key => $info)
   {
    if(in_array($key,array('item_title','keywords', 'photo_title', 'photo_site','content',)))
    {
     $info = strip_tags($info);
     $info = str_replace(' ', ^^ `, $info);
     $q_str_pos = stripos($info, $search_str);
     if (false!==$q_str_pos)
     {
      $info = csubstr($info, $q_str_pos+150);
      $temp = csubstr($info,$q_str_pos-150);
      $info = substr($info, strlen($temp), 300);
      $info = preg_replace("/{$search_str}/i", "<font color='red'>{$search_str}</font>", $info);
 
      if($info_arr['match_key']==^^ `)
      $info_arr['match_key'] = $key;
     }
     else
     {
      $info = csubstr($info,300);
     }
    }
    $info_arr[$key] = $info;
   }
  }
  return $info_arr;
 }
 
$str = 'woloveu小君';
$info_arr = array('photo_title' => 'womejiojd我们都围殴防静低屁啊小君鸡冻啊泡脚盆大');
$search_arr = array('小君');
$ret = set_arr_keyword_red($info_arr, $search_arr);
dump($ret );


收起
首页上一页12345下一页尾页

关注我喜欢或专注的猿问分类

  • PHPPHP
  • MySQLMySQL
  • HTMLHTML
  • CSSCSS
  • JavaScriptJavaScript
  • jQueryjQuery
  • AJAXAJAX
  • JavaJava
  • GoGo
  • C++C++
  • LinuxLinux
  • Node.js?1.1.3Node.js
  • PythonPython
  • CC
  • RubyRuby
  • AndroidAndroid
  • MemcachedMemcached
  • RedisRedis
  • BootstrapBootstrap
  • JSPJSP
  • Html5Html5
  • CSS3CSS3
  • foundationfoundation
  • HTML DOMHTML DOM
  • AngularJSAngularJS
  • ReactReact
  • jQuery UIjQuery UI
  • jQuery EasyUIjQuery EasyUI
  • JSONJSON
  • HighchartsHighcharts
  • Maps APIMaps API
  • Python3Python3
  • DjangoDjango
  • DockerDocker
  • Perl Perl
  • ServletServlet
  • LuaLua
  • ScalaScala
  • 设计模式设计模式
  • 正则表达式正则表达式
  • ASPASP
  • AppMLAppML
  • VBScriptVBScript
  • SQLSQL
  • SQLiteSQLite
  • MongoDBMongoDB
  • SwiftSwift
  • jQuery MobilejQuery Mobile
  • ionicionic
  • XMLXML
  • DTDDTD
  • XML DOMXML DOM
  • XSLTXSLT
  • XPath XPath
  • XQuery XQuery
  • XLink XLink
  • XPointer XPointer
  • XML SchemaXML Schema
  • XSL-FOXSL-FO
  • SVGSVG
  • ASP.NETASP.NET
  • C#C#
  • Web PagesWeb Pages
  • RazorRazor
  • MVC MVC
  • Web FormsWeb Forms
  • Web ServicesWeb Services
  • WSDLWSDL
  • SOAPSOAP
  • RSSRSS
  • RDFRDF
  • EclipseEclipse
  • GitGit
  • FirebugFirebug
  • HTTPHTTP
  • 网站建设指南网站建设指南
  • 浏览器信息浏览器信息
  • 网站主机网站主机
  • TCP/IPTCP/IP
  • W3CW3C
  • 网站品质网站品质
  • PSPS
保存