Java
Markooa
这个作者很懒,什么都没留下…
展开
-
JUnit+Mockito单元测试
一、前言1、单元测试单元测试是指对软件中的最小可测试单元进行检查和验证。2、JUnit与MockitoJUnit 是单元测试框架。Mockito 与 JUnit 不同,并不是单元测试框架(这方面 JUnit 已经足够好了),它是用于生成模拟对象或者直接点说,就是”假对象“的工具。二、环境搭建1.9.01.4.124.111.6.1原创 2016-04-07 19:59:46 · 5673 阅读 · 0 评论 -
ZooKeeper实战(四)处理Zookeeper的session过期问题
Session连接Zookeeper客户端和服务端维持一个长连接,每隔10s向服务端发送一个心跳,服务端返回客户端一个响应。这就是一个Session连接,拥有全局唯一的session id。Session连接通常是一直有效,如果因为网络原因断开了连接,客户端会使用相同的session id进行重连。由于服务端保留了session的各种状态,尤其是各种瞬时节点是否删除依赖于session是否转载 2014-11-04 13:57:18 · 8561 阅读 · 0 评论 -
ZooKeeper实战(三)基于ZooKeeper的分布式Session实现
1. 认识ZooKeeperZooKeeper——“动物园管理员”。动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而不是像走在原始丛林里,心惊胆颤的被动物所观赏。为了让各种不同的动物呆在它们应该呆的地方,而不是相互串门,或是相互厮杀,就需要动物园管理员按照动物的各种习性加以分类和管理,这样我们才能更加放心安全的观赏动物。回到我们企业级应用系统中,随着转载 2014-11-03 13:54:33 · 584 阅读 · 0 评论 -
特殊字符转义总结
1、文本内容显示在网页中原创 2014-10-16 16:48:08 · 1334 阅读 · 0 评论 -
Hadoop初探:用MapReduce 进行大数据分析
Google 在 2001 年发布图像搜索功能时,只有 2.5 亿索引图像,不到 10 年,这个巨大的搜索功能已经可以检索超过 100 亿个图像了,每分钟有 35 小时的内容上传到 YouTube。据称,Twitter 每天平均处理 5500 万 tweet。今年早些时候,搜索功能每天记录 6 亿条查询记录。这 就是我们讨论大数据的意义所在。关于本系列从 Java 技术首次亮相以来,J转载 2014-11-05 16:03:31 · 1095 阅读 · 0 评论 -
动态代理
package cn.xiaolu;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;/** * 动态代理类使用到了一个接口InvocationHandler和一个代理类Proxy ,这两个类配合使用实现了动态代理的功能。原创 2014-10-21 19:13:38 · 453 阅读 · 0 评论 -
Servlet 3.0笔记之异步请求Facebook BigPipe简单模型实现
当前的前端技术明星为Facebook,相继抛出了Quickling,BigPipe等新鲜概念,引领着前端优化的潮流。果然具有大公司的范儿,适时的回馈给整个开发社群,让全体朝前前进了一小步。超赞!抽空学习了BigPipe,大概相当于分段刷新(flush),强制输出。虽有点旧瓶装新酒的味道,不过前端已经进入了细节为王的阶段,或许在国内已经有人在用,但缺乏分享沟通,或者还不成熟,缺乏关注,缺少重要数转载 2014-08-08 16:15:54 · 889 阅读 · 0 评论 -
Facebook BigPipe实现(Java)
前言: 去年的时候facebook开发工程师分享了了一个在facebook中实现的bigpipe的实现方案,如果您还不了解bigpipe方案解决的问题,请查看这个链接(http://www.facebook.com/note.php?note_id=389414033919) 当时,facebook的开发工程师主要对这个方案的目标,好处,以及总体的实现方法(没有很具体,只是一些思路转载 2014-08-08 15:35:56 · 663 阅读 · 0 评论 -
Maven项目中的jar管理
1、如何既依赖Maven管理依赖,又原创 2014-08-20 19:38:10 · 687 阅读 · 0 评论 -
ZooKeeper实战(五)基于zookeeper的分布式锁实现
工作中需要写一个定时任务,由于是集群环境,自然而然想到需要通过分布式锁来保证单台执行..相信大家都会想到使用zk来实现对应的分布式锁.下面就简单介绍一下几种实现。 准备工作有几个帮助类,先把代码放上来ZKClient 对zk的操作做了一个简单的封装转载 2014-11-04 14:02:25 · 549 阅读 · 0 评论 -
Hadoop数据传输工具sqoop(四)Java远程调用Sqoop进行数据传输
1、Maven配置 org.apache.sqoop sqoop 1.4.52、Java代码@Servicepublic class SqoopTestServiceImpl implements SqoopTestService{ //测试代码 public static void main(String[] args) { tr原创 2014-11-26 19:19:45 · 7957 阅读 · 5 评论 -
用 Hadoop 进行分布式并行编程(四)Java远程调用Hadoop服务
前面几篇都是在Hadoop环境中,使用Hadoop工具进行MapReduce计算。本篇介绍在Java应用中如何利用Hadoop服务进行MapReduce计算。一、安装配置Hadoop1、解压Hadoop$tar zxvf hadoop-1.2.1-bin.tar.gz /usr/local/app/hadoop2、配置Hadoop环境修改/etc/profile信息:e原创 2014-11-26 11:57:41 · 1035 阅读 · 1 评论 -
Maven常用命令
1. maven install 安装安装jar文件到本地库:mvn install:install-file -DgroupId=com.bea.xml -DartifactId=jsr173-ri -Dversion=1.0 -Dpackaging=jar -Dfile=[path to file]安装source.jar文件到本地库:mvn install:install原创 2015-10-20 10:25:14 · 479 阅读 · 0 评论 -
解决 - java.lang.OutOfMemoryError: unable to create new native thread
工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题、分析问题、解决问题。 一、认识问题:首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse 3.4,测试程序:import java.转载 2015-07-02 14:58:10 · 1034 阅读 · 0 评论 -
JVM参数配置与性能调优
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制.32位系统 下,一般限制在1.5G~2G;64为操作系统对内存无限制.我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m.典型设置: java -Xmx3550m -Xms355转载 2015-07-02 14:55:38 · 554 阅读 · 0 评论 -
JVM工作原理简介与性能调优
一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermSize -XX:MaxPermSize 等参数调整其大小。转载 2015-07-02 14:37:02 · 1344 阅读 · 0 评论 -
ActiveMQ入门实例
一、代码结构使用Maven管理代码,导入ActiveMQ的包 org.apache.activemq activemq-core 5.7.0二、openwire协议通信1、Producer:package com.xuwei.activemq;import javax.jms.Connection;import javax.jms.Conne原创 2015-03-20 11:20:00 · 523 阅读 · 0 评论 -
ActiveMQ的几种基本通信方式总结
简介 activemq是JMS消息通信规范的一个实现。总的来说,消息规范里面定义最常见的几种消息通信模式主要有发布-订阅、点对点这两种。另外,通过结合这些模式的具体应用,我们在处理某些应用场景的时候也衍生出来了一种请求应答的模式。下面,我们针对这几种方式一一讨论一下。 基础流程 在讨论具体方式的时候,我们先看看使用activemq需要启动服务的主要过程。 按转载 2015-03-20 10:22:56 · 619 阅读 · 0 评论 -
日志记录的作用和方法
程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态。好的日志记录方式可以提供我们足够多定位问题的依据。日志记录大家都会认为简单,但如何通过日志可以高效定位问题并不是简单的事情。这里列举下面三个方面的内容,辅以代码示例,总结如何写好日志,希望对他人有所启发和帮助:怎样记日志可以方便Troubleshooting程序运行状态可以记哪些应该避免怎样的日志方式怎样记转载 2014-12-01 14:19:31 · 3679 阅读 · 0 评论 -
JAVA NIO 简介
1. 基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2. Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的底层转载 2014-10-21 21:14:28 · 438 阅读 · 0 评论 -
Redis客户端——Jedis使用
本文介绍redis官方推荐的kehuduan原创 2014-06-18 13:31:39 · 1226 阅读 · 0 评论 -
Spring AspectJ注解
一、知识点 要在Spring中注册AspectJ aspect, 只需要将它们声明为IoC容器中的Bean实例就行了。在Spring IoC容器中启用AspectJ,容器将自动为匹配AspectJ aspect的Bean创建代理。 用AspectJ注解编写的aspect只是一个带有@Aspect注解的Java类。通知(Advice)是带转载 2014-01-21 10:10:19 · 782 阅读 · 0 评论 -
IBatis 的缓存机制
原文地址:http://lifei114.javaeye.com/admin/blogs/581795 缓存机制,也是基于 Key-Value 的方式,确定了 Key 的来龙去脉能很好的认识缓存的生存周期。从配置文件解析说起: 01 parser.addNodelet("/sqlMap/cacheModel",new Nodelet() {02 publi转载 2010-06-01 14:10:00 · 2271 阅读 · 0 评论 -
Hibernate缓存管理
1、Cache简介缓存(Cache )是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特定时刻按照缓存中的数据来同步更新数据存储源。缓存的物理介质通常是内存,而永久性数据存储源的物理介质转载 2011-02-19 14:40:00 · 524 阅读 · 0 评论 -
Quartz中cronExpression配置说明
字段 允许值 允许的特殊字符秒 0-59 , - * /分 0-59 , - * /小时 0-23 , - * /日期 1-31 , - * ? / L W C月份 1-12 或者 JAN-DEC , - * /星期 1-7 或者 SUN-SAT , - * ? / L C转载 2011-09-13 16:33:38 · 543 阅读 · 0 评论 -
Java中File,byte[],Object间的转换
一、有两点需要注意: 1、Object 对象必须是可序列化对象 。 2、可序列化的 Object 对象都可以转换为一个磁盘文件;反过来则不一定成立,只有序列 化文件才可以转换为 Object 对象。二、相关的转换方法:import java.io.BufferedOutputStream;import java.io.ByteArray转载 2011-12-12 17:26:30 · 795 阅读 · 0 评论 -
Socket服务器 判断客户端连接断开
sendUrgentDatapublic void sendUrgentData(int data) throws IOException在套接字上发送一个紧急数据字节。要发送的字节是数据参数的八个最低位。紧急字节在对套接字 OutputStream 的所有预先写入之后但在任何以后写入之前发送。参数:data - 要发送的数据字节抛出:IOException - 如果发送数据时发生原创 2011-11-22 17:19:58 · 1410 阅读 · 0 评论 -
解决IE、FF下载时中文名问题
String fileName = request.getAttribute("filename");//如果Tomcat的URIEncoding没有设置为utf-8,则此时fileName为ISO8859_1编码fileName = new String(fileName.g原创 2011-10-18 09:39:10 · 792 阅读 · 0 评论 -
java.lang.ThreadLocal
一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal转载 2011-09-13 18:29:58 · 383 阅读 · 0 评论 -
Java同步机制浅谈――synchronized对代码作何影响?
<br />Java对多线程的支持与同步机制深受大家的喜爱,似乎看起来使用了synchronized关键字就可以轻松地解决多线程共享数据同步问题。到底如何?――还得对synchronized关键字的作用进行深入了解才可定论。<br /> 总的说来,synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和c转载 2010-06-09 17:01:00 · 391 阅读 · 0 评论 -
IBatis 的缓存机制之 Select Query缓存
原文地址:http://lifei114.javaeye.com/admin/blogs/581795 IBatis 的缓存机制之 Select Query缓存 可以按下面的代码在你的 SqlMap.xml 里配置,如下: cacheModelid="users-cache"imlementation="LRU"readOnly="true"serialize="true"转载 2010-06-01 14:12:00 · 1609 阅读 · 0 评论 -
iBATIS缓存的使用方法
转自:http://blog.csdn.net/zhouxianli/archive/2008/07/28/2723485.aspx iBATIS可以在Mapped Statement中使用缓存模型,在内存中缓存常用的数据。属性cacheModel 定义查询 mapped statement 的缓存。每一个查询 mapped statement可以使用不同或相同的cacheModel。以下转载 2010-06-01 14:08:00 · 674 阅读 · 0 评论 -
ibatis 缓存 (cacheModel)详解
cacheModel的属性值等于指定的 cacheModel 元素的 name 属性值。属性 cacheModel 定义查询 mapped statement的缓存。每一个查询 mapped statement 可以使用不同或相同的cacheModel,以下给出个例子。 // [ ]表示可选 select * fro转载 2010-06-25 08:59:00 · 657 阅读 · 0 评论 -
Spring整合EhCache缓存
本文介绍使用EhCache实现页面缓存和对象缓存。一、准备工作1、本文使用Spring整合EhCache,所以保证Spring工程配置正确,可以正常运行2、EhCache官网下载jar包,并添加到工程lib ehcache-core-2.6.7-distribution.tar.gz (核心) ehcache-web-2.0.4-distribution.tar原创 2013-09-13 17:19:52 · 1563 阅读 · 0 评论 -
JAVA NIO之浅谈内存映射文件原理与DirectMemory
JAVA类库中的NIO包相对于IO 包来说有一个新功能是内存映射文件,日常编程中并不是经常用到,但是在处理大文件时是比较理想的提高效率的手段。本文我主要想结合操作系统中(OS)相关方面的知识介绍一下原理。在传统的文件IO操作中,我们都是调用操作系统提供的底层标准IO系统调用函数 read()、write() ,此时调用此函数的进程(在JAVA中即java进程)由当前的用户态切换到内核态,转载 2013-07-30 17:45:40 · 1234 阅读 · 0 评论 -
jni和C++通信中文乱码的问题
首先,需要明确几个关于编码的基本概念:java内部是使用的16bit的unicode编码(utf-16)来表示字符串的,无论英文还是中文都是2字节;jni内部是使用utf-8编码来表示字符串的,utf-8是变长编码的unicode,一般ascii字符是1字节,中文是3字节;c/c++使用的是原始数据,ascii就是一个字节,中文一般是GB2312编码,用2个字节表示一个汉字。转载 2012-06-08 13:54:26 · 724 阅读 · 0 评论 -
继承关系的映射
在Java或.Net类与类之间存在关联、聚集和继承关系。一般来说:关联关系:采用“一对多或一对一”的映射即可;聚集关系:采用“集和映射”,即映射Set,Bag,List,Map继承关系:本文以下详述 因为关系数据库的表之间不存在继承关系,所以Hibernate提供了以下三种对继承关系映射的方法,即在继承关系树中:(1)、每个具体类(非抽象类)对应一个表:此方式中关系数据转载 2011-02-19 13:59:00 · 880 阅读 · 1 评论 -
Hibernate缓存概述
Hibernate的一级缓存:Session的缓存和SessionFactory的内置缓存,不可卸载。Hibernate的二级缓存:SessionFactory的外置缓存,可插拔。一)Session的缓存Session缓存中存放的是数据库中数据的拷贝,在DB中表现为关系数据形式,而在Session缓存中表现为互相关联的对象。在读写DB时,Session会负责这两种数据形原创 2011-02-19 14:21:00 · 639 阅读 · 0 评论 -
osCache缓存对象
1、OSCache是什么? OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存解决方案。2、OSCache的特点 (1) 缓存任何对象:你可以不受限制的缓存部分jsp页面或HTT转载 2010-06-25 09:42:00 · 1115 阅读 · 0 评论 -
osCache JSP_Tags
OSCache comes with a JSP tag library that controls all itsmajor functions. The tags are listed below with descriptions,attributes and examples of use.For instructions on installing OSCache in a web转载 2010-06-25 09:21:00 · 757 阅读 · 0 评论