自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 博客已转移至 http://blog.yemou.net/

我所有的博客都已经转移至 http://blog.yemou.net/ ,该网站是一家更加专业的博客网站。欢迎大家一起过去交流

2015-12-14 11:30:12 1266

原创 CGLIB 动态代理的实现

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp92 JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK

2015-12-14 11:21:29 433

原创 【转】Spring AOP 实现之CGLIB

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp91  cglib(Code Generation Library)是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。cglib封装了asm,可以在运行期动态生成新的class。cglib用于AOP,jdk中的proxy

2015-12-14 11:21:24 511

原创 使用spring框架处理编码问题

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp90 我们在开发时,经常要对中文字符进行处理,进行处理中文字符的方式也有很多种,可以转码工具类,设置过滤器进行转码等等。在使用到spring框架时,我们可以直接在web.xml配置文件下,添加如下配置,进行字符的处理(设置过滤器):      encodin

2015-12-14 11:21:18 1389

原创 SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp89SELECT INTO 和 INSERT INTO SELECT 两种表复制语句      Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这

2015-12-14 11:21:13 402

原创 Oracle数据库悲观锁与乐观锁详解

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp88Oracle数据库悲观锁与乐观锁详解Oracle数据库悲观锁与乐观锁是本文我们主要要介绍的内容。有时候为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。数据的锁定分

2015-12-14 11:21:07 13369 1

原创 探索 ConcurrentHashMap 高并发性的实现机制

很不错的一篇文章,值得一看http://www.ibm.com/developerworks/cn/java/java-lo-concurrenthashmap/

2015-12-14 11:21:02 440

原创 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法

并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要

2015-12-14 11:20:56 1090

原创 [转]RMI方式Ehcache集群的源码分析

RMI方式Ehcache集群的源码分析 Ehcache不仅支持基本的内存缓存,还支持多种方式将本地内存中的缓存同步到其他使用Ehcache的服务器中,形成集群。如下图所示: Ehcache支持多种集群方式,下面以RMI通信方式为例,来具体分析一下Ehcache集群的源码。 1服务ProviderEhcache支持两种服务发现方式:一种是通过广播的方式

2015-12-14 11:20:50 851

原创 [转]Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp84Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandomQ:Ran

2015-12-14 11:20:43 673

原创 [转]Java7中的ForkJoin并发框架初探(下)—— ForkJoin的应用

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp86 前两篇文章已经对Fork Join的设计和JDK中源码的简要分析。这篇文章,我们来简单地看看我们在开发中怎么对JDK提供的工具类进行应用,以提高我们的需求处理效率。Fork Join这东西确实用好了能给我们的任务处理提高效率,也为开发带来方便。但Fork

2015-12-14 11:20:37 352

原创 [转]Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp85 根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给出了Fork Join的实现。在Java SE 7的API中,多了ForkJoinTask、ForkJoinPool、ForkJoinWorkerThread、RecursiveAction、Re

2015-12-14 11:20:31 334

原创 [转]Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp83这篇我们来简要了解一下JavaSE7中提供的一个新特性 —— Fork Join 框架。0. 处理器发展和需求背景回想一下并发开发的初衷,其实可以说是有两点,或者说可以从两个方面看。对于单核的处理器来说,在进行IO操作等比较费时的操作进行时,如果执行任

2015-12-14 11:20:25 340

原创 [转] Java se 7新特性研究(二)

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp82 今天主要研究Java se 7中异常处理的新功能.从今天开始正在将jdk7的说法改为java se 7跟oracle官网的一致一、新增了try-with-resource 异常声明在JDK7中只要实现了AutoCloseable或Closeable接口

2015-12-14 11:20:19 370

原创 [转]Java se 7 最新特性研究(一)

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp81 从2006到现在等待了多年的jdk7终于发布了.这里将对它的一些新特做一些初步的研究:jdk7 相对于jdk6主要在以一几个方面有了非常显著的改进的提升:首先分析其对java语言本身的改进:二进制表示的支持(Binary Literals)的支持。

2015-12-14 11:20:13 392

原创 B树及B+树

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp80B树及B+树一、B树1、B树的定义    B树是一种平衡的多分树,通常我们说m阶的B树,它必须满足如下条件:    (1)每个结点至多有m个子结点;    (2)除根结点和叶结点外,其它每个结点至少有 个子结点;    (3)若根结点不是叶子结点,则

2015-12-14 11:20:07 448

原创 CountDownLatch和CyclicBarrier 特点比较

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp79 并发编程中的CountDownLatch和CyclicBarrier 继上篇文章 http://grefr.iteye.com/admin/blogs/2020812(CyclicBarrier介绍)CountDownLatch和CyclicBarri

2015-12-14 11:20:02 317

原创 Hash表分析

http://baike.baidu.com/link?url=Ua74895uGf1NuPxB4pawmuAXedi427jJvM6aSLh_V1-23ptlMc7XIrr_cylIBn5d

2015-12-14 11:19:56 366

原创 聊聊并发-Java中的Copy-On-Write容器

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp78 聊聊并发-Java中的Copy-On-Write容器 Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改

2015-12-14 11:19:51 534

原创 利用HTML5的window.postMessage实现跨域通信

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp77 HTML5的window.postMessage简述postMessage是html为了解决跨域通信,特别引入的一个新的API,目前支持这个API的浏览器有:Firefox, IE8+, Opera, Safari, Chrome。postMessage允

2015-12-14 11:19:45 681

原创 vim代码粘贴缩进混乱的问题[Linux]

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp76 直接在vim插入模式下粘贴:直接粘贴,剪贴板上的每个字符都相当于手动输入,再加上vim的自动缩进,所以缩进就会累积如果vim还支持自动连续注释,如上图,每行代码都自动加上了注释解决办法:在粘贴前先设置进入粘贴插入模式,即不会自动缩进和连续注

2015-12-14 11:19:39 1896

原创 window.onerror 应用实例

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp75 window.onerror = function(sMessage,sUrl,sLine){};onerror函数的三个参数用于确定错误确切的信息,代表的意思依次为:错误信息;发生错误的文件;发生错误的行号。示例:window.onerror

2015-12-14 11:19:34 250

原创 js文件引用方式及其同步执行与异步执行

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp74 任何以appendChild(scriptNode) 的方式引入的js文件都是异步执行的 (scriptNode 需要插入document中,只创建节点和设置 src 是不会加载 js 文件的,这跟 img 的与加载不同 )   html文件中的标签中的代码或

2015-12-14 11:19:28 2276

原创 js变量以及其作用域详解

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp73 一、变量的类型   Javascript和Java、C这些语言不同,它是一种无类型、弱检测的语言。它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量。例如:i=100;//Number类型 i="variabl

2015-12-14 11:19:22 396

原创 HashMap 底层算法分析

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp72Hash算法HashMap使用Hash算法,所以在解剖HashMap之间,需要先简单的了解Hash算法,Hash算法一般也成为散列算法,通过散列算法将任意的值转化成固定的长度输出,该输出就是散列值,这是一种压缩映射,也就是,散列值的空间远远小于输入的值空间。简单的

2015-12-14 11:19:17 460

原创 Java 类的热替换 —— 概念、设计与实现

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp71 Java 类的热替换 —— 概念、设计与实现构建基于 Java 的在线升级系统对于许多关键性业务或者庞大的 Java 系统来说,如果必须暂停系统服务才能进行系统升级,既会大大影响到系统的可用性,同时也增加了系统的管理和维护成本。因此,如果能

2015-12-14 11:19:11 309

原创 CyclicBarrier和CountDownLatch介绍

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp70CyclicBarrier介绍 (一)一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该

2015-12-14 11:19:05 245

原创 JS 正则表达式

正则表达式中的特殊字符字符含意\做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。^匹配一个输入或一行的

2015-12-14 11:18:59 228

原创 Http get方式url参数长度以及大小

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp69众所周知, 传递小量参数(在没有其他原因,例如隐藏参数值的情况下)推荐使用GET方法,传递大量参数推荐使用POST方法。原因是什么呢?原因是传说中GET方法是通过URL来传递,而URL的长度是受限的,而POST方法采用流的方式,理论上可以传递的容量是没有限制的。

2015-12-14 11:18:54 9100

原创 Cassandra HBase和MongoDb性能比较

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp68这是一篇基于亚马逊云平台上对三个主流的NoSQL数据库性能比较,在读写两个操作不同的组合情况下性能表现不同。横坐标是吞吐量,纵坐标是延迟,这是一对矛盾,吞吐量越大,延迟越低,代表越好。1. 纯粹插入,Cassandra领先,见下图:2.WorkloadA: 读修改操作各

2015-12-14 11:18:48 513

原创 JS类的封装及实现代码

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp67JS类的封装及实现代码js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类.js并不是一种面向对向的语言, 没有提供对

2015-12-14 11:18:43 2664

原创 js script放在head和body里面的区别

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp66     java script放在head和body的区别  1,在head中时,所代表的functions只加载而不执行,执行是在某一事件触发后才开始。 2,在body中时,直接加载并执行典型的区别:如果有不在函数中的执行语

2015-12-14 11:18:37 3082

原创 java 静态方法分析

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp65 1、大家都以为“实例方法需要先创建实例才可以调用,比较麻烦,静态方法不用,比较简单” 事实上如果一个方法与他所在类的实例对象无关,那么它就应该是静态的,而不应该把它写成实例方法。所以所有的实例方法都与实例有关,既然与实例有关,那么创建实例就是必然的步骤,没有麻

2015-12-14 11:18:31 312

原创 js并行加载,顺序执行

js并行加载,顺序执行运行脚本或加载外部文件时,会阻塞页面渲染,阻塞其他资源的加载。如果页面中需要加载多个js文件,在古老浏览器中性能会比较糟糕。 因此有了最原始的优化原则:把脚本放在底部。如何实现js非阻塞、并行加载,甚至能保持执行顺序呢?各浏览器表现如何?站在巨人的肩膀上,Kyle Simpson、Nicholas C. Zakas和Steve Souders对此有过总结和方案。

2015-12-14 11:18:26 4156

原创 sql优化策略之索引失效情况二

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp63 接第一篇索引失效分析:http://grefr.iteye.com/blog/19884461.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 n

2015-12-14 11:18:20 621

原创 js操作cookie 使用详解

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp62 JavaScript中的另一个机制:cookie,则可以达到真正全局变量的要求。 cookie是浏览器 提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身

2015-12-14 11:18:15 6222

原创 CDN架构以及原理分析

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp61 在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度,从最接近用户的地方获得所需的信息,彻底解决网络拥塞,提高响应速度,是目前大型网站使用的流行的

2015-12-14 11:18:09 13325

原创 RMI,RPC,SOAP对比分析

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp60 1、RMI    使用java的程序员,对于RMI(RemoteMethod Invoke,远程方法调用)一定不陌生,在java中,为了在分布式应用开发时,能够方便调用远程对象,java提供了RMI的API。在 RMI 中,远程对象按照好象它是本地行事,客

2015-12-14 11:18:03 324

原创 Http和Socket详解

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp59 这不是同一层的协议 socket是一个针对TCP和UDP编程的借口,你可以借助它建立TCP连接等等。而TCP和UDP协议属于传输层 而http是个应用层的协议,它实际上也建立在TCP协议之上。 1、TCP连接要想明白S

2015-12-14 11:17:58 340

原创 RMI和socket详解

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp58 一般来说,基于CS(client-server)软件架构的开发技术有很多种。比较常用的有:基于socket的网络编程、RPC、基于Java技术的RMI(当然C#也有类似技术)、CORBA等。在这里我们只是对基于socket的网络编程与RMI作个对比,有助于我们

2015-12-14 11:17:52 1191

空空如也

空空如也

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

TA关注的人

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