程序员思维清单
三五月儿
修行者 服务端开发(java/.net)
展开
-
常用排序算法思想总结
1、冒泡排序 通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡上升一样,因此得名。 冒泡排序的时间复杂度为O(n^2)。2、(简单)选择排序 第一次遍历“选择”出所有元素中最小的元素,第二次遍历“选择”出剩下元素中最小的元素,依此类推。选择排序得名于这个“选择”过程。 选择排序的时间复杂度为O(n^2)。3、插入排序 插入排序的过程与抓牌(扑克牌)的过程一致。 抓第一原创 2016-11-01 17:24:19 · 1122 阅读 · 0 评论 -
作为c#程序员,这些知识点你是否都了解?
1、字符串操作 (1)避免装箱 string str1 =”str1”+9;(发生装箱) string str2 = “str2”+9.ToString();(不装箱) (2)避免分配额外的内存空间。 string s1 = “abc”; s2 = “123” + s1 + “456”; 创建3个字符串对象,执行一次string.Contact()方法。 注意: string s2原创 2016-10-30 19:13:19 · 3231 阅读 · 0 评论 -
扩展的思维
扩展的思维,即要求开发者能够充分考虑需求的变更,并采取相应的措施来处理变更,最终实现“开闭原则”所倡导的那样,“对修改封闭,对扩展开放”。1、面向接口编程,让扩展更容易。 对软件中易变的细节进行抽象,抽象成接口(接口包括接口、抽象类),通过实现抽象的接口来进行扩展,当软件的需求发生变化时,只需要实现相应的接口,定义新的类来扩展软件,而软件的基本框架可以保持不变,因为软件框架是由抽象的接口来定义的。原创 2016-11-14 16:48:09 · 1007 阅读 · 0 评论 -
架构设计和技术选型的思路总结
本文仅给出架构设计时需要考虑的知识点,并不会对具体知识点做详细介绍。一、顶层架构 Linux/Windows平台、CS/BS架构、大数据架构、应用领域(游戏、互联网、传统行业等)二、CS中的Client的技术选型 1、GUI开发技术 (1)微软技术体系 MFC,WinForm,WPF、UWP (2)Java技术体系 java AWT、java swing,javafx (3)Pytho原创 2016-11-18 15:57:48 · 15231 阅读 · 3 评论 -
常用加密方法及破解思路
1、直接明文保存数据。2、使用对称加密算法来保存数据,比如DES、3DES、AES、RC2、RC4、RC5和Blowfish等算法。加解密使用相同的秘钥。==》获取密钥破解3、使用非对称加密算法来保存数据,比如MD5、SHA1等单向HASH算法,使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单。==》利用彩虹表技术建立彩虹表,进行撞库查表破解。4、特殊的单向HASH算法 在单向HASH原创 2016-11-11 11:40:53 · 3844 阅读 · 0 评论 -
设计模式的六大原则
1、单一职责原则一个类只负责一项职责。不要存在多于一个导致类变更的原因。单一职责原则的优点:降低类的复杂度,提高类的可读性,提高系统的可维护性,降低系统由于变更引起的风险。2、里氏替换原则所有引用基类的地方必须能透明地使用其子类的对象。更通俗的说法是:子类可以扩展父类的功能,但不能改变父类原有的功能。 它具有以下4层含义: ● 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。原创 2016-11-08 19:50:33 · 575 阅读 · 0 评论 -
使用Dispose模式释放资源
1、资源的内存使用情况 为资源分配内存–>初始化内存,设置资源的初始状态–>访问内存,使用资源–>摧毁资源状态,释放2、资源包括托管资源和非托管资源 托管资源:由CLR管理分配和释放的资源。 非托管资源:不受CLR管理的对象,如网络连接(套接字)、数据库资源(数据库连接)、内存缓冲区、文件、屏幕空间等。3、使用Dispose模式释放资源 含有非托管资源的对象需要使用Dispose模式。通过实原创 2016-11-06 10:59:51 · 8207 阅读 · 0 评论