关闭

深入剖析Guice(Google依赖注入框架)

众所周知的依赖注入框架Spring,但还有一个性能好且轻量的框架Guice,Guice来自Google,且Google的很多产品都是使用的Guice...
阅读(1680) 评论(0)

JAVA中几种常用的RPC框架介绍

RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展。Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等。 1、RMI(远程方法调用) JAVA自带的远程方法调用工具,不过有一定的局限性 2、Hessian(基于HTTP的远程方法调用) 基于HTTP协议传输,在性能方面还不够完美,负载均衡和失效转移依赖于...
阅读(59963) 评论(7)

JAVA解压ZIP文件

import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util....
阅读(1078) 评论(0)

浅谈JAVA的线程安全与性能之间的权衡

1、StringBuffer 与 StringBuilder StringBuffer自JDK1.0就有了,继承自AbstractStringBuilder类,是线程安全的类,推荐在多线程环境下使用; StringBuilder是JDK1.5才加的,多线程环境下不推荐使用,非线程安全的工具类,但是单线程环境下比StringBuffer性能提高很多;StringBuffer的线程安全是用sync...
阅读(457) 评论(0)

详解Spring的声明式事务

事务(Transactional): 在软件开发领域,全有或全无的操作被称作事务,事务具有四个特性:ACID。 A:Atomic 原子性    确保事务中的所有操作全部发生或全部不发生 C:Consistent 一致性    事务的执行结果是确定 I:Isolated 隔离性     事务是彼此隔离的,避免同步读写相同数据 D:Durable 持久性     事务的结果是持久化的 ...
阅读(473) 评论(0)

图解WildFly8.x模块化加载数据库驱动

在上一篇中《图解WildFly8.x配置JNDI数据源》没有说明数据库的驱动是如何设置的,本文以Mysql的驱动设置为例进行详细的补充,主要是利用JBoss的模块化设计思想,让系统启动更快,更充分地利用内存。首先到modules目录增加驱动的包。 module.xml文件的配置如下: 接下来要手动修改standalone.xml配置文件,增加添加的驱动: 配置好后,在后台的图形界...
阅读(786) 评论(0)

深入AOP原理与应用

AOP(Aspect Oriented Programming)就是面向切面编程,也是一种编程思想,接触了JAVA是Spring框架后我才了解AOP,在我的工作中会经常用到,举个存储分层的例子,就像硬盘、内存和CPU中的寄存器,对应的高性能应用系统会有普通数据库、Redis和本地内存: 那么这里的缓存操作我们可以抽出来统一做,这里我们就用到了AOP,切点就是对数据的存取方法,还有就是调用外部...
阅读(1062) 评论(1)

大规模集群环境下的协调者Zookeeper

在大数据和云计算普遍的今天,越来越多的应用使用了Apache下zookeeper这个利器,举几个家喻户小的,像HBase,Kafka,国内阿里巴巴开源的Dubbo等。 首先来了解下zookeeper,原型是Google的Chubby,数据结构是树,我个人理解其实zookeeper也是nosql的一种,是一个非关系型数据库,里面存储的是树结构的数据,包括结点与关系,还有结点上...
阅读(993) 评论(0)

文件断点续传原理与实现

在网络状况不好的情况下,对于文件的传输,我们希望能够支持可以每次传部分数据。首先从文件传输协议FTP和TFTP开始分析, FTP是基于TCP的,一般情况下建立两个连接,一个负责指令,一个负责数据;而TFTP是基于UDP的,由于UDP传输是不可靠的,虽然传输速度很快,但对于普通的文件像PDF这种,少了一个字节都不行。本次以IM中的文件下载场景为例,解析基于TCP的文件断点续传的原理,并用代码实现。...
阅读(2081) 评论(0)

一种拼音分词器的JAVA实现

搜索中的分词器有很多种,包括中文、英文,一般的网站都会有站内搜索功能,也就是对用户输入的内容进行处理,本文对中文的全拼实现了一 个分词器,原理很简单,就是模式匹配。根据中文全拼的特点,即声母和韵母配对,首先列举出所有的声母,再分别列举出所有声母对应的韵母 集,分词的过程就是遍历匹配的过程。具体代码如下: import java.util.ArrayList; public cl...
阅读(1306) 评论(0)

高性能网络框架Netty的TCP拆包、粘包解决方案

简单地说,网络通信时由于TCP会对传输的数据报进行对用户透明的拆分与重新组装,然后将拆分后的分别发送,而我们接收时要获取发送时的数据报,如何再对其拆分与组装,以便于我们能知道报文的意思,这个提取报文的过程就是TCP的拆包与粘包,在我们自己做底层的通信设计时,这是必须要考虑的。结合最近在做一个和通信相关的项目,本文讲几个经典且常用的几种粘包与拆包方法及其在Netty中的实现,Netty是高性能的通信...
阅读(5304) 评论(0)

剖析Jetty的运行原理

之前写过一篇简单使用Jetty的文章,Jetty对于做JAVA Web方面开发的人来说并不陌生,他是一个servlet容器,不过相对Tomcat来说设计的比较简单,而且使用起来也比较简单灵活,我是在学习和使用openfire时接触的Jetty,openfire使用Jetty开发其强大的管理后台。 在我最近的一个项目里我也想用Jetty来开发一个后台管理程序,不过用Jetty来开发后台管理程序的缺...
阅读(2122) 评论(0)

volatile与zookeeper

多线程里的volatile与分布式锁的分析与应用...
阅读(353) 评论(0)

高性能序列化工具Google Protobuf的使用

高性能序列化工具Google Protobuf的使用DEMO...
阅读(1813) 评论(0)

ActiveMQ的简单用法

消息生产者: 消息消费者:...
阅读(638) 评论(0)

基于HTTP的多文件上传问题

Http...
阅读(1386) 评论(0)

用JAVA获取视频文件中的帧图片并等比缩放

最近项目中有一个需要用JAVA...
阅读(10429) 评论(12)

关于toString方法的重写工具ToStringBuilder

apache的commons-lang3的工具包里有一个...
阅读(1407) 评论(1)

RabbitMQ的使用与分析

1、简介...
阅读(1581) 评论(0)

MINA学习笔记

本文来源于我工作中的笔记...
阅读(416) 评论(0)
21条 共2页1 2 下一页 尾页