共 19 页: 首页 上一页 6 7 8 9 10 11 12 13 14 下一页 末页
摘要:在函数对象中,将局部变量这一环境封闭起来的结构就被成为闭包。与闭包相关的两个要点分别是:作用域(Scope)和生存周期(Extent),作用域值得是变量的有效范围,即某个变量可以被访问的范围。而生存周期就是变量的寿命,它值得是一个变量可以在多长的周期范围内存在并能够被访问。闭包是优雅的,带来代码格局的函数式体验;但是,闭包也是复杂的,带来潜在的某些问题。TA就像一把双刃剑,用好闭包的关键,在于深入地理解闭包,即在于挥剑人自己。 阅读全文
posted @ 2015-10-16 01:15 EdisonZhou 阅读 (1696) 评论 (5) 编辑
摘要:dotNetCLR最终执行的只有本地的Native Code,所以JIT编译的作用在运行时将IL代码解析为机器码执行。首先,IL是基于栈执行的,执行方法调用时,方法参数、局部变量还有返回值等被分配在栈上,并执行其调用过程,既然是关注JIT编译,我们自然来关注一下方法的执行,因为JIT编译时以执行方法调用而触发的。 阅读全文
posted @ 2015-10-10 00:59 EdisonZhou 阅读 (1642) 评论 (3) 编辑
摘要:在现实世界中,无论内存容量有多大,总归是有限的。实际上,随着内存容量的增加,软件的内存开销也在以同样的速率增加。因此,计算机系统会通过“双重”幻觉,让我们以为内存是无限的。第一重是垃圾回收(GC)机制,第二重则是操作系统提供的虚拟内存。本篇笔记讲会介绍这两种幻觉,跟随Ruby之父松本行弘来探寻内存管理的世界。 阅读全文
posted @ 2015-10-07 17:31 EdisonZhou 阅读 (2002) 评论 (1) 编辑
摘要:Dapper是一个开源轻的量级的ORM,只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器。与那些功能完备的ORM(如NHibernate或Entity Framework)不同的是,PetaPoco更注重易用性和性能,而非丰富的功能。 阅读全文
posted @ 2015-10-04 00:50 EdisonZhou 阅读 (5481) 评论 (2) 编辑
摘要:dotNet从项目的实践中我们可以发现很多人将目光和焦点集中在如何理解IL代码这个问题之上,我们的思路慢慢地从应用向底层发生着转变,技巧性的东西是一个方面的积累,底层的探索也是必不可少的修炼。了解和认识IL代码,对于我们更深刻地理解.NET和.NET应用之上的本质大有裨益,这里就跟随《你必须知道的.NET》从一个简单的Hello World初步了解一下IL代码。 阅读全文
posted @ 2015-10-03 15:48 EdisonZhou 阅读 (1143) 评论 (0) 编辑
摘要:book最近一个月,在多看阅读平台购买了许开祯的这两本小说,每天在赶公交的时候在车上看看。为什么要选择官场小说看呢?因为我的小姨推荐的,让我看看这类小说学学里面的人物做人做事,提高一下情商。我就当作每天公交时刻打发时间,没想到情节这么跌宕起伏,就看了一部电视剧似得,酣畅淋漓,也从书中主角那里学到一些东西,我相信这些东西在天朝是有用的。 阅读全文
posted @ 2015-10-02 23:52 EdisonZhou 阅读 (1296) 评论 (1) 编辑
摘要:Web Service是一种网络服务,通过通用的规范,Web Service技术允许使用者访问网络上每一个Web Service所提供的服务。在网络快速发展的时代,这种基于网络的分布式服务已经被广泛地应用。虽然如今轻量级的Restful服务正如日中天,但是了解Web Service也是基础中的基础。 阅读全文
posted @ 2015-10-02 22:36 EdisonZhou 阅读 (5867) 评论 (4) 编辑
摘要:实际开发中,我们所开发的大部分应用系统都会和数据库打交道。数据库应用设计往往成为系统设计中最重要的组成之一,这其中不止包括数据库的架构、库结构的设计,也包括了程序访问数据库策略的设计。在.NET开发中,ADO.NET已经成为访问数据库最主要的组件框架,EF一类的ORM也是基于ADO.NET做的高层实现。本篇将覆盖一些ADO.NET基本概念、数据库的连接以及数据库读写等基础知识。 阅读全文
posted @ 2015-10-01 23:12 EdisonZhou 阅读 (4194) 评论 (0) 编辑
摘要:多线程开发技术是每个技术框架下都需要面对的问题,在多CPU、多核的硬件架构逐渐普及的今天,多线程开发编程也渐渐地变得更加重要。本篇将涉及关于.NET中多线程开发中的重要基础知识点,并以问答的形式集中展现。由于各个操作系统的不同涉及,进程、线程等基本概念在不同的操作系统中会有所不同,本篇如没有特指都只代表Microsoft的Windows系列操作系统。 阅读全文
posted @ 2015-09-30 23:54 EdisonZhou 阅读 (29238) 评论 (39) 编辑
摘要:本篇涵盖了.NET框架中最为重要的几个高级特性:委托、事件、反射以及特性。对这些高级特性的理解和运用,已经成为了.NET程序员从入门进阶到中级的判断标准。也正是如此,此类的问题在各种公司的.NET技术面试中被大量采用,我们在理解这些内容时应该做到“知其然也知其所以然”,充分理解这些高级特性在.NET框架下是如何实现的,它如何提高了程序的灵活性和可扩展性。 阅读全文
posted @ 2015-09-25 23:44 EdisonZhou 阅读 (10198) 评论 (8) 编辑
摘要:题目:写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不能使用atoi或者其他类似的库函数。这看起来是道很简单的题目,实现其基本功能,大部分人都能用10行之内的代码解决。可是,当我们要把很多特殊情况即测试用例都考虑进去,却不是一件容易的事情。 阅读全文
posted @ 2015-09-21 22:25 EdisonZhou 阅读 (5444) 评论 (4) 编辑
摘要:本题是对于字符串翻转基本算法的两个应用。题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。题目二:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串"abcdefg"和数字2,该函数将返回左旋转2位得到的结果"cdefgab"。 阅读全文
posted @ 2015-09-21 00:41 EdisonZhou 阅读 (3457) 评论 (0) 编辑
摘要:此篇包含两道题目,都是针对二叉树遍历算法的应用。题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。题目二:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 阅读全文
posted @ 2015-09-20 14:13 EdisonZhou 阅读 (12974) 评论 (0) 编辑
摘要:题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。既然输入的数组是排序的,那么我们很自然地就能想到用二分查找算法。在题目给出的例子中,我们可以先用二分查找算法找到一个3。由于3可能出现多次,因此我们找到的3的左右两边可能都有3,于是我们在找到的3的左右两边顺序扫描,分别找出第一个3和最后一个3。 阅读全文
posted @ 2015-09-20 11:04 EdisonZhou 阅读 (5731) 评论 (0) 编辑
摘要:题目:输入两个链表,找出它们的第一个公共结点。碰到这道题,很多人的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,每遍历到一个结点的时候,在第二个链表上顺序遍历每个结点。如果在第二个链表上有一个结点和第一个链表上的结点一样,说明两个链表在这个结点上重合,于是就找到了它们的公共结点。如果第一个链表的长度为m,第二个链表的长度为n,显然该方法的时间复杂度是O(mn)。 阅读全文
posted @ 2015-09-20 00:23 EdisonZhou 阅读 (6238) 评论 (1) 编辑
摘要:dotNet最近一直反复地看博客园以前发布的一条.NET全栈开发工程师的招聘启事,觉得这是我看过最有创意也最朴实的一个招聘启事,更为重要的是它更像是一个技术提纲,能够指引我们的学习和提升,现在转载过来与各位园友分享。 阅读全文
posted @ 2015-09-18 23:56 EdisonZhou 阅读 (22677) 评论 (55) 编辑
摘要:字符串、集合和流在实际开发中是经常被用到,相关代码的编写也将会直接影响到系统的正确性和效率。因此,在本篇中覆盖了.NET面试笔试中关于字符串、集合和流的一些面试题,通过分析和理解这些题目和知识点,我们可以加深对字符串、集合和流的认知,从而达到梳理基础的目的,最终帮助我们在实际开发中提高效率和性能。 阅读全文
posted @ 2015-09-18 00:04 EdisonZhou 阅读 (3987) 评论 (3) 编辑
摘要:题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。要求时间复杂度为O(n)。最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思路的时间复杂度是O(n2),但是不满足要求。 阅读全文
posted @ 2015-09-14 23:07 EdisonZhou 阅读 (8787) 评论 (38) 编辑
摘要:在本篇中,覆盖了.NET面试笔试中部分有关面向对象的实现和异常处理部分的题目,C#是一种“纯净”的面向对象语言,虽然.NET本身允许一些面向过程的语言组件的存在,但其提倡的仍然是面向对象的编程思想。此外,异常不是Bug,它存在于所有的程序之中,因此编写代码时,如何处理异常程序也是时刻考虑的一个问题。 阅读全文
posted @ 2015-09-14 00:11 EdisonZhou 阅读 (3594) 评论 (5) 编辑
摘要:题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。 阅读全文
posted @ 2015-09-13 16:57 EdisonZhou 阅读 (8299) 评论 (0) 编辑
共 19 页: 首页 上一页 6 7 8 9 10 11 12 13 14 下一页 末页