1、使用 as 而不要用 is】的更多相关文章

——reference Java is Pass by Value and Not Pass by Reference 其实这个问题是一个非常初级的问题,相关的概念初学者早已掌握,但是时间长了还是容易混淆,特此总结一下 一.值传递和引用传递 首先这里我们先看下两者的异同: 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值. 引用传递:也称为传地址.方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中…
校对:伯乐在线 - 黄利民 链接: 1. Why do most of the developers in Silicon Valley prefer OS X over Linux or Windows? 2. Mike Mikowski's anwser 3. Garry Taylor's anwser 4. Ivan Appel's anwser 5. 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows? Why do most of the developers…
C#中有两种类型的常量:编译期常量和运行时常量.二者有着截然不同的行为,使用不当将会带来性能上或正确性上的问题. 这两个问题最好都不要发生,不过若难以同时避免的话,那么一个略微慢一些但能保证正确的程序则要好过一个快速但不能正常工作的程序. 考虑到这些,你应该尽量使用运行时常量,而不是编译期常量. 虽然编译期常量略微快一些,但是却没有运行时常量那么灵活.应紧紧在那些性能异常敏感,且常量的值在各个版本之间绝对不会变化时,再使用编译期常量. 运行时常量使用readonly关键字声明,编译期常量则使用c…
翻译自:https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/ 昨天在虚拟机里面安装ubuntu server ,然后配置php开发环境,参考了这篇文章,一次性把所有的东西都安装配置好了,所以想把这篇文章记录下来.希望能够帮助到初学者一次性搞定这些配置(避免纠结),然后就可以愉快地编程了,嘿嘿. 以下是我翻译的内容,完全对照原文,没有自己改动的部分(因为原文已经很完美了…
在做界面程序时,常常需要一些数据类,界面元素通过绑定等方式显示出数据,然而由于UI线程不是线程安全的,一般都需要通过Invoke等方式来调用界面控件.但对于数据绑定bindingList而言,没法响应listchang事件,导致后端的grid等控件不能更新数据.废了好大的劲终于找到一个UIBindingList,实现线程数据的同步! using System; using System.ComponentModel; using System.Threading; using System.Wi…
本文搬运自:Advantages of using Binder for IPC in Android 使用Binder而不是其他(Semaphores , Message Queue, PIPES)作为IPC通信机制的理由: 所有基于文件系统IPC通信机制( 尤其pipes),由于缺少一个可以被所有程序读写的地方,这个地方用来让所有的进程可以mkfifo/create 基于文件系统/socket形式的IPC端口.( 尽管可以使用/dev/socket,但它只能被系统进程,比如rile, zyg…
让我写这篇博客主要前段时间dudu写了一篇关于Google Gmail年龄限制问题,导致博客园管理员Gmail账号会被删除,里面的邮件无法迁移出来.围观地址:http://www.cnblogs.com/dudu/p/3406282.html 说明:此处的Outlook不是我们电脑上的Outlook客户端,而是微软推出的在线邮件系统.地址是:http://www.outlook.com Google的大多数产品都是很优秀的,特别在技术人员眼中,Google的产品就是为了解放技术人员的.所以大多数…
前言 本文翻译自 Why Moving Elements With Translate() Is Better Than Pos:abs Top/left,本文有改动,添加了一些作者自己的理解,不当之处还请看客指出. 翻译正文 目前我们对文档中的某个元素进行移动有两种方式, 1,使用transform提供的translate族函数进行缓动 2,对元素进行绝对定位,在制定时间内改变top/left值 但是,这两种方式有什么区别呢? 长话短说,作者在通过模拟测试,并在chrome上检测了动画的FPS…
  当你用EF6创建一个新项目,不知你是否注意到默认的连接字符串使用了LocalDb而不是SQLServer.但你如果想把默认连接改用SQLSErver而不是LocalDb.这个其实很简单:只需修改下配置文件(App.config 或者web.config)      默认LocalDb 的配置 <entityFramework> <defaultConnectionFactorytype="System.Data.Entity.Infrastructure.LocalDbCo…
Kafka最核心的思想是使用磁盘,而不是使用内存,可能所有人都会认为,内存的速度一定比磁盘快,我也不例外.在看了Kafka的设计思想,查阅了相应资料再加上自己的测试后,发现磁盘的顺序读写速度和内存持平. 而且Linux对于磁盘的读写优化也比较多,包括read-ahead和write-behind,磁盘缓存等.如果在内存做这些操作的时候,一个是Java对象的内存开销很大,另一个是随着堆内存数据的增多,JAVA的GC时间会变得很长,使用磁盘操作有以下几个好处: 磁盘缓存由Linux系统维护,减少了程…
--更新字段为随机时间 86400秒=1天 UPDATE dl_robot ), ,GETDATE()) )   SQL存在一个表而不在另一个表中的数据   方法一 使用 not in ,容易理解,效率低   select distinct A.ID from  A where A.ID not in (select ID from B)   www.2cto.com   方法二 使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为…
时代的变迁,创业的大潮,越来越多的人关注了有点开发,越来越多的人了解了互联网服务术语:PaaS.IaaS.SaaS.BaaS等.今天大家在开发App的时候这么多复杂的云服务如何来选择呢? IaaS服务商 大家提起马上能想到的一定就是“阿里云”.“腾讯云”.“微软Azure”.“AWS”.这些都是IaaS基础云服务.这些基础云服务对你的移动App项目落地很重要,但是选择并不困难,因为选择IaaS服务商的过程更像在服务器时代的服务器,你会选择购买某一个品牌的服务器硬件. PaaS服务商,就像以前找牛…
最近在做一个打砖块游戏时遇到一个小问题,就是小球有可能会在左右两个边界之间做循环往返运动而导致游戏无法继续进行下去,于是我打算让小球在垂直撞向边界时改变一下方向,但是速度不变,尝试了一些方法但是没有达到效果.后来想到,速度是一个向量,问题就变成了改变一个向量的方向而不改变它的大小,Google一下找到了这个旋转矩阵Wiki页面.虽然游戏是3D的但是只是在一个平面上运动,所以只需要下面这个旋转矩阵 用原向量矩阵[x,y]乘以旋转矩阵矩阵外积,左行乘右列代码如下 /// <summary> ///…
二分法的算法中,我们看到一些代码里取中间值: MID=l+(r-l)/2; 为什么是这个呢?不就是(l+r)/2吗?为什么要多此一举呢? 其实还是有不一样的,看看他们的区别吧: l,r是指针的时候只能用 l+(r-l)/2 当l=-200,r=-99时(l+r)/2=-149l+(r-l)/2 =-150 (l+r)/2可能溢出,l+(r-l)/2 而不会 注意:如果/2写成>>1的话,要括号!!!MID=l+((r-l)>>1);不然就错了,>>的优先级别比较低.…
不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因为什么原因呢?本文就来为你回答这个问题. 无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进.不过尽管难以一一细数,这里还是列举部分理由为什么选择logback而不是log4j.牢记logback与log4j在概念上面是很相似的,它们都是有同一群开发者建立.所以如果你已经对lo…
http://my.oschina.net/mopidick/blog/277813 目录[-] 一.已知的 kill 后台应用程序的方法 方法: kill -9 pid 二.终极方法,杀死后台service而不自启动: am (Activity Manager)命令 一.已知的 kill 后台应用程序的方法 android.os.Process.killProcess(pid); activityManager.killBackgroundProcesses(pkgName); kill -9…
打开http://xx.xx.xx.xx:端口号/Service1.svc页面显示的服务地址为: http://xx_yy_server:端口号/Service1.svc?wsdl 是显示的服务器的名称而不是IP地址... 原文地址:http://blog.csdn.net/cjq1234/article/details/8816921 <!--加上这个配置就可以了--> <serviceHostingEnvironment aspNetCompatibilityEnabled=&quo…
- jQuery自诞生以来,版本越来越多,而且jQuery官网的新版本还在不断的更新和发布中,现已经达到了1.6.4版本,但是我们在以前的项目中就已经使用了旧版本的jQuery,比如已经出现的:1.3.X.1.4.X.1.5.X.1.6.2等等. 由于项目的需要,必然也需要不断的使用较新版的jQuery,但对于原来就已经存在并已经采用了的旧jQuery版本,我们如何让多个不同的jQuery版本在同一个页面并存而不冲突呢? 其实,利用jQuery.noConflict()特性,我们不仅可以让jQu…
该功能主要用于业务系统中的登录操作,登录后弹出全屏的业务系统主界面,而不需要工具栏.地址栏.菜单等功能. 之前针对不同浏览器找了无数种方法,包括网上能查到的所有方法,弹出的结果都不理想.结果有的IE6,7,8支持但是IE11不支持,有些火狐支持,chrome不支持. 最后找了很久才找到这个方法:经过测试IE6.IE7.IE8.IE11,Chrome都很理想.唯一360浏览器弹出了新窗口后还是会新建一个空白窗口,太奇葩了. 代码如下: var strStyle = 'height='+screen…
现象 经常在网上或者阅读源码时看到下面的代码: Array.prototype.slice.call(arr, 3); 而不是 arr.slice(3); 原因 这是为什么呢, 毕竟下面这种方法更短, 代码看起来也更清晰. 因为使用prototype.fn.call这种方式可以更好的复用代码, 下面这个例子: var divs = document.getElementsByTagName('div'); var first_three_div = divs.slice(3) // TypeEr…
在浏览器页面有时看到sass文件而不是css文件问题,其主要由于sass开启了source-map(调试)功能,问题如下图: sass调试 sass调试需要开启编译时输出调试信息和浏览器调试功能,两者缺一不可. 开启编译调试信息 目前sass的调试分为两种,一种为开启debug-info,一种为开启sourcemap(这个将成为主流). 如开启的是debug-info,则解析的css文件中会有以@media -sass-debug-info开头的代码,如没有则表明没有开启. 如开启的是sourc…
最近沉迷于SIP通讯,网内通讯全免费,落地也就几分钱,而且无漫游全国拨打,想想真是心动呢,只要有网落就ok!. 对于sipserver,现在的市场上软件很多,免费的.收费的应有尽有,这里不一一例举.综合对比了一下我还是选择了MiniSipServer. 原因如下: 1.自己目前已经有一台云服务器是Windows 2012 R2版本 X64, 而市面上大部分Sipserver都是基于Linux下的,苦于本人对Linux不熟悉,所以pass掉一部分SipServer,MiniSipServer是基于…
为了解决这题,可以具体看看下面这个讨论. 解灵运工程师 185 人赞同 某次架构师大会上那个58同城做即时通信的人说:原因是因为当时没有epoll这种可以支持成千上万tcp并发连接的技术,所以他们使用了udp,然后在udp上面封装了一下,模拟了一下tcp,解决了大并发的问题,之后因为做的很nb了,虽然epoll这种技术出现了,还是没有改回使用tcp了.现在再做类似的东西就不需要使用udp了.这个说法应该比较可信的. 发布于 2014-04-16 18 条评论 感谢 分享 收藏 • 没有帮助 • …
yum本身自带了两个选项, 用来只下载要安装的rpm包, 而并不实际安装包: yum --downloadonly --downloaddir=/root/Desktop  rpm-name1 rpm-name2.. rpm -l --list 可以列出已经安装的rpm中的具体文件以及它们被安装到哪些位置?  这个-l 一定要和-q组合起来使用?! 还要把/etc/yum.conf中的keepcache改成1,默认是0即安装后不保存包头和软件包 cpio是什归档软件?   是rpm打包的基础,…
函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式传递给eval函数以达到同样的功能.程序员面临一个选择:应该将代码表示为函数还是字符串?毫无疑问,应该将代码表示为函数.字符串表示代码不够灵活的一个重要原因是:它们不是闭包. 闭包回顾 看下面这个图 js的函数值包含了比调用它们时执行所需要的代码还要多的信息.而且js函数值还在内部存储它们可能会引用…
ES5引入Object.getPrototypeOf函数作为获取对象原型的标准API,但由于之前的很多js引擎使用了一个特殊的__proto__属性来达到相同的目的.但有些浏览器并不支持这个__proto__属性,所以并不是完全兼容的.例如对于拥有null原型的对象,不同的环境结果就不同了. var empty=Object.create(null); '__proto__' in empty;//一些环境会返回false,另一些会返回true 这就导致结果的不一致,从而影响到依赖这个判断的相关…
对象属性无序性 js对象是一个无序属性集合. var obj={}; obj.a=10; obj.b=30; 属性a和属性b并没有谁前谁后之说.for...in循环,先输出哪个属性都有可能.获取和设置不同的属性与顺序无关,都会以大致相同的效率产生相同的结果.也就是说访问属性a和访问属性b,没有哪个访问更快之说.ES标准并未规定属性存储的任何特定顺序,甚至于枚举对象也未涉及.for...in循环会挑选一定的顺序来枚举对象的属性,标准允许js引擎自由选择一个顺序,它们的选择会微妙地改变程序行为.如要…
示例 下面代码中mean的输出值是多少? var scores=[98,74,85,77,93,100,89]; var total=0; for(var score in scores){ total+=score; } var mean=total/scores.length; mean;//? 17636.571428571428 用计算器手动算了一下,答案应该是88.说明这段代码的真正结果应该是88,但为什么实际结果不正确呢.这和for...in循环会枚举所有key,包括原型中的.也就是…
为什么是List list = new ArrayList(),而不直接用ArrayList? 编程是要面向对象编程,针对抽象(接口),而非具体.List 是接口,ArrayList是实现. 实现List接口的有ArrayList.LinkedList.Vector等,所以用哪个就直接new 一个接口实现 这是一种很好的设计模式.一个接口有多种实现,这种写法是java面向对象的一种思想,依赖倒置原则,即依赖于抽象不依赖于实现(具体). 给调用者提供的应该是接口或者抽象类,而实现者可以实现或者继承…
反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性.字段),而不去使用Invoke方法)   创建Delegate (1).Delegate.CreateDelegate(Type, MethodInfo) : 创建指定类型的静态方法,      1.Type(委托类型)     2.MethodInfo(要创建的静态方法的信息,通过类的type.GetMethod( funcName , BindingFlags.IgnoreCase | BindingFlags.Static…