自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GarfieldEr007的专栏

勤奋治学 深度思考 静心钻研 先苦后甜

  • 博客(211)
  • 资源 (1)
  • 收藏
  • 关注

转载 Spring的IOC原理[通俗解释一下]

1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合

2017-01-23 18:49:21 918

转载 spring ioc原理(看完后大家可以自己写一个spring)

最近,买了本spring入门书:spring In Action 。大致浏览了下感觉还不错。就是入门了点。Manning的书还是不错的,我虽然不像哪些只看Manning书的人那样专注于Manning,但怀着崇敬的心情和激情通览了一遍。又一次接受了IOC 、DI、AOP等Spring核心概念。 先就IOC和DI谈一点我的看法。IOC(DI):其实这个Spring架构核心的概念没有这么复杂

2017-01-23 18:47:56 810

转载 理解RESTful架构

越来越多的人开始意识到,网站即软件,而且是一种新型的软件。  这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。  网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必

2017-01-23 18:46:19 2083

转载 Spring:源码解读Spring IOC原理

Spring IOC设计原理解析:本文乃学习整理参考而来一、 什么是Ioc/DI?二、 Spring IOC体系结构(1) BeanFactory(2) BeanDefinition三、 IoC容器的初始化1、 XmlBeanFactory(屌丝IOC)的整个流程2、 FileSystemXmlApplicationContext 的IO

2017-01-23 18:45:13 894

转载 Spring in Action 4 读书笔记之使用标签创建 AOP

目录1. 定义一个 aspect2. 创建一个 around advice在之前的读书笔记 Spring in Acton 4 读书笔记之 AOP 原理及 Spring 对 AOP 的支持 中,讲到 Spring 对 AOP 的支持包含四方面:Spring 基于代理的经典的 AOP使用 XML 配置将纯 POJO 转化为 aspect使用

2017-01-23 18:43:26 951

转载 《spring实战第四版》的读书笔记

《spring实战第四版》的读书笔记1 概述《Spring实战第四版》描述了Spring4架构的设计,看完了以后,最大感觉是Spring的IOC与aop理念实在是太强大了,而且用注解来简化系统配置的想法也非常棒,整个架构简直就是MVC的典范2 Spring之旅2.1 Intellij IDEA下载Intellij的15版本,然后将授权地址填写为http://

2017-01-23 18:41:56 3211

转载 JDK7与JDK8中HashMap的实现

JDK7中的HashMapHashMap底层维护一个数组,数组中的每一项都是一个Entry1transientEntry[] table;我们向 HashMap 中所放置的对象实际上是存储在该数组当中;而Map中的key,value则以Entry的形式存放在数组中

2017-01-22 21:37:45 1111

转载 JVM初探——使用堆外内存减少Full GC

问题: 大部分主流互联网企业线上Server JVM选用了CMS收集器(如Taobao、LinkedIn、Vdian), 虽然CMS可与用户线程并发GC以降低STW时间, 但它也并非十分完美, 尤其是当出现Concurrent Mode Failure由并行GC转入串行时, 将导致非常长时间的Stop The World(详细可参考JVM初探- 内存分配、GC原理与垃圾收集器).解

2017-01-22 21:36:52 2003

转载 浅谈WeakHashMap

Java WeakHashMap 到底Weak在哪里,它真的很弱吗?WeakHashMap 的适用场景是什么,使用时需要注意些什么?弱引用和强引用对Java GC有什么不同影响?本文将给出清晰而简洁的介绍。总体介绍在Java集合框架系列文章的最后,笔者打算介绍一个特殊的成员:WeakHashMap,从名字可以看出它是某种 Map。它的特殊之处在于 WeakHashMap 里的ent

2017-01-22 21:35:57 949

转载 JDK动态代理详解

本文主要介绍JDK动态代理的基本原理,让大家更深刻的理解JDK Proxy,知其然知其所以然。明白JDK动态代理真正的原理及其生成的过程,我们以后写JDK Proxy可以不用去查demo,就可以徒手写个完美的Proxy。下面首先来个简单的Demo,后续的分析过程都依赖这个Demo去介绍,例子采用JDK1.8运行。JDK Proxy HelloWorld1

2017-01-22 21:34:22 920

转载 kafka学习笔记:知识点整理

一、为什么需要消息系统1.解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2.冗余:消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的”插入-获取-删除”范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。3.扩展性

2017-01-22 21:33:03 1485

转载 详解Java中的clone方法 -- 原型模式

Java中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clone方法复制一个对象那么这两种方式有什么相同和不同呢? new操作符的

2017-01-22 21:31:41 928 1

转载 提高 Java 代码质量

高质量代码中往往缺陷更少!确保高的 Java 代码质量有两个步骤:尽早并经常地编写各个层次的测试用例,以及持续的监测质量状况。那么我们又该如何实践呢?本专题汇集了大量来自代码质量专家们的专业经验、最佳实践以及实用技巧,内容涵盖了软件测试理论、Bug 模式与代码诊断、代码静态分析、测试驱动、单元测试、覆盖率、测试工具和 IBM Rational 测试平台等方面,其丰富的文章、教程及系列专栏将为您的代

2017-01-22 21:30:04 4208

转载 40个Java多线程问题总结

前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作

2017-01-22 21:27:34 931 2

转载 Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式

Spring获取ApplicationContext方式我自己常用的方法:读取一个文件1 //创建Spring容器2 ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");3 //获取chinese 实例4 Person

2017-01-22 21:27:00 3213

转载 spring里头各种获取ApplicationContext的方法

为啥写这个文章呢?spring各个版本不同,以及和系统框架套在一起不同,导致获取的方式不同,网络上各种版本,太乱了,写获取方式的人都不写这个获取方式是在本地还是在WEB,在那种应用服务器下,在spring那个版本下,太过分了!我这写一些,常见的,可能经常要用的版本;首先了解,为什么要获取这个东西:当你想通过spring获取一个你指定的类的实例的时候,而又没有通过spring加载到当

2017-01-22 21:25:23 1317

转载 性能指标TP99之我解

首先给出Google到的答案:The tp90 is a minimum time under which 90% of requests have been served.tp90 = top percentile 90Imagine you have response times:10s1000s100s2sCalculating TP is very si

2017-01-22 20:55:11 8279

转载 CHROME开发者工具的小技巧

Chrome的开发者工具是个很强大的东西,相信程序员们都不会陌生,不过有些小功能可能并不为大众所知,所以,写下这篇文章罗列一下可能你所不知道的功能,有的功能可能会比较实用,有的则不一定,也欢迎大家补充交流。话不多话,我们开始。代码格式化有很多css/js的代码都会被 minify 掉,你可以点击代码窗口左下角的那个 { }  标签,chrome会帮你给格式化掉。

2017-01-22 20:47:44 4170 1

转载 不要全聚德!老北京人告诉你,该买什么“北京特产”带回家!

关注北京,请点击上方微信名订阅我们生 活 一 手 掌 握合作/投稿,请联系微信:bj1131年终岁末,各路亲朋好友纷纷来京,亦或是在北京的小伙伴开始琢磨着回家,“买点儿啥特产”,最近成了掌北后台的热门话题。有经验的都知道,真空包装的全聚德“北京烤鸭”,那是难吃到一定境界,各大景点儿卖的手链、头花、油纸伞,基本上是全国景点儿同一款。“北京特产”这东西,没

2017-01-21 17:41:11 12151 2

转载 千丝万缕的FGC与Buffer Pool

本文是一次线上的FGC分析及原理剖析。通过本文,可以深入的了解FGC,堆外Buffer和Buffer Pool的设计。1 背景运维通知,线上系统一直在FGC,通过zabbix查看GC 的次数再查看YGC和FGC空间占用情况这里有几个疑问:1:old space 空间一直很低,为什么会有频繁的FGC?2:Eden space 回

2017-01-20 21:57:58 1132

转载 Java虚拟机jvm 调优总结

一、相关概念基本回收算法引用计数(Reference Counting)比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep)此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。

2017-01-20 21:56:18 799

转载 TCP/UDP,SOCKET,HTTP,FTP协议简析

(一)TCP/UDP,SOCKET,HTTP,FTP简析TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP、HTTP、TELNET、SMTP、DNS等协议HTTP是应用层协议,其传输都是被包

2017-01-20 21:54:59 1699

转载 数组的拷贝及效率

程序如下: class C{ public static void main(String args[]){       int a[][] = {{1,2,3},{4,5,6}};       int b[][] = new int[a.length][a[0].length];       System.arraycopy(a,0,b,0,a.length); //通过ar

2017-01-20 21:53:27 927

转载 Struts1和Struts2的区别和对比(完整版)

struts2不是struts1的升级,而是继承的webwork的血统,它吸收了struts1和webwork的优势。先看struts的Action官方注释(struts1.3.8源代码)/** * An Action is an adapter between the contents of an * incoming HTTP request and the corresp

2017-01-20 21:52:26 785

转载 intellij idea 13&14 插件推荐及快速上手建议

早些年 在外企的时候,公司用的是intellij idea ,当时也是从eclipse、MyEclipse转过去的很是不习惯。用了一周明显感觉爱上它了。因为它很智能,而且能纠正你很多不好的习惯。后来跳巢到一家上市公司。因为大家都在用MyEclipse,要求开发工具统一。没办法只能转回MyEclipse。不过个人倒是一直关注intellij idea版本的发布和新的功能。最近开始使用in

2017-01-20 21:51:15 2729

转载 Javascript日期时间总结

写这篇文章,总结一下前端JavaScript遇到的时间格式处理。1 C#时间戳处理从后台返回的C#时间为:/Date(-62135596800000)/,这个是C#的DateTime.MinValue; 要在html页面展示,一个方法是后端先处理成yyyy-MM-dd HH:mm:ss的格式,前端直接展示。 如果后端不做处理,就需要前端来做处理了,下面就是看前端处理的这种情况。

2017-01-20 21:44:57 930

转载 Visual Studio Code之常备快捷键

孙广东  2015.12.31官方快捷键大全:https://code.visualstudio.com/docs/customization/keybindingsVisual Studio Code是个牛逼的编辑器,启动非常快,完全可以用来代替其他文本文件编辑工具。又可以用来做开发,支持各种语言,相比其他IDE,轻量级完全可配置还集成Git感觉非常的适合

2017-01-19 22:30:50 5843

转载 window上安装elasticserach

系统环境:2008R2 x64测试安装用的服务器IP:192.168.12.52elasticsearch版本:2.3.4JDK版本:jdk 1.8.1_101 (jdk-8u101-windows-x64)测试达到目的:安装elasticsearch后再安装head插件与Sql插件。注:如果要用来做集群搜索、分词、监控、拼音分词等需增加不同插件(插件众多,不过一理

2017-01-19 22:23:43 1399

转载 学会用好 Visual Studio Code

Visual Studio Code是个牛逼的编辑器,启动非常快,完全可以用来代替其他文本文件编辑工具。又可以用来做开发,支持各种语言,相比其他IDE,轻量级完全可配置还集成Git感觉非常的适合前端开发,是微软亲生的想必TypeScript会支持的非常好。 所以我仔细研究了一下文档未来可能会作为主力工具使用。主命令框 Command Palette最重要的功能就是F1或Ctrl

2017-01-19 22:21:15 14125

转载 Visual Studio Code 配置指南

Visual Studio Code (简称 VS Code)是由微软研发的一款免费、开源的跨平台文本(代码)编辑器。在我看来它是「一款完美的编辑器」。本文是有关 VS Code 的特性介绍与配置指南,相关设置主要针对 Mac OS X 平台。在快捷键部分, ⌘ 指 Command 键,⇧ 指 Shift 键,⌃ 指 Control 键,⌥ 指 Option/Alt 键。1. Visu

2017-01-19 22:20:20 5544 1

转载 ElasticSearch什么是文档?索引一个文档

什么是文档?程序中大多的实体或对象能够被序列化为包含键值对的JSON对象,键(key)是字段(field)或属性(property)的名字,值(value)可以是字符串、数字、布尔类型、另一个对象、值数组或者其他特殊类型,比如表示日期的字符串或者表示地理位置的对象。1{ "name": "John Smith", "age":

2017-01-19 22:18:34 5435

转载 Elasticsearch创建索引和映射结构详解

前言这篇文章详细介绍了如何创建索引和某个类型的映射。下文中[address]指代elasticsearch服务器访问地址(http://localhost:9200)。1       创建索引1.1     简单创建语句curl -XPUT [address]/blog1.2     带参数的创建语句curl -XPUT [address]/blog/ -d '

2017-01-19 22:15:34 3190

转载 Elasticsearch之基本操作

摘要:本文简单介绍了elasticsearch的HTTP API中的插入、删除、更新、查找、搜索功能。elasticsearch是一个是开源的(Apache2协议),分布式的,RESTful的,构建在Apache Lucene之上的的搜索引擎。它有很多特点例如Schema Free,Document Oriented。它是#nosql的,基于JSON,同

2017-01-19 22:09:06 4097

转载 elasticsearch 第五篇(文档操作接口)

INDEX API示例:12345PUT /test/user/1{ "name": "silence", "age": 27}说明:1.索引文档使用PUT方法,需要指定index(test)、type(user)和文档编号,提交数据为json格式为文档的内容2.在索引文档时,会自动检查in

2017-01-19 22:06:52 3315

转载 elasticsearch 第四篇(API约定)

对多个indices进行操作es中大多resetapi支持请求多个index, 例如”test1,test2,test3”,index也可以使用通配符, 例如”test*“, 还可以使用+,-来包含或移除某个或某类index, 例如”test*,-test1”支持设置多个的api的请求字符串可设置以下参数:ignore_unavailable: 是否忽略单个index是否可用(

2017-01-19 22:05:51 2773

转载 elasticsearch 第一篇(入门篇)

介绍elasticsearch是一个高效的、可扩展的全文搜索引擎基本概念Near Realtime(NRT): es是一个接近实时查询平台,意味从存储一条数据到可以索引到数据时差很小,通常在1s内Cluster: es是一个分布式、可扩展的平台, 可由一个或多个服务器通过定义的cluster.name(默认为elasticsearch)标识共建同一个集群Node: 通常一台

2017-01-19 22:04:42 2946

转载 elasticsearch 第二篇(配置篇)

配置在es启动之前可以通过设置启动命令行启动参数、环境变量、文件等方式优化和配置es进行参数环境变量名称示例说明ES_MIN_MEM256M用于配置java进程分配的最小内存ES_MAX_MEM1G用于配置java进程占用的最大内存ES_HEAP_SIZE

2017-01-19 22:03:27 2822

转载 elasticsearch 第三篇(安装篇)

*nux下安装在*nux下,es官方已提供编译的deb和rpm包,但是需要保证已安装安装java虚拟环境(目前es1.6和1.7版本均可选择1.8版本java),安装步骤如下:1.下载ES deb/rpm包,并执行安命令deb包安装: dpkg -i elasticsearch-1.6.0.debrpm包安装: rpm -i elasticsearch-1.6.0.rpm

2017-01-19 22:02:26 2326

转载 Elasticsearch基础教程ES

Elasticsearch基础教程    翻译:潘飞(tinylambda@gmail.com)基础概念    Elasticsearch有几个核心概念。从一开始理解这些概念会对整个学习过程有莫大的帮助。    接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个

2017-01-19 22:00:58 7054

转载 听说最近你读过不少书

那些时光噢,很久没有看过书了——此刻的你心里是否会发出这样的感慨?我们总是怪工作太忙,总是怪应酬多、活动多;今天想着去哪玩,明天想着约妹纸……究竟什么时候会想着好好地静下心来翻一翻上面早已布满灰尘的书呢?我理解,那部电视剧确实很精彩;我理解,那游戏确实很好玩。但是当某一天,你会发现越来越跟不上项目的节奏,越来越看不懂同事使用的什么技术竟然可以把一个复杂的功能实现得这么优雅,

2017-01-19 21:54:43 818

搜索引擎以及网上免费学术资源的检索

介绍了一下搜索引擎的工作原理和组成部分,以Google和百度为代表介绍了搜索引擎的高级检索功能,以及搜索引擎非常强大的最常用的八条高级检索命令,最后对网上免费学术资源网站进行了介绍。

2015-09-22

空空如也

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

TA关注的人

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