自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(40)
  • 收藏
  • 关注

转载 深入剖析Java中的装箱和拆箱

深入剖析Java中的装箱和拆箱  自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。  以下是本文的目录大纲:  一.什么是装箱?什么是拆箱?  二.装箱和拆箱是如何实现的  三.面试中相关的问题  若有不正之处,请谅解和批评指正...

2018-08-30 00:55:00 86

转载 Spring源码-AOP(二)-AOP概念

1.AOP概念AOP中文翻译为面向方面编程或面向切面编程,维基百科对它的解释是AOP指一种程序设计范型,该范型以一种称为aspect(切面)的语言构造为基础,切面是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。谈到模块化机制,自然会想到OOP(面向对象编程)。OOP也是一种模块...

2018-08-28 01:11:00 113

转载 Spring源码-AOP(一)-代理模式

在我们的项目中,往往会出现许多业务或功能存在相同或相似的操作,这些操作与具体的业务逻辑相关性不大,比如记录关键的操作日志,或者更新数据库的事务控制等。因为这些操作散落在众多的不相关的业务间,不能通过继承的体系去管理,而通过工具类的方法也会显得代码的繁琐以及一些控制粒度的细分问题,因而就出现了AOP(Aspect-Oriented Programming)...

2018-08-28 01:11:00 79

转载 八大排序算法总结与java实现

概述因为健忘,加上对各种排序算法理解不深刻,过段时间面对排序就蒙了。所以决定对我们常见的这几种排序算法进行统一总结,强行学习。首先罗列一下常见的十大排序算法:直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序我们讨论的这八大排序算法的实现可以参考我的Github:SortAlgorithm...

2018-08-28 01:09:00 105

转载 RabbitM概要

本文大纲:RabbitMQ 历史RabbitMQ 应用场景RabbitMQ 系统架构RabbitMQ 基本概念RabbitMQ 细节阐明历史-从开始到现在RabbitMQ是一个Erlang开发的AMQP(Advanced Message Queuing Protocol )的开源实现。AMQP 的出现其实也是应了...

2018-08-28 01:07:00 168

转载 RabbitMQ的应用场景以及基本原理介绍

1.背景RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。2.应用场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式(1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回...

2018-08-28 01:03:00 79

转载 RabbitMQ的应用场景

直接进入正题。一.异步处理场景:发送手机验证码,邮件传统古老处理方式如下图这个流程,全部在主线程完成,注册-》入库-》发送邮件-》发送短信,由于都在主线程,所以要等待每一步完成才能继续执行。由于每一步的操作时间响应时间不固定,所以主线程的请求耗时可能会非常长,如果请求过多,会导致IIS站点巨慢,排队请求,甚至宕机,严重影响用户体验。...

2018-08-28 01:01:00 94

转载 算法 - 合并两个有序数组成一个有序数组

最近看到一个算法题目,觉得很有意义,就自己查资料,摸索着自己实现了代码,特记录一下。题目:有两个数组a[]和b[],将它们合并成数组c[],需要c[]也是有序数组。有两种实现思路:1. 定义一个新数组,长度为两个数组长度之和,将两个数组都copy到新数组,然后排序。2. 给两个数组分别定义一个下标,最大长度是数组长度减一,按位循环比较两个...

2018-08-28 00:56:00 420

转载 Java中的多线程概述

引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生...

2018-08-28 00:54:00 74

转载 Java 注解 (Annotation)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/briblue/article/details/73824058文章开头先引入一处图片。这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文...

2018-08-28 00:50:00 62

转载 MySQL索引类型

一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|des...

2018-08-28 00:45:00 71

转载 浅谈算法和数据结构: 十二 无向图相关算法基础

从这篇文章开始介绍图相关的算法,这也是Algorithms在线课程第二部分的第一次课程笔记。图的应用很广泛,也有很多非常有用的算法,当然也有很多待解决的问题,根据性质,图可以分为无向图和有向图。本文先介绍无向图,后文再介绍有向图。之所以要研究图,是因为图在生活中应用比较广泛:无向图图是若干个顶点(Vertices)和边(Edges)相...

2018-08-26 23:39:00 113

转载 浅谈算法和数据结构: 十一 哈希表

在前面的系列文章中,依次介绍了基于无序列表的顺序查找,基于有序数组的二分查找,平衡查找树,以及红黑树,下图是他们在平均以及最差情况下的时间复杂度:可以看到在时间复杂度上,红黑树在平均情况下插入,查找以及删除上都达到了lgN的时间复杂度。那么有没有查找效率更高的数据结构呢,答案就是本文接下来要介绍了散列表,也叫哈希表(Hash Table)...

2018-08-26 23:38:00 77

转载 浅谈算法和数据结构: 十 平衡查找树之B树

前面讲解了平衡查找树中的2-3树以及其实现红黑树。2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key。维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥...

2018-08-26 23:38:00 68

转载 浅谈算法和数据结构: 九 平衡查找树之红黑树

前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据结构,即红黑树(Red-Black Tree)定义红黑树的主要是想对2-3查找树进行编码,尤其是...

2018-08-26 23:37:00 77

转载 浅谈算法和数据结构: 七 二叉查找树

前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的时候具有较高的灵活性,而有序数组在查找时具有较高的效率,本文介绍的二叉查找树(Binary Search Tree,BST)这一数据结构综合了以上两种数据结构的优点。二叉查找树具有很高的灵活性,对其优化可以生成平衡二叉树,红黑树等高效的查找和插入数据结构,后文会一一介绍。一 定义...

2018-08-26 23:32:00 82

转载 浅谈算法和数据结构: 八 平衡查找树之2-3树

前面介绍了二叉查找树(Binary Search Tree),他对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低。本文及后面文章介绍的平衡查找树的数据结构能够保证在最差的情况下也能达到lgN的效率,要实现这一目标我们需要保证树在插入完成之后始终保持平衡状态,这就是平衡查找树(Balanced Search Tree)。...

2018-08-26 23:32:00 102

转载 浅谈算法和数据结构: 六 符号表及其基本实现

前面几篇文章介绍了基本的排序算法,排序通常是查找的前奏操作。从本文开始介绍基本的查找算法。在介绍查找算法,首先需要了解符号表这一抽象数据结构,本文首先介绍了什么是符号表,以及这一抽象数据结构的的API,然后介绍了两种简单的符号表的实现方式。一符号表在开始介绍查找算法之前,我们需要定义一个名为符号表(Symbol Table)的抽象数据结构,该...

2018-08-26 23:31:00 126

转载 netty入门

Netty是一个基于异步与事件驱动的网络应用程序框架,它支持快速与简单地开发可维护的高性能的服务器与客户端。所谓事件驱动就是由通过各种事件响应来决定程序的流程,在Netty中到处都充满了异步与事件驱动,这种特点使得应用程序可以以任意的顺序响应在任意的时间点产生的事件,它带来了非常高的可伸缩性,让你的应用可以在需要处理的工作不断增长时,通过某种可行...

2018-08-26 23:20:00 93

转载 浅谈算法和数据结构: 五 优先级队列与堆排序

在很多应用中,我们通常需要按照优先级情况对待处理对象进行处理,比如首先处理优先级最高的对象,然后处理次高的对象。最简单的一个例子就是,在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话。在这种情况下,我们的数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(Priority Qu...

2018-08-25 10:57:00 101

转载 浅谈算法和数据结构: 四 快速排序

上篇文章介绍了时间复杂度为O(nlgn)的合并排序,本篇文章介绍时间复杂度同样为O(nlgn)但是排序速度比合并排序更快的快速排序(Quick Sort)。快速排序是20世纪科技领域的十大算法之一,他由C. A. R. Hoare于1960年提出的一种划分交换排序。快速排序也是一种采用分治法解决问题的一个典型应用。在很多编程语言中,对数组,...

2018-08-25 10:56:00 82

转载 浅谈算法和数据结构: 三 合并排序

合并排序,顾名思义,就是通过将两个有序的序列合并为一个大的有序的序列的方式来实现排序。合并排序是一种典型的分治算法:首先将序列分为两部分,然后对每一部分进行循环递归的排序,然后逐个将结果进行合并。合并排序最大的优点是它的时间复杂度为O(nlgn),这个是我们之前的选择排序和插入排序所达不到的。他还是一种稳定性排序,也就是相等的元素在序列中的相对位...

2018-08-25 10:55:00 126

转载 浅谈算法和数据结构: 二 基本排序算法

本篇开始学习排序算法。排序与我们日常生活中息息相关,比如,我们要从电话簿中找到某个联系人首先会按照姓氏排序、买火车票会按照出发时间或者时长排序、买东西会按照销量或者好评度排序、查找文件会按照修改时间排序等等。在计算机程序设计中,排序和查找也是最基本的算法,很多其他的算法都是以排序算法为基础,在一般的数据处理或分析中,通常第一步就是进行排序,比如说二分查找...

2018-08-25 10:54:00 83

转载 浅谈算法和数据结构: 一 栈和队列

最近晚上在家里看Algorithems,4th Edition,我买的英文版,觉得这本书写的比较浅显易懂,而且“图码并茂”,趁着这次机会打算好好学习做做笔记,这样也会印象深刻,这也是写这一系列文章的原因。另外普林斯顿大学在Coursera上也有这本书同步的公开课,还有另外一门算法分析课,这门课程的作者也是这本书的作者,两门课都挺不错的。计算机程序离...

2018-08-25 10:53:00 75

转载 浅谈算法和数据结构: 九 平衡查找树之红黑树

前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据结构,即红黑树(Red-Black Tree)定义红黑树的主要是想对2-3查找树进行编码,尤其是...

2018-08-25 10:44:00 59

转载 消息队列之 Kafka

Kafka 特点Kafka 最早是由 LinkedIn 公司开发一种分布式的基于发布/订阅的消息系统,之后成为 Apache 的顶级项目。主要特点如下: 同时为发布和订阅提供高吞吐量 Kafka 的设计目标是以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对TB 级以上数据也能保证常数时间的访问性能。即使在非常廉价的商用机器上也能做到...

2018-08-25 00:36:00 88

转载 消息队列之 ActiveMQ

简介ActiveMQ 特点ActiveMQ 是由 Apache 出品的一款开源消息中间件,旨在为应用程序提供高效、可扩展、稳定、安全的企业级消息通信。它的设计目标是提供标准的、面向消息的、多语言的应用集成消息通信中间件。ActiveMQ 实现了 JMS 1.1 并提供了很多附加的特性,比如 JMX 管理、主从管理、消息组通信、消息优先级、延迟接...

2018-08-25 00:35:00 65

转载 消息队列之 RabbitMQ

消息队列之 RabbitMQ预流关注2017.05.06 16:03*字数 4884阅读 87581评论 18喜欢 254赞赏 1关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块的知识整理记录一下了。市面上的消息队列产品有很多,比如老牌的 ActiveMQ、...

2018-08-25 00:33:00 77

转载 Eureka和Zookeeper的比较

Zookeeper保证CP当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性的要求要高于一致性。但是zk会出现这样一种情况,当master节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举。问题在于,选举leader的时间太长,30 ~...

2018-08-25 00:28:00 53

转载 聊聊MyBatis缓存机制

前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。本次分...

2018-08-24 23:46:00 63

转载 commons-httpclient 3.x如何按照host单独配置连接数和超时参数

http://blog.gssxgss.me/commons-httpclient-3-how-to-config-by-host/以下内容是个人工作中对commons-httpclient分析的小结。jakarta commons-httpclient是常用的HTTP Client实现,基于HTTP的协议比如SOAP的一些实现比如XFi...

2016-05-18 20:07:00 196

转载 Content-Type为null报 'mediatype' must not be empty错

seehttps://jira.spring.io/browse/SPR-12173spring bugContent-Type为null时会报错,为空不会报错spring自3.2.12已修复该bug解决办法:1/Content-Type 赋值或者给空字符串2/升级spring 转载于:https://www....

2016-05-18 10:41:00 875

转载 IDEA 报错These modules have been removed from Maven stucture

File-Settings-Maven-lgnored Files把打勾的pom.xml去掉 转载于:https://www.cnblogs.com/haoyunfeng/p/9551915.html

2016-05-18 10:23:00 2119

转载 ConcurrentHashMap 高并发性的实现机制

http://www.ibm.com/developerworks/cn/java/java-lo-concurrenthashmap/index.htmlConcurrentHashMap 是 Java concurrent 包的重要成员。本文将结合 Java 内存模型,来分析 ConcurrentHashMap 的 JDK 源代码。...

2016-05-16 11:35:00 80

转载 Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析

这个分为两个部分的系列文章研究了 Apache Tomcat 服务器的系统架构以及其运用的很多经典设计模式。第 1 部分分析了 Tomcat 的工作原理,第 2 部分将分析 Tomcat 中运用的许多经典设计模式,如模版模式、工厂模式和单例模式等。通过学习它们的实践运用能给我们以后的软件设计起到一定的借鉴作用。5评论许 令波...

2016-05-16 11:31:00 75

转载 Tomcat 系统架构与设计模式,第 1 部分: 工作原理

http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/\这个分为两个部分的系列文章将研究 Apache Tomcat 的系统架构以及其运用的很多经典设计模式。本文是第 1 部分,将主要从 Tomcat 如何分发请求、如何处理多用户同时请求,还有它的多级容器是如何协调工作的角度来分析 ...

2016-05-16 11:30:00 55

转载 Spring 框架的设计理念与设计模式分析

Spring 作为现在最优秀的框架之一,已被广泛的使用,并且有很多对其分析的文章。本文将从另外一个视角试图剖析出 Spring 框架的作者设计 Spring 框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成 Spring 的骨骼架构? Spring 的 AOP 特性又是如何利用这些基础的骨骼架构来工作的...

2016-05-16 11:25:00 84

转载 tfs安装

TFS(Taobao File System)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。本文总结了淘宝分布式文件系统TFS文件系统的安装方法。AD:网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>&g...

2016-04-29 14:08:00 96

转载 Spring AOP不拦截从对象内部调用的方法原因

拦截器的实现原理很简单,就是动态代理,实现AOP机制。当外部调用被拦截bean的拦截方法时,可以选择在拦截之前或者之后等条件执行拦截方法之外的逻辑,比如特殊权限验证,参数修正等操作。  但是最近在项目中要在一个事务中跨数据源进行操作。数据库跨源就不在这里说了,可以自行百度。  这里出现的问题就是,如果我们要拦截某个类的多个方法,且在该类的方法...

2016-04-29 10:28:00 56

转载 QuartZ Cron表达式

原文地址http://www.cnblogs.com/sunjie9606/archive/2012/03/15/2397626.htmlCronTriggerCronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。CronTri...

2016-04-29 10:28:00 56

空空如也

空空如也

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

TA关注的人

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