自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 内存分配全面浅析

本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在...

2014-03-30 22:36:31 111

原创 解析Hadoop新一代MapReduce框架Yarn

更快、更强——解析Hadoop新一代MapReduce框架Yarn摘要:本文介绍了Hadoop 自0.23.0版本后新的MapReduce框架(Yarn)原理、优势、运作机制和配置方法等;着重介绍新的Yarn框架相对于原框架的差异及改进。编者按:对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不...

2014-02-16 16:31:17 317

原创 模版方法模式

模版方法(Template Method)模式:属于类的行为模式,它的用意是定义一个操作中的算法的骨架,将一些操作延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。模版方法模式的类图如下:模版方法模式有两个角色:1、抽象模版(Abstract Template)角色:定义了一个或多个抽象操作,同时定义了一个模版方法,它是一个具体的方法,作为抽象...

2013-08-27 08:08:36 108

原创 观察者模式

观察者(Observer)模式:是对象的行为模式,又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听(Source/Listener)模式或者从属(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观...

2013-08-27 08:07:44 104

原创 责任链模式

责任链(Chain of Responsibility)模式:责任链模式是对象的行为模式。使多个对象都有机会处理请求,从而避免请求的发送者和接受者直接的耦合关系。将这些对象连成一条链,沿着这条链传递该请求,直到有一个对象处理它为止。责任链模式强调的是每一个对象及其对下家的引用来组成一条链,利用这种方式将发送者和接收者解耦,类图如下:通过上图可以看出责任链模式有两个角色:抽象处理者(...

2013-08-27 08:07:04 99

原创 命令(Command)模式

命令(Command)模式:又称Action模式或者Transaction模式。它属于对象的行为模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和撤销功能。GoF命令模式结构图如下:   命令模式是有以下角色:抽象命令(Command)角色:声明执行操作的接口。具体命令(Conc...

2013-08-27 08:06:02 122

原创 备忘录模式

备忘录(Memento)模式:又叫做快照模式(Snapshot Pattern)或Token模式,属于行为模式。在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式有如下结构图:备忘录模式涉及角色如下:发起人(Originator):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,...

2013-08-27 08:04:48 96

原创 MySQL权限

一.权限表 mysql数据库中的3个权限表:user 、db、 host 权限表的存取过程是:1)先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;2)通过权限验证,进行权限分配时,按照user?db?tables_priv?columns_priv的顺序进行分配。即先检查全局权限表user...

2013-08-25 23:16:05 79

原创 Java性能优化技巧

=================================== 可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方 面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。 =================================== 提纲: ====...

2013-08-25 22:42:02 68

原创 java程序性能优化

一、避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 例子:import java.util.vector;class cel {    void method (vector vector) {        for (int i = 0; i < v...

2013-08-25 22:40:24 61

原创 oauth2开放认证协议原理及案例分析

之前翻译过一篇 OAuth认证协议原理分析及使用方法,虽然 OAuth2还没有正式发布,但是国内外的OAuth2的采用情况几乎要完全替代掉OAuth1.1了。像淘宝、腾讯、人人网、百度开放平台就已经采用Oauth2,新浪微博也发来邮件说是要很快上马OAuth2,彻底替换掉OAuth1.1。目前OAuth2到了v20草稿阶段,最新的版本是 2011年7月25号发布的,协议变化还是很快的,所以看到国...

2013-08-25 22:32:56 102

原创 OAuth2.0

前言OAuth 1.0已经在IETF尘埃落定,编号是RFC5849这也标志着OAuth已经正式成为互联网标准协议。OAuth 2.0早已经开始讨论和建立的草案。OAuth2.0 很可能是下一代的“用户验证和授权”标准。现在百度开放平台,腾讯开放平台等大部分的开放平台都是使用的OAuth 2.0协议作为支撑。OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一...

2013-08-25 17:19:28 79

原创 前端性能优化最佳实践

如今浏览器能够实现的特性越来越多,并且网络逐渐向移动设备转移,使我们的前端代码更加紧凑,如何优化,就变得越来越重要了。 开发人员普遍会将他们的代码习惯优先于用户体验。但是很多很小的改变可以让用户体验有个飞跃提升,所以任何一点儿小小的优化都会提升你网站的性能。 前端给力的地方是可以有许多种简单的策略和代码习惯让我们可以保证最理想的前端性能。我们这个系列的主题就是要告诉你一些前端性能优化的最佳实践,...

2013-08-24 22:50:39 68

原创 MySQL字符串处理函数

对于针对字符串位置的操作,第一个位置被标记为1。ASCII(str)返回字符串str的 最左面字符的ASCII代码值。如果str是空字符串, 返回0。如果str是NULL,返回NULL。mysql> select ASCII('2'); -> 50mysql> select ASCII(2); -> 50mysql...

2013-08-24 19:40:23 87

原创 linux tar 压缩解压命令

linux tar 压缩解压命令 范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩![root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩[root@linux...

2013-08-24 18:41:23 99

原创 Linux下Gvim 的基本操作

Linux下Gvim 的基本操作在命令方式下,所有命令以“:”开始,所键入的字符系统均作为命令处理在命令方式下,按下i就会进入插入模式,用户输入的可视字符都添加到文件中,按下Esc键,就回到命令状态光标命令:k,j,h,l-----上下左右移动光标nG-------跳转命令。n为行数,该命令立即跳转到指定的行Ctrl+G -----报告光标所在位置的行数和列数w,b----- 使光标向前或者向后...

2013-08-24 18:37:47 218

原创 基于消息的分布式架构

案例分析:基于消息的分布式架构DEC 27TH, 2012 | COMMENTS美国计算机科学家,LaTex的作者Leslie Lamport说:“分布式系统就是这样一个系统,系统中一个你甚至都不知道的计算机出了故障,却可能导致你自己的计算机不可用。”一语道破了开发分布式系统的玄机,那就是它的复杂与不可控。所以Martin Fowler强调:分布式调用的第一原则就是不要分布式。...

2013-08-22 08:21:02 83

原创 程序员必须掌握的linux知识

一般大型J2EE应用都在建构在linux环境下的。开发环境下我们可以通过samba映射成本地的网络驱动器,直接在windows环境下进行编程调试。但是最后的发布还是要到linux环境,同时我们对网上web服务器和数据库服务器的应用管理(比如自动脚本发布等),应用监控(web服务是否正常、mysql数据库的使用情况)、系统监控(监控磁盘空间的使用情况等)都要求程序员熟悉必要的linux知识。   ...

2013-06-30 16:38:42 105

原创 Java NIO系列教程

原文地址:http://tutorials.jenkov.com/java-nio/index.html 作者:Jakob Jenkov   译者:郭蕾等    校对:方腾飞,丁一等 Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: C...

2013-06-27 08:20:25 86

原创 Spring整合JMS——基于ActiveMQ实现

1.1     JMS简介       JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。对于消息的传递有两种类型,一种是点对点的,即一个生...

2013-06-25 08:33:26 63

原创 java内部类有哪些好处

第一个好处:隐藏你不想让别人知道的操作,也即封装性。public interface Contents {int value();}public interface Destination {String readLabel();}public class Goods {private class Content implements Contents {private int i =...

2013-06-25 08:30:27 113

原创 计算机科学中最重要的32个算法

奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路...

2013-06-23 12:49:37 58

原创 性能是一个多方面综合的结果,遵循短板理论

性能是一个多方面综合的结果,遵循短板理论。系统中任何一个部分成为性能瓶颈,都会影响整个系统的性能表现  对于WEB应用,首先第一步是响应HTTP请求,即使后端的性能再好,如果在这里出现瓶颈,整个系统的性能也会很差,类似于一个很大的水瓶,但是入水口很小。在这个环节,可以通过DNS分流,负载均衡等方式改善。另外,现在高性能的HTTP服务器(Nginx、node.js等)本身,由于采用了事件通...

2013-06-17 07:59:41 98

原创 Java常用的性能测试工具记录

参考工具:1.VisualVMVisualVM是一个资源分析工具,一直从JDK 6更新到7,它默认内存和CPU的监视,它可以告诉你哪个类和方法消耗资源,但它不会显示代码流程。 2.JProfilerJProfiler很容易安装,并且通过向导,你可以选择应用服务器用来运行应用程序。我不得不选择使用JPofiler应用服务器的主目录,以及向导生成的一个单独的启动脚本。然后运行服务器...

2013-06-17 07:46:53 85

原创 Apache的httpd.conf文件配置详解本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.cod...

Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现。下面让我们来看看httpd.conf的内容,它主要分成3大部分:Section 1:Global EnvironmentSection 2:'Main' server configurationphpma.comSection 3:Virtual Hosts...

2013-05-26 13:08:09 581

原创 解析智能推荐系统开发中十大关键要素

解析智能推荐系统开发中十大关键要素分页浏览|全文浏览2013-04-09 05:21    【互联网分析 转载】      评论(3)本文导航第1页:1 充分运用显式\隐式反馈数据第2页:3 重视时间因素第3页:5 SNS关系的使用第4页:7 推荐结果的展现方式不可忽略第5页:10 大数据挖掘和性能优化返回分页阅读文章1 充分运用显式\隐式反馈数据    亚马逊的CEO Jeff Bezos曾经...

2013-05-26 13:07:18 141

原创 需求个性化推荐原因

[size=large][b]为什么要研究个性化推荐[/b][/size]1) [b]从行业趋势来看。[/b]信息大爆炸使得信息极大丰富,传统获取信息的手段已经不能很好地解决这种环境下的信息获取需求,推荐和个性化技术,作为解决信息爆炸问题的一个方法,取得了不错的效果。在业内的各个公司的应用也越来越多,这反过来也促进了大家对推荐的热情。2) [b]从技术本身来看。[/b]推荐涉及到的技术...

2013-04-07 08:41:53 380

原创 建议的开源项目源码阅读习惯

开源项目已阅读了不少,总结下来按照下面的steps来操作比较恰当: 1)阅读features。以此来搞清楚该项目有哪些特性 2)思考。想想如果自己来做有这些features的项目该如何构架 3)下载并安装demo或sample。通过demo或sample直观地感受这个项目 4)搜集能得到的doc,尽快地掌握如何使用这个项目 5)如果有介绍项目架构的文档,通过它了解项目的总体架构,如果没有,通过ap...

2011-08-07 09:50:13 69

原创 Spring 2.0 AOP 与事务配置

Spring 1.0的标准事务配置 先定义一个baseTxService进行基本的事务定义,类型为TransactionProxyFactoryBean。如果service没有基于接口,使用cgilib来实现AOP,定义<property name="proxyTargetClass" value="true"/> 实际的Manager类设置parent=baseTxService,t...

2011-06-22 13:46:46 78

原创 Spring+iBatis+Atomikos实现JTA事务

Atomikos分两个:一个是开源的TransactionEssentials,一个是商业的ExtremeTransactions。TransactionEssentials的主要特征:JTA/XA 事务管理 —— 提供事务管理和连接池不需要应用服务器 —— TransactionEssentials可以在任何Java EE应用服务器中运行,也就是不依赖于任何应用服务器开源 —— Transact...

2011-06-17 15:35:10 53

原创 线程基础

线程不是进程作为有一定开发经验的程序员来说,在java中实现多线程是一件很容易的事情,你只需要将你的类继承Thread类或者实现Runnable接口就可以。其实线程完全可以理解为一个任务。可以同时运行多个任务的程序,就成为多线程程序。然而线程并非进程。进程包括线程,每一个进程都拥有一套自己的变量,而线程间则共享这套变量。从而带来了很多风险,比如最典型的脏数据。这些以后会讨论。线程状态...

2011-03-13 17:23:33 67

原创 分支限界法

分支限界法之布线问题  一、要求:    1、输入电路板区域n*m以及布线的起始位置和结束位置;    2、输出布线方案;    3、可以使用c或者vc实现    二、问题分析及实验原理:    在n*m的方格阵列中存在封锁区域(布线时必须绕开的区域),找到起始位置到目标位置的最短路径。从目标位置开始向起始位置回溯,逐步构造最优解。每次向标记距离比当前方格标记距离少1的...

2011-03-13 17:11:54 136

原创 回溯法

回溯法回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。    1、回溯法的一般描述    可用回溯法求解的问题P,通常要能表达为:对于已知的由n元组(x1,x2,…,xn)组成的一个状态空间E={(...

2011-03-13 17:07:13 51

原创 贪心算法

贪心算法所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。    贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。    贪心算法的基本思路如下:    1.建立数学模型来描述问题。    2.把求解的问题分成...

2011-03-13 17:04:13 139

原创 动态规划法

动态规划法 最优化原理    1951年美国数学家R.Bellman等人,根据一类多阶段问题的特点,把多阶段决策问题变换为一系列互相联系的单阶段问题,然后逐个加以解决。一些静态模型,只要人为地引进“时间”因素,分成时段,就可以转化成多阶段的动态模型,用动态规划方法去处理。与此同时,他提出了解决这类问题的“最优化原理”(Principle of optimality):    “一个过程...

2011-03-13 17:01:55 73

原创 分治算法

分治算法 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……    任何一个可以用计算机求解的问题所需的计算时间都与其规模...

2011-03-13 16:59:19 63

原创 线程 wait()与notify()方法

synchronized(obj) {  while(!condition) {  obj.wait();  }  obj.doSomething();  }  当线程A获得了obj锁后,发现条件condition不满足,无法继续下一处理,于是线程A就wait() , 放弃对象锁.  之后在另一线程B中,如果B更改了某些条件,使得线程A的condition条件满足了,就...

2011-03-13 16:12:13 68

原创 优秀程序员的45个习惯

优秀来自好的习惯。怎样成为优秀的开发人员?图灵公司最近热销的《高效程序员的45个习惯》一书给出了很好的解答,非常值得一读。  这本书的英文原版荣获了有软件奥斯卡之称的Jolt生产效率大奖,在Amazon上也是好评如潮。第一作者Venkat Subramaniam博士是Agile Developer公司创始人,敏捷开发方面的权威人士,精通各种开发技术。第二作者Andy Hunt更是大名鼎鼎的人物...

2011-02-07 17:35:22 70

原创 在Linux下安装MySQL

一、下载编译安装#cd /usr/local/src/#wget http://mysql.byungsoo.net/Downloads/MySQL-5.1/mysql-5.1.38.tar.gz#tar –xzvf mysql-5.1.38.tar.gz ../software/#./configure --prefix=/usr/local/mysql --with-charset=utf8 ...

2011-02-07 17:16:52 81

原创 管理基本命令

1、查看数据库字符集select * from nls_database_parameters;2、查看用户数据库select userenv('language') from dual;3、修改[oracle@pdc oracle]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Fri Jun...

2010-06-19 18:38:37 74

空空如也

空空如也

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

TA关注的人

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