自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 创造性模式之单例模式

单例模式:描述:    确保一个类只有一个实例,并提供对它的全局访问点。    单例模式解决了以下问题:    如何确保一个类只有一个实例?    如何方便地访问类的唯一实例?    一个类如何控制它的实例化?    如何限制类的实例数量?单例模式如何解决这些问题:    隐藏类的构造函数。    定义一个返回类的唯一实例的公共静态操作(getInstance())。这个模...

2018-08-18 15:27:12 248

原创 设计模式之间的区别

抽象工厂和工厂方法的区别:抽象工厂:    通过对象组合创建抽象产品    创建多系列产品    必须修改父类的接口才能支持新的产品工厂方法:    通过类继承创建抽象产品    创建一种产品    子类化创建者并重载工厂方法以创建新的产品通常,设计开始时使用工厂方法(不那么复杂,更可定制,子类激增),并随着设计师发现需要更多灵活性的地方而向抽象工厂、原型或构建器(更灵活、更复...

2018-08-18 13:37:12 673

原创 创造性模式之工厂方法模式

工厂方法模式:(针对的对象的创建,通过工厂方法而不是构造函数)描述:定义一个接口用于创建单个对象,但让子类决定实例化哪个类。工厂方法允许类将实例化推迟到子类;目的:使用工厂方法来处理创建对象的问题,而无需指定将要创建的对象的确切类。工厂方法模式解决了以下问题:    如何创建一个对象,使子类能够重新定义要实例化的类?    一个类如何将实例化延迟到子类?工厂方法模式如何解决这些问题:...

2018-08-18 13:36:35 304

原创 创造性模式之建造者模式

建造者模式:(主要处理的是对象复杂创建过程问题)    建造者模式:描述:将复杂对象的构造与它的表示分离,允许相同的构造过程创建各种表示。目的:    将复杂对象的构造与其表示分离开;旨在为面向对象编程中的各种对象创建问题提供灵活的解决方案建造者解决了以下问题:    一个类(相同的构造过程)如何创建一个复杂对象的不同表示?    如何简化包含创建复杂对象的类?建造者如何解决这些...

2018-08-16 17:50:00 208

原创 创造性模式之抽象工厂模式

抽象工厂模式:(主要处理的是对象之间的依赖问题)Abstract factory pattern(抽象工厂模式)    抽象工厂模式提供了一种方法来封装具有共同主题的一组独立工厂,而无需指定它们的具体类    在正常使用中,客户端软件创建抽象工厂的具体实现,然后使用工厂的通用接口创建作为主题一部分的具体对象。    客户机不知道(或不关心)它从这些内部工厂中获得的具体对象,因为它只使用产品...

2018-08-16 17:48:15 210

原创 设计模式

设计模式:    软件设计模式是一种通用的、可重用的解决方案,用于解决软件设计中给定上下文中常见的问题。它不是可以直接转换成源代码或机器代码的已完成设计。    它是一种描述或模板,用于描述如何解决可以在许多不同情况下使用的问题。    面向对象的设计模式通常显示类或对象之间的关系和交互,而不指定涉及的最终应用程序类或对象    目的:    以设计灵活且可重用的面向对象软件,即更易于...

2018-08-16 17:46:38 143

原创 计算机基础知识了解

 linux文件系统: 先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能够利用的文件系统格式。linux的文件格式为Ext2/Ext3,现在好像已经到了Ext4.windows 操作系统为vfat或者NTFS。linux文件系统:  操作系统的文件数据除了文件实际内容外,还有非常多的属性,如文件权限(rwx)与文...

2018-08-15 22:59:28 2491

转载 Nginx 多进程模型是如何实现高并发的

进程数与并发数不存在很直接的关系。这取决取server采用的工作方式。如果一个server采用一个进程负责一个request的方式,那么进程数就是并发数。那么显而易见的,就是会有很多进程在等待中。等什么?最多的应该是等待网络传输。其缺点题主应该也感觉到了,此处不述。而nginx 的异步非阻塞工作方式正是利用了这点等待的时间。在需要等待的时候,这些进程就空闲出来待命了。因此表现为少数几个进程...

2018-08-15 22:58:20 2154

原创 keyTool详解

生成公私钥:Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:    (1)密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)    (2)可信任的证书实体(trusted certificate...

2018-08-15 10:22:22 5282

原创 docker入门教程

一、docker安装并使用阿里云的镜像CentOS 7 (使用yum进行安装)# step 1: 安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 2: 添加软件源信息sudo yum-config-manager --add-repo http://mirrors.al...

2018-07-17 17:32:55 238

原创 redis简单了解

Redis 是单进程程序redis与memcache对比1、redis能够用不同的两种方式将数据写入磁盘(时间点转储即快照;只追加文件AOF,将所有修改了数据库的命令都写入一个只追加文件里面,用户可以根据数据的重要程度,将只追加写入设置为从不同步、每秒同步一次或者每写入一个命令就同步一次)2、redis除了能够存储普通的字符串键外还能存储其他4种的数据结构,而memcache只能存储普通...

2018-07-16 17:21:43 156

原创 RabbitMQ简单了解

一、消息确认消息确认是为了让消息不丢失。当消费者在处理消息的时候突然服务器宕机,这个消息还没有处理完成,而RabbitMQ代理服务器又将该消息删除这样就会造成消息的丢失,但是我们又希望这个消息不能就这样丢失而是将这个消息重新推送给新的一个消费者,为了确保消息不会丢失,RabbitMQ支持消息确认。使用者将一个ack(nowledgement)发回给RabbitMQ,告诉它已经接收、处理了一个特定的...

2018-07-09 13:18:49 246

原创 网站优化浅谈

一、访问网站流程        用户在浏览器发起请求、经过网络层,将请求发送到指定的IP服务器,通过应用程序处理获取数据库服务器相关的数据并原路返回最终结果给浏览器展示。        在这整个过程不论网络传输以及从数据库服务器获取数据都比较耗时,因此我们可以针对这几点进行优化二、优化        1、前端游湖        浏览器的优化            页面静态化,浏览器可以缓存静态化页...

2018-05-23 14:12:01 292

原创 用户登录以及分布式session功能

一、两次md5    在前端处理,用户在页面上进行登录、网络传输使用的是明文传输。所以第一次在客户端进行md5加密即明文+固定salt进行加密。这个只能防范密码明文传输,因为在前端是在js写,所以如果有人特意去破解,密码还是会被看到。    在后台处理,加密后的密码传输到后台之后,还需要进行md5进行加密。所以第二次在服务端进行md5加密即用户输入的(第一次md5加密后的结果)+随机salt,第二...

2018-05-22 11:52:51 820

原创 dubbo源码分析服务发布

一、dubbo和spring的集成与spring的集成是基于Spring的Schema扩展进行加载。dubbo命名空间对应的实现类是DubboNamespaceHandler,DubboBeanDefinitionParser用来解析xml文件信息。二、服务的发布以dubbo官方提供的dubbo-demo-provider为例来讲解服务的发布过程。demo中xml配置文件内容为:<beans...

2018-04-03 17:39:14 444

原创 dubbo中ExtensionLoader解析

在上一篇《java中spi机制解读》中指出java的SPI机制存在以下缺点:只能获取配置中所有的接口实现,不能按照需要获取。所以ExtensionLoader加强了java中SPI机制的功能:可以按照名字加载实现类;在加载实现类过程中新增本文以获取Protocol接口实现类为例进行说明: private static final Protocol protocol = ExtensionLoade...

2018-04-03 16:07:23 781

原创 java中spi机制解读

关于spi机制大部分人都很陌生,因为我们在开发过程中很少用到,但是实际上这个机制从我们接触java开始就跟我们如影随形。有些人认为使用java很简单,都是调用第三方依赖包,然后结合自己的业务逻辑就可以了,这个机制就是跟第三方有关。一、概念SPI 的全名为 Service Provider Interface,目的hi提供接口,让第三方(服务厂商或扩展框架开发者)提供自定义实现的服务功能。例如,JD...

2018-03-29 11:14:57 4654

原创 spring源码解析-加载XML文件

最近在阅读郝佳老师编写的《Spring源码深度解析》这本书,这本书的书的1-7章可以归纳为三大模块:xml文件的载入、bean的加载以及AOP模块。接下来我们从xml文件的载入开始讲解。一、流程图二、流程说明从上面的流程图可以很清晰的看清整个spring框架关于ioc读取配置文件的整个流程,下面我们进行详细说明,本来我们是以XmlBeanFactory为载体进行说明。XmlBeanFactory继...

2018-03-20 15:29:08 669

原创 死锁及处理方案

一、原因:    线程间互相等待资源,但是又不释放自己自身的资源,导致无穷无尽的等待,其结果是系统任务永远无法执行完成。例如过独木桥,A和B分别走在桥上,想通过独木桥,但是他们都希望对方先退出,两个人就一直处在等待状态。二、产生条件:    1、互斥条件:一个资源每次只能被一个进程使用。独木桥每次只能通过一个人。    2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。乙不退...

2018-03-07 15:05:48 222

原创 java基础之序列化

一、概念 序列化:将对象转化成字节码的过程; 反序列化:将字节码转化为对象的过程二、作用: 1、把对象的字节码永久存在硬盘中,进行持久化 2、在网络上传送对象的字节序列三、静态变量序列化 序列化保存的是对象的状态,静态对象属于类的状态,因此,序列化不保存静态变量四、序列化版本号 虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个

2018-01-26 16:20:48 217

原创 java基础-IO流

一、概念流的概念: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称,即数据在两设备间的传输称为流。二、流的分类: 流按照操作单位分为字节流和字符流。字符流处理的单元为 2 个字节的 Unicode 字符;字节流处理单元为 1 个字节。java内是用Unicode 编码存储字符。 unicode编码简而言之就是将每一个字符用16位2进制数标识。但是通常都用4位的16进制数标识。 uni...

2018-01-25 16:49:14 158

转载 java基础之数据结构

一、概念1、算法复杂度:在给定输入规模时,为获得最终的结果而需要执行的基本操作数量。2、渐近记号(Asymptotic Notation)通常有 O、 Θ 和 Ω 记号法。Θ 记号渐进地给出了一个函数的上界和下界,当只有渐近上界时使用 O 记号,当只有渐近下界时使用 Ω 记号。尽管技术上 Θ 记号较为准确,但通常仍然使用 O 记号表示。复杂度标记符号描述常量(Constant) O(1) 操作的数...

2018-01-23 16:50:09 282

原创 java基础-集合底层原理分析

java集合框架主要包括两种类型的集合容器:一、Collection存储一个元素的。它又包含三个子类型:List、Set、QueueList:可以存储重复的数据、有序的List常用的类是ArrayList和LinkedListArrayList是基于数组存储数据,其原理是当调用add()方法,先计算容器的大小,重新new一个新的数组大小,并将当前的数组所有元素复制到这个新的数组中,然后将最新的值放...

2018-01-19 22:43:15 13301 1

原创 Vue2.0+Vue-router2.0+Vuex2.0搭建搭建环境

一、安装 nodejs使用node -v查看是否有安装安装淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org安装webpackcnpm install webpack -g安装vue脚手架npm install vue-cli -g创建webpack项目

2017-07-27 15:03:26 1236

转载 maven copy jar包到指定lib目录

build>      pluginManagement>          plugins>              plugin>                  artifactId>maven-compiler-pluginartifactId>                  configuration>                      sourc

2017-05-09 22:05:20 2601

转载 SpringMVC中url-pattern /和/*的区别

学习spring的时候,在配置web.xml的时候,把url-pattern 配置成/*,启动项目后去访问自己的Controller总是报404.检查了很多发现资源是存在的,配置的地址也没有问题,为什么会出现404错误呢?最后发现是自己配置的 url-pattern 不对! 现整理一下: (1):在使用springmvc时,都会在web.xml中配置一个dispatchservlet,

2017-04-14 20:43:05 534

原创 spring resource源码讲解

本人在码云上提交了关于阅读spring源码之后编写的一些基础模块的实现,https://git.oschina.net/73hulu/spring.git 望大家不吝给颗星star,谢谢大家

2017-03-22 16:14:07 1061

原创 java编程思想之控制执行流程

程序必须在执行过程中控制它的世界,并做出选择,在java中,我们使用执行控制语句来做出选择。流程开关true和false,所有条件语句都利用条件表达式的真或假来决定执行路径。注意,java中不允许我们使用数字作为布尔表达式来使用,但是这在C和C++里是允许的(在这里“非零”是真,“零”是假)if-elseif-else是控制程序流程最基本的形式,其中else是可选的,所以可以使用如下两

2017-03-07 22:41:07 555

原创 java编程思想之一切都是对象

一、创建新的数据类型:类类是由一组相同属性和行为对象的结合,定义了对象的属性和行为使用class关键字来定义一个新类如:class ATypeName(){/*class body goes here*/}二、类的组成1、一旦定义了一个类,就可以在类中定义两种类型的属性:字段和方法。字段可以是任意类型的对象,也可以是基本类型的一种。每一个对象都有其用来存储字段的空间,普通字段不

2017-03-06 15:14:18 610

原创 PowerDesigner初见解

一、概念定义:1、概念模型(Conceptual Data Model)俗称cdm:用来描述简单的概念化问题,最接近生活,是我们思想的直接体现,与计算机系统及DBMS具体技术无关,让我们集中精力分析数据以及数据之间的联系等。2、物理模型(Physical Data Model):是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件

2017-03-01 11:04:07 289

原创 上传项目到github上及删除代码

1.首先到官网下载Github客户端,官网地址:https://desktop.github.com/2. 点击上图红框的按钮开始下载客户端。 3. 双击下载好的客户端,开始安装。 双击之后出现一个框 之后等待一段时间,出现一个在线下载界面 4. 在线下载完成之后开始进行安装。安装完成之后桌

2017-02-15 09:07:34 4228

原创 redis安装、设置密码及开机自启动

一、redis安装1、tar xzf redis-2.8.3.tar.gz2、cd redis-2.8.33、make4、编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。mkdir /usr/rediscp redis-server  /usr/redis

2017-02-14 15:54:17 1724

转载 四种常见的 POST 提交数据方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主

2017-02-13 10:19:11 244

原创 socket编程

协议简介协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构、交换方式、包含的意义以及怎样对报文所包含的信息进行解析。TCP/IP 协议族有 IP 协议、TCP 协议和 UDP 协议。TCP 协议和 UDP 协议使用的地址叫做端口号,用来区分同一主机上的不同应用程序。TCP 协议和 UDP 协议也叫端到端传输协议,因为他们将数据从一个应用

2017-02-08 16:14:04 326

转载 Spring MVC中拦截器HandlerInterceptorAdapter中的preHandle方法

拦截器:顾名思义,就是对请求进行拦截,做一些预处理、后处理或返回处理的操作 Spring MVC中使用拦截器的方法,继承HandlerInterceptorAdapter类,并根据需求实现其中的preHandle方法(预处理)、postHandle方法(返回处理),afterCompletion方法(后处理)。public boolean preHandle(HttpServletRe

2017-01-24 23:36:20 19142

转载 邮件发送的原理

概述     电子邮件是因特网上使用得非常多的一种应用,它可以非常方便的使相隔很远的人进行通信。它主要的特点就是操作简单,快捷。当你发送一封邮件的时候,它首先会发送到收件人的邮件服务器上,并放入收件人的信箱中。(如果你在某一个邮件服务器提供商那里申请了一个邮箱账号,那么你在这个邮件服务器上面就有一个电子信箱)。收件人只需要定时读取它的电子信箱,就可以接收别人发送过来的信件,并与别人进行通信

2017-01-04 23:51:07 6408

原创 zookeeper windows单机模式和伪集群模式

首先在官网上下载zookeeper稳定版本,下载地址:http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/ 下载zookeeper-3.4.6.tar.gz,我下载的是3.4.6,不算太新也不算太旧。        zookeeper是一个分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管

2016-12-14 15:21:58 940

转载 学习Token

Token是什么?Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。Token的引入——Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否

2016-12-07 23:57:04 1864

转载 Android客户端和服务端如何使用Token和Session

对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。    一、我们先解释一下他的含义:    1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,To

2016-12-07 23:56:12 2405

转载 app 与服务器交互 token

1.产生原因app 应用需要访问服务器,此过程中涉及到身份认证和权限控制的问题,如何搭建 app 和服务器之间信任的桥梁?我们都知道,session、cookie 是作为浏览器里面的用户和服务器之间认证的一个方式,而app 和服务器之间的交流也是使用的 http 请求,很明显它们遇到的问题是差不多的,但是因为 app 和浏览器又不完全一样(浏览器可以存放 cookie),所以我们可以借鉴浏

2016-12-07 23:55:11 729

ISD4003的程序

ISD4003的C语言驱动,更简单更快更方便

2009-11-12

空空如也

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

TA关注的人

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