自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (2)
  • 收藏
  • 关注

转载 算法学习(1)递归

一. 引子   大师 L. Peter Deutsch 说过:To Iterate is Human, to Recurse, Divine.中文译为:人理解迭代,神理解递归。毋庸置疑地,递归确实是一个奇妙的思维方式。对一些简单的递归问题,我们总是惊叹于递归描述问题的能力和编写代码的简洁,但要想真正领悟递归的精髓、灵活地运用递归思想来解决问题却并不是一件容易的事情。在正式介绍递归之前,我们首先...

2018-06-13 22:12:19 1411

转载 MySql 学习(4)Linux MySql 开启远程服务

1.MySql设授权远程访问 (1)使用mysql -u root -p登录mysql (2)使用mysql数据库(真正的数据库,而非数据库软件),将所有数据库的所有表(.)的所有权限(all privileges),授予通过任何ip(%)访问的root用户,密码为123456,最后刷新(flush privileges)即可。 2、防火墙开放3306端口查看firewalld...

2018-06-12 18:35:44 235

转载 MySql 学习(3)Linux MySql 常用操作

1、添加环境变量 [root@localhost ~]# vi /etc/profile export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin2、系统服务# chkconfig --list 列出所有系统服务# chkconfig --list | grep on 列出所有...

2018-06-12 16:43:36 264

转载 MySql 学习(2)rpm MySql 安装目录

1、RPM MySql 安装目录 MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。下面就介绍一下这几个目录。 1)、数据库目录 /var/lib/mysql/ 2)、...

2018-06-12 16:26:49 385

转载 MySql 学习(1)CentOS7 安装MySql5.7

1、载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。 [root@localhost ~]# yum -...

2018-06-12 15:52:23 205

转载 SQL Server数据库性能优化(1)T-SQL

1. Select 语句的性能 1)只查询需要的字段,避免使用Select *。 只查询需要的字段,可以避免许多不必要的IO。 减少字段的输出,可以更有效地利用覆盖索引。 2)限定查询结果集的数量。 使用TOP字句等限制结果集的大小,可以避免批量数据的操作,并且有效地使用索引,防止扫描操作带来的大量IO和内存的使用。 3)尽量地使用有效的索引 当需要对数据进行行过滤的时候,应该优...

2018-05-28 20:57:43 209

转载 C# 基础 (3) 垃圾回收机制(Garbage Collector)

一、GC的前世与今生虽然本文是以.net作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所以不能由程序员自己来管理。但后来的日子里Lisp却没有成气候,采用内存手动管理的语言占据了上风,以C为代表。出于同样的理由,不同的人却又...

2018-05-16 23:19:20 2691

转载 C# 基础 (2) 堆与栈

一、值类型与引用类型的存储方式:引用类型:引用类型存储在堆中。类型实例化的时候,会在堆中开辟一部分空间存储类的实例。类对象的引用还是存储在栈中。值类型:值类型总是分配在它声明的地方,做为局部变量时,存储在栈上;类对象的字段时,则跟随此类存储在堆中。我们再看看引用类型和值类型的内存分配情况(我们对着代码与图看) 示列代码: 内存分布情况: 从上面两张图我们可以看出: 1)...

2018-05-16 21:38:20 314

转载 C# 基础 (1) 值类型和引用类型

1.值类型(ValueType)值类型包括:数值类型,结构体,bool型,用户定义的结构体,枚举,可空类型。 值类型的变量直接存储数据,分配在托管栈中。变量会在创建它们的方法返回时自动释放,例如在一个方法中声明Char型的变量name=’C’,当实例化它的方法结束时,name变量在栈上占用的内存就会自动释放 C#的所有值类型均隐式派生自System.ValueType。结构体:stru...

2018-05-16 21:07:01 1332

转载 C# 多线程(4)Task的使用

一、Task的机制在C#4.0之前需要执行一个复杂的异步操作时,只能使用CLR线程池技术来执行一个任务。线程池执行异步任务时,不知道任务何时完成,以及任务的在任务完成后不能获取到返回值。但是在C#4.0中引人了一个的任务(System.Threading.Tasks命名空间的类型)机制来解决异步操作完成时间和完成后返回值的问题。其实现机制大致类似于线程池ThreadPool,不过对于Thr...

2018-05-15 11:47:02 7961 1

转载 C# 多线程(3)CLR线程池

一、关于CLR线程池使用ThreadStart与ParameterizedThreadStart建立新线程非常简单,但通过此方法建立的线程难于管理,若建立过多的线程反而会影响系统的性能。 有见及此,.NET引入CLR线程池这个概念。CLR线程池并不会在CLR初始化的时候立刻建立线程,而是在应用程序要创建线程来执行任务时,线程池才初始化一个线程。线程的初始化与其他的线程一样。在完成任务以后,该...

2018-05-14 21:10:42 732 1

转载 C# 多线程(2)多线程同步

我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果有多个线程同时访问共享数据的时候,就必须要用线程同步,防止共享数据被破坏。如果多个线程不会同时访问共享数据,可以不用线程同步。如果...

2018-05-14 17:56:01 733

转载 C# 多线程(1)多线程基础

一、基本概念进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程中可以有多个线程同时执行代码。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windo...

2018-05-14 11:39:37 671

转载 设计模式-(9)桥接模式(Bridge Pattern)

一、引言 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类,具体设计类图如下:这样的实现使得每部不同型号的电视都有自己遥控器实现,这样的设计对于电视机的改变可以很好地应对,只需要添加一个派生类就搞定了,但随着时间的推移,...

2018-05-13 16:47:25 287

转载 设计模式-(8)适配器模式(Adapter Pattern)

一、引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用。二、适配器模式的详细介绍2...

2018-05-13 16:24:03 197

转载 设计模式-(7)原型模式 (Prototype Pattern)

一、引言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导致子类的数量不断增多,反而增加了系统复杂程度,所以在这里使用工厂模式来封装类创建过程并不合适,然而...

2018-05-13 15:58:23 180

转载 设计模式-(6)建造者模式(Builder Pattern)

一、引言   在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由CPU、主板、硬盘、显卡、机箱等组装而成的,如果此时让采购员一台一台电脑去组装的话真是要累死采购员了,这里就可以采用建造者模式来解决这个问题,我们可以把电脑的各个组件的组装过程封装到一个建...

2018-05-12 17:08:54 166

转载 设计模式-(5)抽象工厂模式(Abstract Factory Pattern)

一、引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码,而工厂方法模式每个具体工厂类只完成单个实例的创建,所以它具有很好的可扩展性。但是在现实生活中,一个工厂只创建单个产品这样的例子很少,因为现在的工厂都多元化了,一个工厂创建一系列的产品,如果我们要设计这样的系统时,工厂方法模式显然在这里不适用,然后...

2018-05-12 15:44:12 205

转载 设计模式-(4)工厂方法模式(Factory Method Pattern)

一、引言   在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,然而本专题介绍的工厂方法模式可以解决简单工厂模式中存在的这个问题,下面就具体看看工厂模式是如何解决该问题的。二、工厂方法模式的实现   工厂方法模式之所以可以解决简单工厂的模式,是因为它的实现把具体产品的创建推迟到子类中...

2018-05-12 11:50:25 120

转载 设计模式-(3)简单工厂模式(Simple Factory Pattern)

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部...

2018-05-11 22:18:06 146

转载 设计模式-(2)单例模式(Singleton Pattern)

单例模式(Singleton Pattern)定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)通用代码:(是线程安全的)public class Singleton { private s...

2018-05-11 21:16:20 89

转载 设计模式-(1)模式简介

1.【设计模式简介】设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保...

2018-05-11 21:00:32 150

转载 软件架构模式

来自于O’Reilly免费的电子书:Software Architecture Patterns分层架构 (Layered Architecture) 分层架构是最常见的架构,也被称为n层架构。多年以来,许多企业和公司都在他们的项目中使用这种架构,它已经几乎成为事实标准,因此被大多数架构师、开发者和软件设计者所熟知。比如MVC。分层架构的一个特性就是关注分离(separation o...

2018-05-10 18:37:21 471

转载 Sql优化技巧整理

处理百万级以上的数据提高查询速度的方法:1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: sel...

2018-05-10 18:20:02 157

转载 快速理解聚集索引和非聚集索引

数据库的索引,听起来挺神秘的,仔细想想。这些索引,其实就是平时咱们查东西时候常用的两种手段。无非就是为了提高我们找东西的效率而已。那么我们平时又是怎么查东西呢? 聚集索引:聚集索引,来源于生活尝试。这中索引可以说是按照数据的物理存储进行划分的。对于一堆记录来说,使用聚集索引就是对这堆记录进行堆划分。即主要描述的是物理上的存储。举个例子:比如图书馆新进了一批书。那么这些书需要放到图书...

2018-05-03 21:22:45 194

转载 HttpHandler与HttpModule的理解与应用

理解asp.net管线事件当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过http管道(Http PipeLine)将请求发送给ASPNET_WP.exe进程,在ASPNET_WP.exe进程中通过HttpRuntime来处理这个请求,处理...

2018-05-03 20:32:21 188

转载 C#中流行的ORM框架

前言 在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper,Entity Framework(EF)还是ServiceStack.OrmLite?或者是你还有更好的ORM推荐呢? 如果有的话,不防也一起分享给大家。.NET(C#)主流ORM总揽 今天这篇文章分享几款收集的目前.NET(C#)中比较流行的ORM框架,比如(以下框架均为开源框架,托管于githu...

2018-05-03 17:44:18 4453 1

转载 ORM简介

什么是ORMORM(Object-relational mapping),中文翻译为对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。为什么用ORM在程序开发中,数据库保存的表,字段与程序中的实体类之间是没有关联的,在实现持久化时就比较不方便。那么,到底如何实现...

2018-05-03 17:41:45 144

转载 区分什么是架构、框架、模式和平台

区分什么是架构、框架、模式和平台?一直都感觉这几个词过于抽象和模糊,今天大家来说说到底什么是架构、框架、模式和平台?收集了的一些来自网上各自的定义和区分如下:来自冬眠的蛤蟆的概念: 设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用、框架是模块级复用、架构是系统级复用、平台是企业应用级复用。1、设计模式为什么要先说设计模式?因为设计模式在这些概...

2018-05-03 17:35:06 452

转载 理解ASP.NET中多层架构

Asp.net的多层架构主要是为了解决数据层,逻辑层,表示层等之间的关系。 我的做法是这样的:首先建立一个DataCore的基类。基类里面封装了一些低层的数据库的基本操作,比如说数据库联接,调用存储过程等等。很多人对开发多层应用程序感到一定的困难。来看一个例子:对于一个只有一两个人的小公司,一个人可能同时担当老板、出纳、会计、市场、销售、开发等多项工作。而对于一个大公司,就会进行比较严密的分工,...

2018-05-03 17:23:56 2090

转载 Asp.Net页面生命周期

一.Asp.Net页面生命周期的概念当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端IIS)发送一个request请求,服务器就会判断发送过来的请求页面,当完全识别 TTP页面处理程序类后,ASP.NET运行时将调用处理程序的 ProcessRequest 方法来处理请求、创建页面对象。通常情况下,无需更改此方法的实现,因为它是由 Page 类提供的。接下来被创建页面对象的Pr...

2018-05-03 17:01:53 328

原创 父类引用指向子类对象,new和override的区别;

关于父类引用指向子类对象例如: 有以下2个类 public class Father { public int age = 70; public static string name = "父亲"; } public class Son : Father ...

2018-05-03 16:58:10 576

原创 C#中的事件和委托

1.C#中的事件和委托的作用? 事件代表一个组件能够被关注的一种信号,比如你的大肠会向你发出想拉屎的信号,你就可以接收到上厕所。 委托是可以把一个过程封装成变量进行传递并且执行的对象,比如你上蹲坑和上坐马桶拉屎的方式是不一样的,但是你的大脑不需要知道两种方式的不同,只需要在蹲坑的时候获取身体用于蹲位姿势的委托进行调用拉屎,在坐马桶的时候获取坐姿的委托进行调用拉屎。2.他们之间的关系? 委...

2018-05-03 16:39:02 176

转载 大型网站应用之海量数据和高并发解决方案总结

一、网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能,当然,也要考虑成本的问题。当问题的规模在经济条件下通过堆硬件的方式解决不了的时候,我们应该通过其他的思路去解决问题,互联网发展至今,已经提供了很多成熟的解决方案,但并不是都具有适用性,你...

2018-05-03 15:54:51 222

转载 Redis学习(2)Redis 基础知识和数据类型

1.【redis是什么】 Redis 全程:REmote DIctionary Server(远程字典服务器) Redis 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行 并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。 目前,Vmware在资助着redis项目的开发和维护...

2018-05-02 13:03:25 225

转载 Linux 基础学习(8)-网络配置-Hyper-V 下CentOS虚拟机配置静态ip

最近使用Windows10中的Hyper-V装了个CentOS6,需要将该虚拟机系统ip设为静态IP,个人学识原因走了很多弯路。在此记录分享。1)本实例所用的各项资源说明,系统是windows10企业版64bit,虚拟机管理器使用自带的Hyper-V管理器,虚拟机安装的系统是CentOS7.如下图所示: 2) 首先创建虚拟交换机。在Hyper-V管理器中的虚拟交换机管理器中新建虚拟交换机...

2018-04-27 10:29:26 8128 2

转载 Linux 基础学习(8)-网络配置

在Linux中,以太网接口被命令为:etho、eth1等,0、1代表网卡编号。 使用ifconfig命令查看接口信息 ifconfig -a 查看所有接口 ifconfig eth0 查看特定接口 使用ifup、ifdown用来启用、禁用一个接口 ifup eth0 ifdown eth0 Linux网络配置相关文件 1)网卡配置文件 ...

2018-04-26 17:47:07 237

转载 Linux 基础学习(6)-vi、vim编辑器

vi是一个命令行界面下的文本编辑工具,最早在1976年由Bill Joy开发,当时的名字叫做ex。vi支持绝大多数操作系统(最早在BSD上发布),并且功能已经十分强大。 1991年Bram Moolenaar基于VI进行了改进,发布了vim,加入了对GUI的支持。 vim已经不仅仅为普通意义上的文本编辑器(如Windows上的记事本),而是被广泛的作为在文本编辑、文本处理、代码开发等用途。...

2018-04-25 12:12:37 123

转载 Linux 基础学习(5)-系统常用命令

日期和时间 使用date命令查看、设置当前系统时间 格式化显示时间:+%Y-%m-%d使用hwclock(clock)用以显示硬件时钟时间使用cal命令查看日历使用uptime命令查看系统运行时间 输出、查看命令使用echo命令显示输入的内容 使用cat命令显示文件内容 使用head命令显示文件的头几行(默认10行) -n 指定显示的行数 使用t...

2018-04-25 10:59:45 148

转载 Linux 基础学习(4)-系统目录介绍

对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识。  当在使用Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的目录,比如etc、usr、var、bin … … 等目录,而在这些...

2018-04-24 11:10:38 126

pdf js脚步库

pdfjs-dist 是一个通用的 PDF.js 构建库。这是 PDF.js 源码的预先构建版本,可以通过构建脚本自动生成PDF.js。 pdf.js 是一个技术原型主要用于在 HTML5 平台上展示 PDF 文档,无需任何本地技术支持。我们的目标是创建一个通用的基于 web 标准的平台,并支持分析和展示 PDFs。

2016-10-11

ImagePreview

js,兼容ie,firefox,图片预览

2012-03-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除