涉猎JAVA WEB之servlet、jsp

目前的我用到的大前端载体还是asp.net mvc,可能以后会用java web相关的技术来呈现,或者nodejs。所以最近开始花一部分时间学习下servlet,jsp等技术,这些相关的文章,我自觉不自觉会拿.NET来对比,也许可以让.NET程序员来更容易理解JAVA WEB。我的方向是大前端,以前端为主深入学习,相关后端技术(JAVA等)涉猎为主。 继续阅读“涉猎JAVA WEB之servlet、jsp”

Attribute和Property

有时很容易对Attribute和Property混淆,因为中文翻译都是“属性”来解释的。其实这两个表达的不是一个层面的东西。

Property属于面向对象理论范畴,在使用面向对象思想编程的时候,常常需要对客观事物进行抽象,再把抽象出来的结果封装成类,类中用来表示事物状态的成员就是Property译为“属性”。比如要写一个模拟赛车的游戏。现实的汽车会有很多的数据:长度,宽度,高度,重量,速度等有几个数据。同时,还会把汽车“加速”,“减速”等

继续阅读“Attribute和Property”

使用委托异步执行遭遇多个请求时抛异常

1.最近做的一个小功能是将请求拦截并记录日志,因为要尽可能减少对请求的响应时间,所以自然选择异步执行,我使用的是IAsyncResult模式。到了prd产品测试环境,因为同时有多个请求,所以暴露了一个问题。

继续阅读“使用委托异步执行遭遇多个请求时抛异常”

浅复制(Shallow Copy)与深复制(Deep Copy)

复制:对象的复制是生成一个与指定对象完全一样的新对象,实现的方式根据定义可以知道,新建一个类型相同的对象,然后复制原对象的每一个成员和字段。

浅复制:

 class Program
 {
 static void Main(string[] args)
 {
 ClassA A = new ClassA();
 CloneObj clone = new CloneObj();
 ClassA newA= clone.CloneA(A);
 }
 }

 public class ClassA
 {
 public Int32 AValue = 100;
 }

 public class ClassB
 {
 public Int32 BValue = 200;
 }

 public class CloneObj
 {
 public ClassA CloneA(ClassA obj)
 {
 ClassA newAobj = new ClassA();
 newAobj.AValue = obj.AValue;
 return newAobj;
 }
 }

继续阅读“浅复制(Shallow Copy)与深复制(Deep Copy)”

方法重写,隐藏在子类父类中的各种调用实践

一.子类和父类方法之间的关系

1.当子类和父类有方法完全相同的方法

namespace ConsoleApplication2
{
 class Program
 {
 static void Main(string[] args)
 {
 B b = new B();
 A a = new A();
 A c = new B();
 b.Show();
 a.Show();
 c.Show();
 Console.Read();
 }
 }

 public class A
 {
 public void Show()
 {
 Console.WriteLine("执行A的Show方法");
 }

 }

 public class B : A
 {
 public void Show()
 {
 Console.WriteLine("执行B的Show方法");
 }
 }
}

这里先给出运行的结果:

继续阅读“方法重写,隐藏在子类父类中的各种调用实践”

C#事件

定义一个事件成员,表示该类型提供了如下功能:

1.能够在事件中注册方法   2.能够在事件中注销方法   3.当事件发生时,注册的方法会被通知

(事件内部维护了一个注册方法列表)

CLR的事件模型是基于委托的,它可以通过类型安全的方式调用回调方法。而回调方法是订阅事件的对象接收通知的方式。通过一个例子来说明:

继续阅读“C#事件”