自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 问答 (1)
  • 收藏
  • 关注

原创 postman 调试上传文件异常

设置header: multipart/form-data;boundary=2 (其中2为任意随机数)

2019-10-23 18:05:46 1080

原创 SQL 语言 分类

DML(data manipulation language)数据操纵语言:      对数据库操作的语言:SELECT、UPDATE、INSERT、DELETE DDL(data definition language)数据库定义语言:     CREATE、ALTER、DROP等... DCL(Data Control Language)数据库控制语言:     GRAN...

2018-11-20 11:15:30 116

转载 safari浏览器附件下载文件被添加后缀(html/exe)的问题

通过程序读取文件或生成文件来下载,一般只需设置 header 头即可:1header('Content-type: application/pdf');2header('Content-Disposition: attachment; filename="保存时的文件名.pdf"');在谷歌、火狐等浏览器中,Content-type 的设置貌似并不重要,但在 Safari 上则有不同:当 Cont...

2018-07-06 13:49:26 7017

原创 linux下安装"禅道"

1.安装包下载        [root@base-61 opt]#  wget http://dl.cnezsoft.com/zentao/xxxxxx         (具体下载地址见官网)2.解压到/opt目录下 [root@base-61 opt]# tar -zxvf ZenTaoPMS.9.0.1.zbox_64.tar.gz -C /opt3.修改禅道自带apache 和 mysql...

2018-07-04 15:36:08 906

原创 单例模式

单例模式:// 线程不安全class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { } public static Singleton newInstance() { return singlet...

2018-06-04 09:25:35 114

原创 代理模式

概念代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象。目的在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。使用场景但需要对现有的代码增加新的功能时,如果直接在原有代码上修改,一方面要熟悉之前的代码,另外修改的代码还可能带来新的问题。因此这时代理模式就可以很好的解决这个问题:不修改之前已经写好的代码或者方法,通...

2018-06-04 09:25:12 117

转载 建造者模

Builder模式,将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。相关模式:思路和模板方法模式很像,模板方法是封装算法流程,对某些细节,提供接口由子类修改,建造...

2018-06-04 09:25:06 115

转载 门面模式

医院的例子  现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。  首先病人必须先挂号,然后门诊。如果医生要求化验,病人必须首先划...

2018-06-04 09:24:57 718

转载 观察者模式

真刀实枪之观察者模式韩非子身边的卧底到底是谁派来的“知己知彼,百战不殆;不知彼知己,一胜一负;不知己不知彼,每战必殆”那么怎样才能做到知彼呢,这个在世界都比较常见,就是安插间谍李斯和韩非子都是荀子的弟子,李斯是师兄,韩非子是师弟,若干年后,李斯成为最强诸侯秦国的上尉,致力于统一全国,于是安插间谍到各个国家,韩非子这么重量级人物,当然身边少不了间谍,韩非子做的李斯都了如指掌。用今天的技术重现当年的风...

2018-06-04 09:24:49 124

转载 责任链模式

真刀实枪之责任链模式“三从四德”--古代妇女的枷锁三从:未嫁从父、既嫁从夫、夫死从子也就是说,一位女性在结婚之前要听从父亲,在结婚之后要听从丈夫的,如果丈夫死了还要听从儿子的。看下类图代码IWomenpackage com.peng.zrl;/** * @author kungfu~peng * @data 2017年11月21日 * @description */public in...

2018-06-04 09:24:39 153

转载 模板方法模式

1. 模板方法的一个实例        这一节主要来学习一下设计模式中的模板方法模式。我们先来看一个例子:假如现在老板让你做一个汽车的模型,要求只要完成基本功能即可,不考虑扩展性,那你会怎么做呢?我们首先会根据经验设计一个类图:       由这个类图可知,非常简单的实现了悍马车,该车有两个型号H1和H2。那现在我们开始实现这两个型号的悍马车,首先我们得把抽象类写好,然后两个不同的模型实现类通过简...

2018-06-01 15:45:40 123

转载 适配器模式

目录适配器模式.jpg1. 介绍1.1 模式说明定义一个包装类,用于包装不兼容接口的对象包装类 = 适配器Adapter;被包装对象 = 适配者Adaptee = 被适配的类1.2 主要作用把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式的形式分为:类的适配器模式 & 对象的适配器模式1.3 解决的问题原本由于接口不兼容而不...

2018-06-01 15:45:31 121

转载 策略模式

写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿,维护的成本也会加大,而策略模式就能较好的解决这个问题,本篇博客就带你详细了解策略模式。策略模式的定义和使用场景定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。分析下定义,策略模式定义和封装了一系列的算法,它们是可以相互...

2018-06-01 15:45:13 93

转载 分布式session

前言在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理。如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A、B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session。当用户第二次发送请求时,Nginx将其负载均衡到B服务器,而这时候B服务器并不存在Session,所以就会将用...

2018-06-01 15:45:04 411

转载 单点登陆

转载:http://blog.csdn.net/xqhys/article/details/63920161?locationNum=3&fps=1一、什么是单点登录SSO(Single Sign-On)  SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。二...

2018-06-01 15:44:56 89

转载 dubbo

1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方...

2018-06-01 15:44:40 223

转载 zookeeper

一直对zookeeper的应用和原理比较迷糊,今天看一篇文章,讲得很通透,分享如下:场景一 有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文)。用20台机器划分计算的压力,从 多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大了。 通过我们的...

2018-06-01 15:44:34 187

转载 mybatis 二级缓存

MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。本文将全面分析MyBatis的二级缓存的设计原理。1.MyBatis的缓存机制整体设计以及二级缓存的工作模式如上图所示,当开一个会话时,一个 SqlSession 对象会使用一个 Executor 对象来完成会话操作, MyBatis 的二级缓存机制的关键就是对这个 Executor 对象做...

2018-06-01 15:44:28 126

转载 八大经典排序算法

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。        当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。   快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短...

2018-06-01 15:43:10 161

转载 jvm基础

最近没有什么实战,准备把JVM知识梳理一遍,先以开发人员的交流来谈谈jvm这块的知识以及重要性,依稀记得2、3年前用solr的时候老是经常oom,提到oom大家应该都不陌生,那个时候也并没有从根本解决oom,由于对jvm不熟悉,只是去百度,到处都是配置jvm参数的,那个时候啥不懂,直接粘贴,但是并没有解决问题,通过这个就告诉我们作为开发人员也需要对jvm很熟悉才行,问题来了,很多人会说我的代码并没...

2018-05-31 10:28:42 266

转载 JVM 2eden survivor分配问题)

这个Xmn设置为1G,,我用jmap -heap 看,这个Eden From To怎么不是一个整8:1:1的关系呢? 我看内存分配还是没变,我Xmn1g,感觉From、To应该都是102.4M才对,现在是102.375M。执行命令jstat -gc pid 1s 11结果:发现很奇怪,的确和我们相信的不一样,我觉得只有源码可以告诉我们他做了啥。查看源码:执行上面的例子代码 public st...

2018-05-31 10:28:25 695

转载 JVM1

https://blog.csdn.net/lirenzuo/article/details/78637278.问题现象就是相同的代码,jvm参数不一样,表现的现象不一样。private static final int _1MB = 1024 * 1024; public static void main(String[] args) throws Exception { ...

2018-05-31 10:28:06 104

转载 Java中的ThreadLocal

ThreadLocal介绍&跳出误区  ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内。跳出误区  需要重点强调的的是,不要拿ThreadLocal和synchronized做类比,因为这种比较压根就是无意义的!sysnchronized是一...

2018-05-31 10:27:56 103

转载 Java中的volatile

内存可见性  volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。  为了能比较清晰彻底的理解volatile,我们一步一步来分析。首先来看看如下代码...

2018-05-31 10:27:50 83

转载 Java原子类实现原理分析

在谈谈java中的volatile一文中,我们提到过并发包中的原子类可以解决类似num++这样的复合类操作的原子性问题,相比锁机制,使用原子类更精巧轻量,性能开销更小,本章就一起来分析下原子类的实现机理。悲观的解决方案(阻塞同步)  我们知道,num++看似简单的一个操作,实际上是由1.读取 2.加一 3.写入 三步组成的,这是个复合类的操作(所以我们之前提到过的volatile是无法解决num+...

2018-05-31 10:27:40 202

转载 CSRF攻击与防御

转载地址:http://www.phpddt.com/reprint/csrf.html       CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:       攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮...

2018-05-31 10:27:29 104

转载 面试问题请说出各种排序算法的稳定性

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 冒泡法:  这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:  复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*n,所有内部排序方法中最高好的,大...

2018-05-31 10:27:21 201

转载 hashtable、hashmap、ConcurrentHashMap、treemap的区别

转自:http://blog.csdn.net/xin_jmail/article/details/24431835自己对hashtable、hashmap、treemap的理解,不知道是否有不对的地方。HashTable: (1)是一个包含单向链的二维数组,table数组中是Entry<K,V>存储,entry对象; (2)放入的value不能为空; (3)线程安全的,所有方法均用s...

2018-05-31 10:27:14 164

转载 面试问题Executors有哪些创建线程池的方法

下面四个方法本质上都是调用ThreadPoolExecutor的构造方法:1:Executors.newSingleThreadExecutor()2:Executors.newFixedThreadPool(nThreads)3:Executors.newCachedThreadPool()4:Executors.newScheduledThreadPool(corePoolSize)coreP...

2018-05-31 10:27:06 236

转载 ArrayList动态扩容

1.JDK 1.6 (1)默认的构造函数 初试化时的长度为10:[cpp] view plain copypublic ArrayList() {  this(10);  }  带参数的构造函数,初始化了一个长度为初始容量的数组:[java] view plain copypublic ArrayList(int initialCapacity) {  super();         if (i...

2018-05-30 10:31:58 108

转载 ibatis mapper 动态代理

一、概述我们知道,Mybatis实现增删改查需要进行XML的配置,其基本的配置如下:<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapp...

2018-05-30 10:31:31 1349

转载 bufferReader,bufferWriter 装饰模式

缓冲区的出现提高了对数据的读写效率 缓冲区理解成杯子:将每一滴水,装入杯子,然后满了再用 一、 BufferedWriter: ①将文本写入字符输出流,缓冲各个字符,从而提高单个字符、数组和字符串的高效写入。 ② 缓冲区的出现时为了提高流的操作效率而出现的,所以在创建缓冲区之前,必须先有流对象 ③该缓冲区中提供了一个跨平台的换行符,newLine();[有缓冲区对象,才能用此方法]  pu...

2018-05-30 10:25:59 1821

转载 java 深拷贝与浅拷贝

1.拷贝的引入(1)引用拷贝创建一个指向对象的引用变量的拷贝。例1:Teacher teacher = new Teacher("Taylor",26);Teacher otherteacher = teacher;System.out.println(teacher);System.out.println(otherteacher);1234输出结果:blog.Teacher@355da2...

2018-05-30 10:25:40 84

转载 Java中四大引用

ONE,强引用(StrongReference)概念介绍:在此说明一下,StrongReference只是对强引用的一个称呼,但是强引用没有对应的实体类。使用强引用的对象就算是内存出现outofmemory(内存溢出)的异常也不会回收。也就是说该对象永远不会被垃圾回收器回收,不论内存是否充足。平常代码中用的最多的就是强引用。Demo验证:[java] view plain copy static ...

2018-05-30 10:25:28 2200

转载 使用消息队列的 10 个理由

过去几年中,我们一直在使用、构建和宣传消息队列,我们认为它们是很令人敬畏的,这也不是什么秘密。我们相信对任何架构或应用来说,消息队列都是一个至关重要的组件,下面是十个理由:1. 解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束...

2018-05-30 10:25:05 95

转载 Java 理论与实践: 正确使用 Volatile 变量

转载于:http://www.ibm.com/developerworks/cn/Java/j-jtp06197.htmlJava 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有...

2018-05-30 10:24:53 73

转载 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式

PS:下面是性能测试的主要概念和计算公式,记录下:一.系统吞度量要素:  一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间        QPS(TPS):每秒钟request/事务 数量        ...

2018-05-30 10:24:50 615

转载 volatile的适用场景(面试问题:volatile有什么作用)

把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个monitor object保护。从而防止多个线程在更新共享状态时相互冲突。可见性则更为微妙,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的。 —— 如果没有同步...

2018-05-30 10:24:31 964

转载 同源策略及解决办法

同源策略一种约定,是浏览器最核心也最基本的安全功能。保证用户信息的安全,防止恶意的网站窃取数据。背景如上图所示:用户登录shopA商城A之后,继续浏览到shopB,这时如果商城B可以拿到商城A的Cookie信息,就会泄露用户的相关隐私信息,也有可能被他人非法使用,甚至破坏等等。含义:同源策略需要同时满足以下三点要求: 1)协议相同 2)域名相同 3)端口相同 Tips: http:www.test...

2018-05-29 09:54:14 1337

转载 同源策略详解

同源策略在web应用的安全模型中是一个重要概念。在这个策略下,web浏览器允许第一个页面的脚本访问第二个页面里的数据,但是也只有在两个页面有相同的源时。源是由URI,主机名,端口号组合而成的。这个策略可以阻止一个页面上的恶意脚本通过页面的DOM对象获得访问另一个页面上敏感信息的权限。对于普遍依赖于cookie维护授权用户session的现代浏览器来说,这种机制有特殊意义。客户端必须在不同站点提供的...

2018-05-29 09:54:04 904

空空如也

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

TA关注的人

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