自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 收藏
  • 关注

原创 最近一个月的面试记录总结

记录一下最近面试后的一些问题。其实个人很享受面试的过程,一方面可以让自己发现知识的盲区和漏洞,查缺补漏,另一方面,跟面试官的交流也让人受益匪浅。很幸运遇到了一些非常好的面试官,指出了我的不足,也给予了我鼓励,让我找到接下来学习的方向。其实现在有点迫不及待想实习参与真正的项目学些激动人心的技术啦,面试久了也有点倦怠,感觉笔试面试让自己有点不能静下心来学习想学的技术。希望自己可以进入心仪的公司,不

2017-04-03 21:56:07 1795

原创 Dubbo框架学习笔记(四)

服务消费过程上图是服务消费的主过程:首先ReferenceConfig类的init方法调用Protocol的refer方法生成Invoker实例(如上图中的红色部分),这是服务消费的关键。接下来把Invoker转换为客户端需要的接口(如:HelloWorld)。Spring是如何识别dubbo的那些自定义标签的?Spring为了支持用户自定义类加载到Spri

2017-04-03 20:57:54 1454

原创 Dubbo框架学习笔记(三)

Dubbo源码地址:https://github.com/alibaba/dubboDubbo开发指南:http://dubbo.io/Developer+Guide-zh.htmDubbo服务发布发布活动图:服务发布方在spring的配置文件中配置如下:上面是在spring中配置的服务的具体实现,是spring中的一个普通的bean。

2017-04-03 20:46:12 684

原创 Dubbo框架学习笔记(二)

Dubbo框架设计一共划分了10个层,而最上面的Service层是留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层。图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口, 位于中轴线上的为双方都用到的接口- config,配置层,对外配置接口,以ServiceConfig, ReferenceConfig为中心,可以直接new配置类,也可

2017-04-03 20:30:07 517

原创 Dubbo框架学习笔记(一)

关于RPCRPC(Remote Procedure Call Protocol)——远程过程调用协议。它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC采用客

2017-04-03 20:26:06 590

原创 常用排序算法总结 JAVA代码

排序算法:排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序可以分为以下几类:插入排序:直接插入排序(稳定)、二分法插入排序(稳定)、希尔排序(不稳定)。选择排序:简单选择排序(不稳定)、堆排序(不稳定)。交换排序:冒泡排序(稳定)、快速排序(不稳定)。归并排序

2017-03-18 11:40:12 393

转载 Java反射机制

什么是反射Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能够自描述和自控制。这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。在Java中的反射机制,被称为Refle

2017-03-15 10:14:51 254

原创 编程珠玑 笔记

第一章:位图Bitmap输入:所输入的是一个文件,至多包含n个正整数,每个正整数都要小于n,这里n=10^7。如果输入时某一个整数出现了两次,就会产生一个致命的错误。这些整数与其它任何数据都不关联。输出:以增序形式输出经过排序的整数列表。约束:大概有1MB的可用主存,但可用磁盘空间充足。运行时间至多允许几分钟,10秒钟是最适宜的运行时间。如果主存容量不是严苛地限制在1MB,比如

2017-03-14 17:21:27 572

原创 Hadoop学习

初识HadoopHadoop主要由两个部分构成:HDFS分布式文件系统MapReduce分布式数据分析处理系统HDFS解决大数据时代单磁盘存储数据过大,读取缓慢问题。适用场景一次写入,多次读取(查询)。不支持并发写入、修改。运行在普通硬件上适用于高吞吐量应用,不适用于低时间延迟(几十毫秒内)应用不适用于大量小文件,文件系统所能存储的文件总数受限于na

2017-03-14 12:08:44 670

原创 Morris遍历

Morris算法,该算法的时间复杂度也是O(N),但是空间复杂度却能达到最优的O(1)。下面根据二叉树的三种遍历方式详细介绍Morris算法。树的节点定义如下:[java] view plain copypublic class TreeNode {      int val;          TreeNode left;   

2017-03-05 10:27:09 658

原创 Dijkstra 算法

Dijkstra 算法Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。问题描述:在无向图 G=(V,E) 中,假设每条边

2017-03-02 11:26:15 387

转载 Hibernate

1.核心类加载配置文件1.创建SessionFactory Configuration接口的作用是对Hibernate进行配置 以及对他进行启动 在Hibernate的启动过程中 Configuration类的实例首先定位映射文档的位置 读取这些配置 然后创建一个SessionFactory对象    一个org.hibernate.cfg.Configuration实例代

2017-03-01 12:55:47 337

转载 Node.js 笔记(一) nodejs、npm、express安装

http://blog.csdn.net/haidaochen/article/details/7257655Windows平台下的node.js安装直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了测试安装是否成功:在命令行输入 node –v 应该可以查看到当前安装的nodejs版本号简单的例子写

2017-02-28 15:14:53 1015

转载 web.xml中关于Servlet、Filter、Listener的配置

http://blog.csdn.net/doupei2006/article/details/7939502(一)web.xml不同元素的加载顺序1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这

2017-02-28 15:12:09 265

原创 web.xml的filter执行顺序导致的乱码

=发现引起bug的原因是web.xml的下面几行:            SecurityFilter        *.do                CharacterEncoding        *.do                CharacterEncoding        *.jsp    根据servle

2017-02-28 15:11:30 435

原创 Redis增删改查

添加:命令行: set key valuejedis:  jedis.set(key,value)删除del keyjedis.del(key)查找get keyjedis.get(key)设置多个键值对redis.mset("name","liu","age","22","qq","1111")import ja

2017-02-28 15:10:36 2046

原创 Windows下Nginx命令

在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动、停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍。1、启动:C:\server\nginx-1.0.2>start nginx或C:\server\nginx-1.0.2>nginx.exe注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他

2017-02-28 15:09:41 301

原创 JSON

什么是 JsonJSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集。

2017-02-28 15:08:49 287

原创 ldaptemplate 查询

最近利用空闲时间研究了一把LDAP,然后用spring进行了一些编程尝试,通过spring的LdapTemplate可以很方便的进行LDAP的CRUD操作。如果你不清楚啥是LDAP的话,可以查询相关资料后再看此文。一般来说LDAP可以用来作为一个用户中心,围绕LDAP可以部署一些应用来共享相同的账号,这个在企业管理中是非常有帮助的,因为企业的内部应用可能是几个到几十个,员工如果有统一的账号密码,那

2017-02-28 15:07:48 3016

原创 JPA

http://blog.csdn.net/rdarda/article/details/6426031JPA(Java Persistence API )也就是java储存数据API,提供了更为便捷的存储数据的接口,当然在进行一些复杂及查询操作时需要使用Java Persistence query language,这个和sql基本一样,只是需要遵循另一些语法规则,可以参考http://d

2017-02-28 15:07:03 284

原创 LDAP相关

http://qtlkw.iteye.com/blog/1132847  用LDAP牵涉到的几个概念,Context,entry/object,filter.Attribute   Context:上下文,我的理解是相当与文件系统的中的目录(JNDI的Naming Service是可以用操作系统的文件系统的).   entry/object:一个节点,相当与文件系统中的目录或文件. 

2017-02-28 15:06:34 230

原创 《Effective Java》 读书笔记

第2章 创建与销毁对象第1条:考虑用静态方法代替构造器获取实例的方法:公有构造器;公有的静态工厂方法静态工厂方法优势:有名称;不必在每次调用它们时候第一创建一个新对象;可以返回原返回类型的任何子类型的对象。在创建参数化类型实例的时候,它们使代码更加简洁静态工厂方法缺点:类如果不含公有的或者受保护的构造器,就不能被子类化与其他的静态方法实际上没有任何区别

2017-02-28 15:05:28 317

原创 《大型网站技术架构》 读书笔记

第一章初始阶段:都在一台服务器上。应用服务和数据服务分离应用服务器:更快更强大的CPU数据库服务器:更快的硬盘、更大的内存文件服务器:更大的硬盘使用缓存改善网站性能二八定律——>把集中访问的一小部分数据缓存在内存中缺点:单一应用服务器能处理的请求有限。应用服务器是瓶颈使用应用服务器集群改善网站的并发能力

2017-02-28 15:03:40 989

原创 《斯坦福极简经济学》读书笔记

需求弹性:需求量变Conflicting modification on 2017年1月28日 下午1:47:50:琼·罗宾逊:研究经济学的理由就是“为了避免被经济学家欺骗”很多经济取舍都有一个特色:它能帮助某些人,却同时伤害了其他人。经济学家关心的是统计受到伤害或帮助的所有人,而不只是新闻报道里的几张脸孔。看不见的手:你在追求自己利益时,可能也会给别人带来好处。

2017-02-28 15:02:56 3521

原创 《设计模式之禅》读书笔记

创建类模式 工厂方法模式:http://blog.csdn.net/jason0539/article/details/23020989意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。适用性:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个

2017-02-28 15:01:42 520

原创 高级JS内容——JavaScript高级程序设计笔记

安全的类型检测 由于原生数组的构造函数名与全局作用域无关,因此使用toString()就能保证返回一致的值。利 用这一点,可以创建如下函数: function isArray(value){ return Object.prototype.toString.call(value) == “[object Array]”; } 同样,也可以基于这一思路来测试某个值是不是原生函数或正则表达式

2015-08-22 02:35:06 391

原创 AJAX——JavaScript高级程序设计笔记(16)

XMLHttpRequest 对象 function createXHR(){ if (typeof XMLHttpRequest != "undefined"){ return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined"){ if (typeof arguments.callee.activeX

2015-08-22 02:09:13 401

原创 JSON——JavaScript程序设计笔记(15)

第20 章 JSONJSON可以用来表示简单值JSON用来表示对象 { “name”: “Nicholas”, “age”: 29 } 对象的属性必须加双引号,这在JSON 中是必需的。属性的值可以是简单值,也可以是复杂类型值,因 此可以像下面这样在对象中嵌入对象: { “name”: “Nicholas”, “age”: 29, “school”: { “name”:

2015-08-20 02:03:58 340

原创 错误处理与调试——JavaScript高级程序设计笔记(14)

第17章 错误处理与调试IE 唯一一个在浏览器的界面窗体(chrome)中显示JavaScript 错误信息的浏览器。在发生JavaScript 错误时,浏览器左下角会出现一个黄色的图标,图标旁边则显示着”Error on page”(页面中有错误)。 假如不是存心去看的话,你很可能不会注意这个图标。双击这个图标,就会看到一个包含错误消息的对 话框,其中还包含诸如行号、字符数、错误代码及文

2015-08-20 00:11:25 420

原创 HTML5 脚本编程——JavaScript高级程序设计笔记(13)

第16章 HTML5脚本编程跨文档消息传送(cross-document messaging),有时候简称为XDM,指的是在来自不同域的页面间 传递消息。例如,www.wrox.com域中的页面与位于一个内嵌框架中的p2p.wrox.com 域中的页面通信。 在XDM 机制出现之前,要稳妥地实现这种通信需要花很多工夫。XDM 把这种机制规范化,让我们能 既稳妥又简单地实现跨文档通信。pos

2015-08-19 21:08:32 510

原创 Canvas——JavaScript高级程序设计笔记(12)

第15章 Canvas基本用法要使用<canvas>元素,必须先设置其width 和height 属性,指定可以绘图的区域大小。出现在 开始和结束标签中的内容是后备信息,如果浏览器不支持元素,就会显示这些信息。下面就 是元素的例子。 <canvas id="drawing" width=" 200" height="200">A drawing of something.</canvas>

2015-08-19 19:03:05 286

原创 EventUtil

<script type="text/javascript">var EventUtil = {addHandler: function(element, type, handler){if (element.addEventListener){element.addEventListener(type, handler, false);} else if (element.attachE

2015-08-19 16:19:20 445

原创 表单脚本——JavaScript高级程序设计笔记(11)

第14章 表 单 脚 本取得<form>元素引用的方式有好几种。其中最常见的方式就是将它看成与其他元素一样,并为其 添加id 特性,然后再像下面这样使用getElementById()方法找到它。 var form = document.getElementById(“form1”); 其次,通过document.forms 可以取得页面中所有的表单。在这个集合中,可以通过数值索引或 na

2015-08-19 16:17:51 419

原创 事件——JavaScript高级程序设计笔记(10)

第13章 事件IE 的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档) 事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。事件捕获的用意在于在事件到达预定目标之前捕获它如果想要使用双引号,那么就要将代码改写成如下所示: <input type="bu

2015-08-19 15:28:35 313

原创 DOM 扩展——JavaScript高级程序设计笔记(9)

第十章 DOM扩展选择符APIquerySelector()方法接收一个CSS 选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null。 //取得body 元素 var body = document.querySelector("body"); //取得ID 为"myDiv"的元素 var myDiv = document.querySelector("#myDiv"

2015-08-19 01:57:28 296

原创 DOM——JavaScript高级程序设计笔记(8)

第十章 DOMNode类型appendChild(),用于向childNodes 列表的末尾添加一个节点。添加节点后,childNodes 的新增节点、父节点及以前的最后一个子节点的关系指针都会相应地得到更新。更新完成后,appendChild()返回新增的节点如果需要把节点放在childNodes 列表中某个特定的位置上,而不是放在末尾,那么可以使用insertBefore()方法。这个方法接

2015-08-18 20:27:56 276

原创 JavaScript高级程序设计笔记(7)

第九章 客户端检测不到万不得已,就不要使用客户端检测。只要能找到更通用的方法,就应该优先采用更通用的方法。能力检测 if (object.propertyInQuestion){ //使用object.propertyInQuestion }怪癖检测(quirks detection)的目标是识别浏览器的特殊行为。但与能力检测确认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷

2015-08-18 13:57:13 368

原创 JavaScript高级程序设计笔记(6)

第八章 BOMwindow 对象 所有在全局作用域中声明的变量、函数都会变成window 对象的属性和方法如果页面中包含框架,则每个框架都拥有自己的window 对象,并且保存在frames 集合中。在frames 集合中,可以通过数值索引(从0 开始,从左至右,从上到下)或者框架名称来访问相应的window 对 象。每个window 对象都有一个name 属性,其中包含框架的名称。top

2015-08-17 23:17:53 311

原创 JavaScript高级程序设计笔记(5)

第七章 函数表达式,定义函数的方式有两种:一种是函数声明,另一种就是函数表达式。 函数声明: sayHi(); function sayHi(){ alert(“Hi!”); } 不会报错,因为在代码执行之前会先读取函数声明。 函数表达式: var functionName = function(arg0, arg1, arg2){ //函数体 };编写递归函数时 var

2015-08-17 18:16:43 286

原创 JavaScript高级程序设计笔记(4)

第六章 面向对象的程序设计对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说对象是一组没有特定顺序的值。我们可以把ECMAScript 的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数。创建对象 var person = { name: "Nicholas", age: 29, job: "Software Engineer", s

2015-08-15 23:34:29 293

空空如也

空空如也

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

TA关注的人

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