最近都在忙什么

换了新的工作,这段时间也算稳定了。
不是很有技术含量但是不影响业余生活,那就足够了。

元旦过后考试就迫在眉睫了,算法和面向对象。
硬编码的阶段已经完成,补充设计模式和文档的过程当中。

阿舅的网站,还有答应mozsam的脑图也会在考试之后开工。
最有趣的是,昨天跨年的时候我在背单词,2012年一定要把英文这关过了。

仅以此文作为2012年的简单愿景,勉励之。

PS:www.shanbay.com 很不错的背单词网站,有能力我们也搞个日文的。

2011-09-14

在这个公司上班的时间,已经进入倒计时了。
看着自己熟悉的种种,还是有很多感触的。
毕竟这里是离开学校以后第一个接触的公司。
而且有很多同学兼同事的帮忙。

但人总是要进步的。
虽然前途未必平坦,但有一颗年轻,敢于面对的心。就也不怎么在乎了。
在这里,只希望自己能尽快适应新环境,融入大家。
早一点步入正轨。

开启职业生涯的新篇章。

遇到的和没遇到的面试题

Readonly 和 Const 的区别
一:概念
const 关键字用于定义常量。它在赋初始值后不能被修改。常量字段是隐式静态的。不允许在常数声明中使用 static 修饰符。
readonly 关键字是只读字段数据。和常量相似,不能在赋初始值后改变。和常量不同的是只读字段可以在运行时决定,因此在构造函数作用域中进行赋值时合法的(其他地方不行)。
static readonly 静态只读字段,只读字段不是隐式静态的,所以要在类级别公开,就必须显式使用static关键字。
二:区别
1.const是一个包含不能修改的值的变量,是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。
如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的。readonly是在运行时执行的,因此能从一个变量中提取的值来初始化常量。
2.const只能被声明为简单的数据类型(内建的int和浮点型)、枚举或字符串,不能用new关键字初始化一个静态常量,即便是对一个值类型来说。 readonly 可以是任意的数据类型。
//这样是错误的
public const DateTime myDateTime = new DateTime(2006,9,1,0,0,0);
//这样是可以的
public static readonly DateTime myDateTime = new DateTime(2006,9,1,0,0,0);
总结:const外部不能对其赋值,而readonly外部可以(只能在构造函数中)对其赋值。
===============================================================
Static
区别

Static什么地方用到
static三种用法:
1.用于变量前,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数:
private void s()
{
static int a=1;
a++;
}
方法第一次调用结束后a在内存内值为2;
方法第一次调用结束后a在内存内值为3;
2.在方法(函数)前用static修饰,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法:
情况一:非静态方法:
class t
{
t(….(参数,下面同))
{
~~~~(方法内容,下面同)
}
void s(….)
{
~~~~
}
}
当你在其他方法里调用这个类中的方法s,则需先声明这个类的变量如:t sd = new t(….);
再在t里调用方法:sd.s(….);
情况2:静态方法:
class t
{
t(….(参数,下面同))
{
~~~~(方法内容,下面同)
}
static void s(….)
{
~~~~
}
}
当你在其他方法里调用这个类中的方法s,则不用先声明这个类的变量如直接调用方法:t.s(….);
3.用于class前,说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为静态类:
static class t
{
~~~~
}
~~~~
class d
{
~~~~
void f(….)
{
~~~~
t v = new t();//此时程序会出现错误
}
}
===============================================================

操作数据集

哈希表
一,哈希表(Hashtable)简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.
二,哈希表的简单操作
在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value);
在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:
using System;
using System.Collections; file使用Hashtable时,必须引入这个命名空间
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable(); file创建一个Hashtable实例
ht.Add(E,e);添加keyvalue键值对
ht.Add(A,a);
ht.Add(C,c);
ht.Add(B,b);
string s=(string)ht[A];
if(ht.Contains(E)) file判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine(the E keyexist);
ht.Remove(C);移除一个keyvalue键值对
Console.WriteLine(ht[A]);此处输出a
ht.Clear();移除所有元素
Console.WriteLine(ht[A]); file此处将不会有任何输出
}
}
三,遍历哈希表
遍历哈希表需要用到DictionaryEntry Object,代码如下:
for(DictionaryEntry de in ht) fileht为一个Hashtable实例
{
Console.WriteLine(de.Key);de.Key对应于keyvalue键值对key
Console.WriteLine(de.Value);de.Key对应于keyvalue键值对value
}
四,对哈希表进行排序
对哈希表进行排序在这里的定义是对keyvalue键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
ArrayList akeys=new ArrayList(ht.Keys); file别忘了导入System.Collections
akeys.Sort(); file按字母顺序进行排序
for(string skey in akeys)
{
Console.Write(skey + );
Console.WriteLine(ht[skey]);排序后输出
}

===============================================================

抽象类和接口的区别
什么地方会用到

===============================================================
Application 全局的变量
session
cookis
server.transfrom

===============================================================
重写和重载

以上这些问题感觉经常会问道。

一面的时候有些题目没搞懂,别留疑点
XML,
面向对象的三大特征,
构造函数,
死锁的代码题,
子类父类间构造函数和方法调用的顺序,
asp.net隐藏文件,
HTML代码错误时需要跳转到自定义页面,
事务的概念,
范式和函数依赖关系

二面
首先自我介绍,然后进入正题
你现在的工作单位,用到一些什么技术,大概设计模式是什么?
做过什么项目,用了哪些技术?
学习了哪些课程?
你做的最成功和最失败的项目是什么?
你3年后想做什么?
你认为软件开发的流程是怎么样的?
你认为一个项目失败有什么原因造成?
你认为中国的软件行业是怎么样的?
当你和你的组长发生冲突时怎么解决?
你设想的工作环境是怎么样的?
用三个词来形容你自己?
别人对你的工作的看法是如何的?

2011-08-09

明天是关键性的一天了。
很多东西实现与否可能就看明天的表现了。
就好比桌球里的最后一个黑8。

尽自己百分百的努力,去换一次机会。
加油~