- 博客(49)
- 资源 (2)
- 收藏
- 关注
转载 C#性能优化:延迟初始化Lazy<T>
1. 概述我们创建某一个对象需要很大的消耗,而这个对象在运行过程中又不一定用到,为了避免每次运行都创建该对象,这时候延迟初始化(也叫延迟实例化)就出场了。延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求。也可以称为,按需加载。2. 基本语法Lazy xx = new Lazy();//xx代表变量名3. 举例实现首先创建一个Stu
2017-06-27 22:04:59
1309
转载 Lambda表达式详解
前言 1、天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西。 2、夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅。据说它是微软自c#1.0后新增的最重要的功能之一。lambda简介 lambda运算符:所有的lambda表达式都是用新的lambda运算符 " => ",可以叫他,“转到”或者
2017-06-27 21:52:35
359
转载 .NET的ConcurrentDictionary,线程安全集合类
ConcurrentDictionary 是.NET 4.0里面新增的号称线程安全的集合类。那么自然,我们会预期ConcurrentDictionary 中的代码是线程安全的(至少几个关键方法是线程安全的).举个例子,使用者可能会预期GetOrAdd中的方法当Key不存在的时候只执行一次Add的委托,第二次调用GetOrAdd就应该直接取回刚才生成的值了.参考一下以下代码:
2017-06-27 21:47:10
3414
转载 C#泛型约束
六种类型的约束:T:结构类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。有关更多信息,请参见使用可空类型(C# 编程指南)。T:类类型参数必须是引用类型,包括任何类、接口、委托或数组类型。T:new()类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必
2017-06-26 13:35:20
525
转载 Postman用法简介-Http请求模拟工具
在我们平时开发中,特别是需要与接口打交道时,无论是写接口还是用接口,拿到接口后肯定都得提前测试一下,这样的话就非常需要有一个比较给力的Http请求模拟工具,现在流行的这种工具也挺多的,像火狐浏览器插件-RESTClient,Chrome浏览器插件-Postman等等。这里主要介绍一下Postman。 一、Postman说明 Postman是一种网页调试与发送网页http请求的ch
2017-06-22 22:31:58
1085
转载 使用Metrics监控应用程序的性能
在编写应用程序的时候,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析。在很多时候,我们可能需要了解整个系统在当前,或者某一时刻运行的情况,比如当前系统中对外提供了多少次服务,这些服务的响应时间是多少,随时间变化的情况是什么样的,系统出错的频率是多少。这些动态的准实时信息对于监控整个系统的运行健康状况来说很重要。一些应用程序,比如对外提供接口或者
2017-06-22 17:22:10
1521
转载 ASP.NET之旅--深入浅出解读IIS架构
在学习Asp.NET时,发现大多数作者都是站在一个比较高的层次上讲解Asp.net。 他们耐心、 细致地告诉你如何一步步拖放控件、 设置控件属性、编写 CodeBehind代码,以实现某个特定的功能。这种做法,实际上是回答了“如何去做”的问题,却没有回答“为什么可以这样做”的问题。这样有它的好处, 就是可以快速开发。 但建议多掌握一点底层知识,对一些问题会有更好的理解。希望通过这篇文章的,可以
2017-06-10 15:16:52
381
转载 谈谈对Spring IOC的理解
学习过spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术
2017-06-09 11:37:33
216
转载 C#中字典集合HashTable、Dictionary、ConcurrentDictionary三者区别
C#中HashTable、Dictionary、ConcurrentDictionar三者都表示键/值对的集合,但是到底有什么区别,下面详细介绍一、HashTableHashTable表示键/值对的集合。在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key-value的键值对,其中key通常可用来
2017-06-09 04:41:57
12631
3
转载 C#中数组Array、ArrayList、泛型List<T>的比较
在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析。一、数组Array数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。数组在内存中是连续存储
2017-06-09 04:36:51
527
转载 细说C#多线程那些事-线程基础
我第一次接触“线程”的概念时,觉得它深奥难懂,看了好多本书,花了很长时间才领悟到它的真谛。现在我就以一个初学者的心态,把我所理解的“多线程”描述给大家。这一次是系列文章,比较完整的展示与线程相关的基本概念。希望对初学者有所帮助。如果你是高手,请你别继续看,会浪费你宝贵的时间。一、基本概念什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使
2017-06-08 23:11:46
264
转载 细说C#多线程那些事 - 线程同步和多线程优先级
一、Task类上次我们说了线程池,线程池的QueueUserWorkItem()方法发起一次异步的线程执行很简单但是该方法最大的问题是没有一个内建的机制让你知道操作什么时候完成,有没有一个内建的机制在操作完成后获得一个返回值。为此,可以使用System.Threading.Tasks中的Task类。Task类在命名空间System.Threading.Tasks下,通过Ta
2017-06-08 22:56:52
3607
转载 SQL Server 事务隔离级别详解
SQL 事务隔离级别概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用。步骤事务隔离级别通过影响读操作来间接地影响写操作;可以在回话级别上设置事务隔离级别也可以在查询(表级别)级别上设置事务隔离级别。事务隔离级别总共有6个隔离级别:READ UNCOMMITTED(未提交读,读脏),相当于(NOLOCK)REA
2017-06-08 13:16:40
555
转载 怎样玩转千万级别的数据(表分区)
大数据处理是一个头疼的问题,特别当达不到专业DBA的技术水准时,对一些数据库方面的问题感到无赖。所以还是有必要了解一些数据库方面的技巧,当然,每个人都有自己的数据库方面的技巧,只是八仙过海,所用的武功不同而已。我把我最常用的几种方式总结来与大家分享,大家还有更多的数据库设计和优化的技巧,尽量的追加到评论中,有时一篇完整的博客评论比主题更为精彩。方法1:采用表分区技术。 第一次听
2017-06-08 11:08:49
388
转载 理解SQL SERVER中的分区表2
什么是表分区一般情况下,我们建立数据库表时,表数据都存放在一个文件里。但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的。所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高s
2017-06-08 10:55:53
313
转载 理解SQL SERVER中的分区表
简介 分区表是在SQL SERVER2005之后的版本引入的特性。这个特性允许把逻辑上的一个表在物理上分为很多部分。而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个表做union操作. 分区表在逻辑上是一个表,而物理上是多个表.这意味着从用户的角度来看,分区表和普通表是一样的。这个概念可以简单如下图所示:
2017-06-08 10:48:15
507
转载 大并发大数据量请求的处理方法
大并发大数据量请求一般会分为几种情况:1.大量的用户同时对系统的不同功能页面进行查找,更新操作2.大量的用户同时对系统的同一个页面,同一个表的大数据量进行查询操作3.大量的用户同时对系统的同一个页面,同一个表进行更新操作 对于第一种情况一般处理方法如下:一。对服务器层面的处理1. 调整IIS 7应用程序池队列长度由原来的默认1000改
2017-06-07 23:31:34
3662
转载 什么是死锁及死锁的必要条件和解决方法
进程死锁及解决办法操作系统 2009-09-24 16:48:58 阅读767 评论1 字号:大中小 订阅 一、要点提示(1) 掌握死锁的概念和产生死锁的根本原因。(2) 理解产生死锁的必要条件--以下四个条件同时具备:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。(3) 记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想。(4) 掌握死锁的预防策略中资源有序分配策略。(5)
2017-06-07 23:19:06
325
转载 ASP.NET的错误处理机制
对于一个Web应用程序来说,出错是在所难免的,因此我们应该未雨绸缪,为可能出现的错误提供恰当的处理。事实上,良好的错误处理机制正是衡量Web应用程序好坏的一个重要标准。试想一下,当用户不小心在浏览器输入了错误的URL或者当用户提供了一些信息导致程序出错的时候,如果我们没有对这些情况进行处理,而是任由404或是500的错误页面甚至出错的堆栈信息呈现在用户面前,这无疑会把一些用户给吓跑。所以,在我们开
2017-06-07 18:40:55
1572
转载 ERROR与EXCEPTION的区别
Throwable 是所有 Java 程序中错误处理的父类 ,有两种子类: Error 和 Exception 。Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Exception :表示可恢复的例外,这是可捕捉到的。 Java 提供
2017-06-07 18:37:32
233
转载 c#常用数据结构解析
前言:可能去过小匹夫博客的盆油们读过这篇对于数据结构的总结,但是小匹夫当时写那篇文章的时候略有匆忙,所以今天进行了一些增改,重新发表在蛮牛。作为程序猿,对于常见的数据结构的掌握是非常必要的,也许这篇文章略显朴实,没有那么花哨的东西,但是小匹夫也希望各位程序向的U3D从业者能喜欢。前段时间小匹夫读过一份代码,对其中各种数据结构灵活的使用赞不绝口,同时也大大激发了小匹夫对各种数据结构进行梳理和
2017-06-04 21:01:03
389
转载 SQL参数化查询
一、以往的防御方式以前对付这种漏洞的方式主要有三种:字符串检测:限定内容只能由英文、数字等常规字符,如果检查到用户输入有特殊字符,直接拒绝。但缺点是,系统 中不可避免地会有些内容包含特殊字符,这时候总不能拒绝入库。字符串替换:把危险字符替换成其他字符,缺点是危险字符可能有很多,一一枚举替换相当麻烦,也可能有漏网之 鱼。存储过程:把参数传到存储过程进行处理,但并不是所有数
2017-06-04 20:54:28
300
转载 Sql 优化2
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null最好不要给数据库留NULL,尽可能的使用NOT NULL填充数据库.备注
2017-06-04 20:18:41
164
转载 聚集索引和非聚集索引
聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包
2017-06-04 15:10:06
159
转载 int?
int?:表示可空类型,就是一种特殊的值类型,它的值可以为null用于给变量设初值得时候,给变量(int类型)赋值为null,而不是0int??:用于判断并赋值,先判断当前变量是否为null,如果是就可以赋役个新值,否则跳过public int? a=null;public int b(){return this.a ?? 0;}值类型后面加问号表示可为空null(Nullable 结构)Null
2017-05-09 10:40:59
304
转载 基于面向服务体系架构(SOA)和面向资源体系架构(ROA)的业务组件模型
多终端多技术平台可复用的组件模型当前 IT 技术迅猛发展,SOA、Web2.0、3G、三网融合等正逐步成为主流,如何整合 PC、手机、电视、特有设备等各种终端,综合利用 Flex、JSP、HTML、ASP.NET 等多种客户端技术成为大家关注的问题。本文以 J2EE 作为服务器端,综合当前各种流行的客户端技术,以 Web 服务和 REST 架构构建可复用分层组件模型。
2017-04-29 15:13:22
3647
转载 通过实例理解AOP
Aspect Oriented Programming 面向切面编程。解耦是程序员编码开发过程中一直追求的。AOP也是为了解耦所诞生。具体思想是:定义一个切面,在切面的纵向定义处理方法,处理完成之后,回到横向业务流。AOP 在Spring框架中被作为核心组成部分之一,的确Spring将AOP发挥到很强大的功能。最常见的就是事务控制。工作之余,对于使用的工具,不免需要了解其所以
2017-04-29 14:55:58
266
转载 轻松理解AOP思想(面向切面编程)
本文旨在帮助还没有理解AOP的童鞋看透弄懂AOP,也欢迎高手批评指正。先说一个Spring是什么吧,大家都是它是一个框架,但框架这个词对新手有点抽象,以致于越解释越模糊,不过它确实是个框架的,但那是从功能的角度来定义的,从本质意义上来讲,Spring是一个库,一个Java库,所以我个人觉得应该这样回答Spring是什么:Spring是一个库,它的功能是提供了一个软件框架,这个框架目的是使软
2017-04-29 14:09:06
329
转载 C#技术漫谈之垃圾回收机制(GC)
GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所以不能由程序员自己来管理。 但后来的日子里Lisp却没有成气候,采用内存手动管理的语言占据了上风,以C为代表。出于同样的理
2017-04-26 16:52:41
418
转载 SQL SERVER中利用IDENTITY属性创建自动ID列
DENTITY(属性)在表中创建一个标识列。该属性与 CREATE TABLE 及 ALTER TABLE Transact-SQL 语句一起使用。说明 IDENTITY 属性与 SQL-DMO Identity 属性不同,后者表现列的行标识属性。语法IDENTITY [ ( seed , increment ) ]参数seed 装载到表中的第一个行所使用的值。in
2017-04-26 15:00:29
12556
转载 关于Java中try-catch-finally-return的执行顺序
1、try块中没有抛出异常,try、catch和finally块中都有return语句12345678910111213141516public static int NoException(){ int
2017-04-17 22:41:20
203
转载 Sql优化方法
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享! (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基
2017-04-14 09:43:29
264
转载 使用Task代替ThreadPool和Thread
一:Task的优势ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便。比如:1: ThreadPool不支持线程的取消、完成、失败通知等交互性操作;2: ThreadPool不支持线程执行的先后次序;以往,如果开发者要实现上述功能,需要完成很多额外的工作,现在,FCL中提供了一个功能更强大的概念:Task。Ta
2017-04-13 22:56:46
1107
转载 Java开发中的23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真
2017-04-13 00:29:19
247
转载 数据库设计三大范式与BCNF
参考:1.范式间的区别http://www.cnblogs.com/winlinglin/archive/2008/11/19/1336337.html2. 数据库范式1NF 2NF 3NF BCNFhttp://dev.firnow.com/course/7_databases/sql/sqlServer/20090502/166234.html3.萨师煊
2017-04-12 23:56:22
428
转载 ASP.NET之旅--浅谈Asp.net的运行机制(二)
上节中我们从Http请求在Asp.NET中的运行过程进行了分析,但是对于真正核心的东西我们并没有说明,那接下来我们将问题上抛,从底层类和对象的创建层面上来看Asp.Net的运行机制。三、Asp.net底层运行机制 1、理解HTTP.SYS HTTP.SYS:运行于Windows核心(Kernel)的一个组件,它负责侦听(Listen)来自于外部的HTT
2017-04-12 23:54:40
245
转载 ASP.NET之旅--浅谈Asp.net运行机制(一)
上篇博客基础(ASP.NET之旅--深入浅出解读IIS架构) 很多Asp.NET开发人员都有过Asp的背景,以至于我们开发程序的时候总是停留在“页面”层次思考,也就是说我们常常会只考虑我们现在所做的系统是要完成什么功能,是要做问卷调查网站还是个人网站,而很少在“请求级”思考,思考能不能通过编码的方式来操作一个Http请求。在跨入Asp.Net后Asp有了质的飞跃,很多底层的Ht
2017-04-12 23:53:12
253
转载 oracle序列详解
序列: 是oacle提供的用于产生一系列唯一数字的数据库对象。序列是一个计数器,一般用来填充主键和计数,利用它可生成唯一的整数。一般使用序列自动地生成主码值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起的性能瓶颈。Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。当一个序列号生成时,序列是递增,独立于事务的提交或回滚。允许设计缺省序
2017-04-11 15:52:38
335
转载 C# 跨线程调用控件
在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应。 同时我们又需要在工作线程中更新UI界面上的控件,下面介绍几种常用的方法 阅读目录线程间操作无效第一种办法:禁止编译器对跨线程访问做检查第二种办法: 使用delegate和invoke来从其他线程中调用控件第三种办法: 使用delegate和BeginInvoke来从其他线程中控制控
2017-04-09 22:54:07
261
转载 C#线程同步的几种方法
我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果这个问题处理不好,我们就会得到一些非预期的结果。 在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就
2017-04-09 10:34:59
254
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人