北京末公司面试题
1:xhtml 和 html 的区别?
答:
- 在HTML里一些元素可以不正确嵌套也能正常显示,而在XHTML必须要正确嵌套之后才能正常使用。
- XHTML 文件一定要有正确的组织格式。XML 对大小写是敏感的
- 所有的 XHTML 元素一定要关闭,独立的一个标签我们也要结束用 />来结束。
2:do get 和 do post 区别?
答:get是从服务器上获取数据,post是向服务器传送数据。
3:using 关键字的用法?
答:
- 直接引入命名空间 using System ,这个是最常用的,就是using+命名空间
- 使用全限定名 直接在程序中调用System.Console.WriteLine("Hello C#");
- using别名。using + 别名 = 包括详细命名空间信息的具体的类型。 using Zip=System.IO.Compression;
- using语句,定义一个范围,在范围结束时处理对象。如: using (Class1 cls1 = new Class1(), cls2 = new Class1())
{
// the code using cls1, cls2
} // call the Dispose on cls1 and cls2
4:GC的含义,作用?
答:负责自动释放托管资源和内存回收的工作。
5:interface , abstract class 的区别?
答:
1. 相同及联系A. 两者都是抽象类,都不能实例化。B. interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法。2. 不同A. interface需要实现,要用implements,而abstract class需要继承,要用extends。B. 一个类可以实现多个interface,但一个类只能继承一个abstract class。C. interface强调特定功能的实现,而abstract class强调所属关系。D. 尽管interface实现类及abstrct class的子类都必须要实现相应的抽象方法,但实现的形式不同。3. interface的应用场合A. 类与类之前需要特定的接口进行协调,而不在乎其如何实现。B. 作为能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯粹标识。C. 需要将一组类视为单一的类,而调用者只通过接口来与这组类发生联系。D. 需要实现特定的多项功能,而这些功能之间可能完全没有任何联系。4. abstract class的应用场合一句话,在既需要统一的接口,又需要实例变量或缺省的方法的情况下,就可以使用它。最常见的有:A. 定义了一组接口,但又不想强迫每个实现类都必须实现所有的接口。可以用abstract class定义一组方法体,甚至可以是空方法体,然后由子类选择自己所感兴趣的方法来覆盖。B. 某些场合下,只靠纯粹的接口不能满足类与类之间的协调,还必需类中表示状态的变量来区别不同的关系。abstract的中介作用可以很好地满足这一点。C. 规范了一组相互协调的方法,其中一些方法是共同的,与状态无关的,可以共享的,无需子类分别实现;而另一些方法却需要各个子类根据自己特定的状态来实现特定的功能。
6: 有这样一段文本 写一个正则表达式匹配所有连接的href属性里的字符串 文本如下:
正则表达式30分钟入门教程 http://deerchao.net/tutorials/regex/regex.htm
网站分类:<br/>
<a href="http://www.a.com/cate/jqery/">jQuery</a>
<a href="http://www.b.com/cate/win7/">Windows 7</a>
<a href="http://www.a.com/cate/agile/">敏捷开发</a>
<a href="http://www.a.com/cate/sqlserver/">SQL Server</a>
</div>
答: http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
7:请写一个函数:找出两个字符串中最长的相同子串,比如字符串 “ likeyou ” 和 “ lookyou ” , 最长的相同子串是 “ you ”
答:正则表达式实现
{
string p1 = "likeyou";
string p2 = "Lookyou";
string p = "";
string test = "";
//获取短的一个字符串
if (p1.Length > p2.Length)
{
p = p2;
test = p1;
}
else
{
p = p1;
test = p2;
}
StringBuilder builder = new StringBuilder();
for (int i = 0; i < p.Length - 1; i++)
{
builder.AppendFormat("({0}?(?={1}))?", Regex.Escape(p.Substring(i, 1)), Regex.Escape(p.Substring(i + 1, 1)));
}
builder.Append(Regex.Escape(p.Substring(p.Length - 1)) + "?");
MatchCollection mc = Regex.Matches(test,builder.ToString());
Console.WriteLine(mc.Cast<Match>().OrderBy(m => m.Length).ToList().Last().Value);
}
KMP算法C# 版 http://www.cnblogs.com/zhy2002/archive/2008/03/31/1131794.html
8:用javascript 定义一个 “ 人 ” 类 (人有名字,年龄,性别,会吃饭,睡觉)。
答:js经典收藏 http://www.cnblogs.com/Dragon-China/archive/2006/11/17/563399.html
this.show = function()
{
alert("ShapeBase show");
};
this.init = function(){
alert("ShapeBase init");
};
}
9:实现2个设计模式( 单例,简单工厂除外 ),并说明他们的使用场合。