1. 类的三种特性。
面向对象有三大特性:封装,继承,多态。
封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。
"Is-a”代表类之间或类与接口的继承关系,比如猫是动物,狗也是动物,都继承了动物的共同特性,再用OO语言实现时,应将猫和狗定义成两种类,均继承动物类。
"Has-a"代表的是对象和他成员的从属关系,同一种类的对象,通过它们的属性的不同值来区别。比如张三和李四都是人,但他们的名字不一样,可以以此区分这两个具体的人。名字应该作为人的成员变量。如果将名字叫“张三”的人和名字叫“李四”的人分别定义成两个类,均继承“人”这个类,显然是不合理的。
2. 接口,抽象类
http://zhidao.baidu.com/question/326454902.html
抽象类是从一系列相关对象中抽象出来的概念, 因此反映的是事物的内部共性;接口是为了满足外部调用而定义的一个功能约定, 因此反映的是事物的外部特性。是抽象类在跨度不大的情况下抽象,汽车与火车都是车的一种;而接口就是跨度可以很大,他们只有一点共通的属性或方法(行为),但他们压根是没什么关系的。
人、鱼、青蛙,共性较少,只能用一些零散的方法来描述共性,那么就用接口;后者共性较多,把后者的共有方法、属性归纳起来,可以大致组成一个 AbstractFish 类了,那么就用抽象类。而会游泳,作为接口,可以适用多个不同的类。
从形式上看 接口无实现方法只有方法声明 而抽象类有实现方法也有方法声明 从偶合度来说 由于抽象类 有实现的方法 所以容易紧偶合 而接口就比较好的实现了松散偶合
定义:接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。
目的:接口的主要目的是为不相关的类提供通用的处理服务,由于C#中只允许树形结构中的单继承,即一个类只能继承一个父类,所以接口是让一个类具有两个以上基类的唯一方式
http://dengzebo.blog.163.com/blog/static/18867406200851855613618/
抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。这些听起来有些虚,举个例子。例如,狗是对于所有狗类动物的统称,京哈是狗,牧羊犬是狗,那么狗的一般特性,都会在京哈,牧羊犬中找到,那么狗相对于京哈和牧羊犬来说,就属于这类事物的抽象类型;而对于“叫”这个动作来说,狗可以叫,鸟也可以叫。很明显,前者相当于所说的是抽象类,而后者指的就是接口。
,人有美国人,中国人等之分,但有一样东西就是他们都是人。因而我们可以抽象出一个叫人的类来表示了哈。人会走,畜生会走。。(你不会想和畜生同类吧= =),然后畜生和人都想要走路,他们就要实现一个move的接口。
重要:http://apps.hi.baidu.com/share/detail/6027657
3. 排序。
4. Dateset 和SQL datereder 区别以及各自用法。
DataReader类的理想条件: 你读取的数据必须是新的,所以在每次需要数据的时候,你都必须从数据库读取。创建一个DataReader类不会消耗很多内存,不过随着负荷的增加,DataSet上的性能也会很快地提高。
使DataSet类更强大的许多功能只适用于基于客户端的Windows Form应用程序,比如在多个表之间建立关系的功能。应该考虑运用DataSet类: 你构建了一个Web service,它运用的数据是你作为返回值读取的数据。因为DataReader类必须保持到数据库的连接,所以它们不能被序列化到XML中,也不能被发送给一个Web service的调用者。你需要对一个结果集的每个元素实现特殊的、耗时的功能。例如,如果你从一个数据库读取一列邮政编码,并想通过调用一个Web service来得到每个地区的详细的天气状况信息,那么选择DataSet就会更好。这是因为,当你在用DataReader类时,在关闭DataReader类前,与数据库的连接不会被释放回连接池。在数千页面请求之间潜在的一个很小的延时都会造成Web应用程序的很高的访问量,从而就会消耗完可用的连接。相反,DataSet可以在前端读取所有的数据,并可以马上关闭与数据库的连接,将它返回到连接池,因此其它的页面请求就可以用这个连接了。
http://www.cnblogs.com/wanderer/articles/1457792.html
5. 线程的含义,线程中的strat和把起放入进程池有什么区别。
进程是对一段静态指令序列的动态执行过程。一个进程可以划分为若干独立的执行流,这些独立的执行流成为线程。
6. 装箱,坼箱各自的含义。
值类型转换成引用类型为装箱,反过来就是拆箱
装箱和拆箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。这使得值类型可以存储于垃圾回收堆中。拆箱将从对象中提取值类型。
7. web user control 和 cusrom control 区别和含义
Web 用户控件 Web 自定义控件
易于创建 难于创建
为使用可视化设计工具的使用者提供有限的支持 为使用者提供完全的可视化设计工具支持
每个应用程序中需要控件的一个单独副本 仅在全局程序集缓存中需要控件的单个副本
不能添加到 Visual Studio 中的工具箱 可以添加到 Visual Studio 中的工具箱
适用于静态布局 适用于动态布局
继承于 UserControl,以ascx为后缀名 CustomControl继承自Control
8. cookie application session viovstate 各种页面传值方式的用法。
HttpCookie cName = new HttpCookie("Name");
cName.Value = txtName.Text;
Response.Cookies.Add(cName);
if (Request.Cookies["Name"] != null )
Request.Cookies["Name"].Value;
ASP.NET页面传值汇总 (Session / Server.Transfer / Query String / Cookie / Application )
9. 如何给服务器端控件增加客户端脚本。
this.button.attribute.add("onclick","alert('a')");
this.button.attribute.add("onclick","alert('a')");
12点多到达,先是笔试,45分钟的题目,我也是用了差不多1个小时做完,出了一些技术的基础,最后一道是智力题,马马虎虎。然后人力资源1v1面谈,差不多有1个小时,人比较好的,可惜后来走了,据说是业绩不达标,呵呵。然后是部门经理,问了一下以前的工作经验等。然后是总监,也是随便问了几个以前工作中处理一些难题的方法。就这样,到了6点,直接出offer。