代码改变世界

父类引用f指向其子类的对象的理解

2013-05-22 15:03 by kellweke, 148 阅读, 0 推荐, 收藏, 编辑
摘要:当父类引用f指向其子类的对象的时候,通过f无法访问专属于子类对象的成员。为什么这样不可以?LZ有没有想过,因为f是FatherClass,所以编译器只知道f拥有FatherClass.class的信息,FatherClass.class以外的信息,编译器不知道,而子类的对象成员是在SonClass.class里,也就是说在FatherClass.class以外,所以f无法访问子类的对象成员假如子类中有对父类方法的重写,那么根据多态机制,通过f访问这个方法的时候实际访问的是子类中重写的方法。为什么这样可以?上面说了,f只能访问FatherClass.class的信息(注意这里指的是编译期编译器只 阅读全文

ThreadPool.QueueUserWorkItem的性能问题

2013-05-11 15:08 by kellweke, 227 阅读, 0 推荐, 收藏, 编辑
摘要:在WEB开发中,为了减少页面等待时间提高用户体验,我们往往会把一些浪费时间的操作放到新线程中在后台运行。简单的实现代码就是://代码一 new Thread(()=>{ //do something }).Start(); 但是对于一个请求量大的网址这样做是很不现实的——每一个操作都要开启一个新线程,最终会因CPU不堪重负而使网站挂掉。更好的做法是使用线程队列。对于线程队列 ThreadPool.QueueUserWorkItem 很多人应该都不陌生,下边看微软的解释:将方法排入队列以便执行,并指定包含该方法所用数据的对象。此方法在有线程池线程变得可用时执行。它的作用就是将一些操作... 阅读全文

用存储过程代替 SQL IN的写法

2013-04-18 16:54 by kellweke, 190 阅读, 0 推荐, 收藏, 编辑
摘要:select count(*) from [Users] where address in ('北京','广州')creat procedure count_user as begin declare @a int declare @b int select @a=count(1) from [Users] where address ='北京' select @b=count(1) from [Users] where address='广州' select tatal=@a+@b end 阅读全文

产品经理的职责

2013-04-18 16:50 by kellweke, 195 阅读, 0 推荐, 收藏, 编辑
摘要:产品经理的职责–产品管理和产品营销的定义在我从事高科技产业11年里,经历的最难清晰界定的职业是“产品经理”(另一个说法是“产品营销经理”)。产品经理的职责在高科技产业的不同领域差异非常大,即便是在同一领域的不同公司也是如此。本文尝试通过总结产品经理的主要责任,来揭示他们的职责。但首先,是一个有趣的故事:这就是你的定义大约一年前,我采访一家在“人力资源”领域做软件开发的初创公司,让我们暂且称他们为史酷比有限公司,他们正寻找一位能帮助他们建立产品管理团队的人。公司的两位创始人分别是CTO和工程部VP,几个星期前,他们刚从两家硅谷的风投那里,融到了一千万美金。我准时到达了史酷比公司指定的办公地点,首 阅读全文

select count(*)和select count(1)的区别

2013-04-15 14:50 by kellweke, 242 阅读, 0 推荐, 收藏, 编辑
摘要:一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的假如表沒有主键(Primary key), 那么count(1)比count(*)快,如果有主键的話,那主键作为count的条件时候count(主键)最快如果你的表只有一个字段的话那count(*)就是最快的count(*) 跟 count(1) 的结果一样,都包括对NULL的统计,而count(column) 是不包括NULL的统计1、select 1 与 select *的区别 selelct 常量 from ... 对应所有行,返回的永远只有一个值,即常量。所以正常只会用来判断是否有还是没有( 阅读全文