
Java 基础相关
文章平均质量分 83
稻草人_xia
这个作者很懒,什么都没留下…
展开
-
JdonFramework
Jdon Framework(简称JF)是一套适合开发中小型J2EE应用系统的快速开发框架、也是一套Ioc/Aop框架、更是一套符合当前国际水平的、面向组件开发的、国人拥有自主产权的中间件产品。中国第一个开源框架,国内先进的组件、构件工具。 Jdon框架是快速性和灵活性相结合的产物,体现了软件开发既快又好的特点,对于小项目,使用Jdon框架可以开发出高质量可扩展的好的系统;对于大项目,使用J...原创 2011-04-17 21:18:16 · 129 阅读 · 0 评论 -
(转)Java偏向锁实现原理(Biased Locking)
Java 偏向锁(Biased Locking)是Java6引入的一项多线程优化。它通过消除资源无竞争情况下的同步原语,进一步提高了程序的运行性能。 轻量级锁也是一种多线程优化,它与偏向锁的区别在于,轻量级锁是通过CAS来避免进入开销较大的互斥操作,而偏向锁是在无竞争场景下完全消除同步,连CAS也不执行(CAS本身仍旧是一种操作系统同步原语,始终要在JVM与OS之间来回,有一定的开销)。 所谓...原创 2011-03-28 17:35:31 · 227 阅读 · 0 评论 -
Mule 与 Spring2.0's extensible XML configuration mechanism
mule2.2.1已经采用从spring2.0开始出现的namespace配置方式了,这样的好处不多说了,坏处是源码更难看了,还增加了一坨BDP。以下是spring官方手册的附录B及spring源码的一些摘录。 Spring2.0's extensible XML configuration mechanism基础是xml的schema(xsd),总体来说首先需要Namespace...原创 2011-08-07 15:50:24 · 138 阅读 · 0 评论 -
基于Spring可扩展Schema提供自定义配置支持
在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的时候,会显得非常笨拙。整平机一般的做法会用原生态的方式往解析定义好的xml文件,然后转化为配置对象,这种方式当然可以解决所有题目,但实现起来比较繁琐,特别是是在配置非常复杂的时候,解析工作是一个不得不考虑的负担。整平机Spring提供了可扩展Schema的支持,...原创 2011-08-07 16:01:37 · 80 阅读 · 0 评论 -
【转】Java EE 6引入的三大新技术之JAX-RS
文章分类:Java编程 【51CTO精选译文】上周我们介绍了Java EE 6平台的主要目标,本篇介绍这个版本中引入的新技术。这些新技术使这个平台变得更加强大,其中三个重要的新技术包括:51CTO编辑推荐您阅读《Java EE 6平台指南》专题了解更多。 ◆RESTful Web Services Java API (JAX-RS) ◆面向Java EE平台的上下文和依赖性注入(CDI) ◆Be...原创 2011-04-03 16:18:30 · 93 阅读 · 0 评论 -
java中的JSR75 JSR135 JSR180 JSR184 JSR185是什么意思?
JSRs: Java Specification Requests 即Java规范要求 它是Java标准化组织(Java Community Process)提交给sun的java开发草案。 对于实时应用都有对应的JSR,比如现在几乎不用的EJB,以前都有对应的JSR,它是一种对应应用的开发标准草案。即它都是对应现在的每个Java应用的,是一些工业标准。 如: JSR75:J2ME(用于手...原创 2011-04-03 16:32:20 · 369 阅读 · 0 评论 -
【转】Java EE 6引入的三大新技术之数据验证新框架:Bean验证
文章分类:Java编程 【51CTO精选译文】对于Sun最新发布的Java EE 6平台,过去51CTO已经陆续介绍了平台的主要目标,以及三大新技术中的JAX-RS以及上下文和依赖注入。本文介绍第三个技术:Bean验证。 验证数据是应用程序生命周期中一个常见的任务,例如,在应用程序的表示层,你可能想验证用户在文本框中输入的字符数最多不超过20个,或者想验证用户在数字字段输入的字符只能是数字。 开...原创 2011-04-03 16:56:54 · 109 阅读 · 0 评论 -
【转】Java EE 6引入的三大新技术之上下文和依赖性注入(CDI)
【51CTO精选译文】Java EE 6平台的发布带来了几个新的技术亮点。在前几周,我们介绍了Java EE平台的主要目标以及Java EE 6的RESTful Web Services Java API (JAX-RS)特性,本文将介绍面向Java EE平台的上下文和依赖性注入(CDI)。 JSR 299是一种为Java EE组件提供强大服务的技术,这些服务允许Java EE组件,包括EJB会话...原创 2011-04-03 16:59:31 · 154 阅读 · 0 评论 -
Java Annotation手册
http://www.blogjava.net/mlh123caoer/archive/2007/09/06/143260.html 前言:在上篇文章《Java Annotation入门》中概要性的介绍了Annotation的定义、使用,范围涵盖较广,但是深度不够。所以作者在《Java Annotation入门》后,继续整理了Annotation的概念和知识点,与喜欢rese...原创 2011-04-10 18:20:45 · 85 阅读 · 0 评论 -
Apache Jakarta Commons 工具集简介
org.apache.commons.collections.FastArrayList、 org.apache.commons.collections.FastHashMap、 org.apache.commons.collections.FastTreeMap、 org.apache.commons.collections.OrderedIterator FastArray...原创 2011-11-03 11:22:01 · 175 阅读 · 0 评论 -
Java 7 Fork/Join 并行计算框架概览
http://www.iteye.com/topic/643724 应用程序并行计算遇到的问题 当硬件处理能力不能按摩尔定律垂直发展的时候,选择了水平发展。多核处理器已广泛应用,未来处理器的核心数将进一步发布,甚至达到上百上千的数量。而现在很多的应用程序在运行在多核心的处理器上并不能得到很好的性能提升,因为应用程序的并发处理能力不强,不能够合理有效地的利用计算资源。线性的计...原创 2011-11-05 16:26:11 · 409 阅读 · 0 评论 -
分布式锁服务器
在分布式系统中如何设计和实现一套可靠的分布式锁服务机制一直是非常令人头痛的问题。Google在论文The Chubby lock service for loosely-coupled distributed systems 中,描述一个粗粒度的锁服务系统- Chubby。 1. Chubby能够干什么呢 根据Google论文提到的,Chubby系统在Google的分布式开发环境中...原创 2011-11-07 22:14:51 · 273 阅读 · 0 评论 -
java开源
开源不是开放编译器的源代码,而是写了一个软件, 然后把这个软件的源代码发布到网上, 让大家都可以学习,改进,就是开源。要符合一定的规范,比如GPL 等。 目录 框架 门户 插件 组件 项目 工具 系统 其它 框架 Spring Framework 【Java开源 J2EE框架】 Spring是一个解决了许多在J...原创 2012-05-29 14:34:55 · 459 阅读 · 0 评论 -
Java中使用OpenSSL生成的RSA公私钥进行数据加解密
openssl genrsa -out rsa_private_key.pem -f4 1024 openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt openssl rsa -in rsa_private_key.pem -pubout -out rsa_publi...原创 2012-10-25 11:34:57 · 155 阅读 · 0 评论 -
用Ant打Jar包--在Manifest中引用Classpath
用Ant打Jar包--在Manifest中引用Classpath 2010-08-21 15:16:04| 分类: Java | 标签: |字号大中小 订阅 < xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 在打jar包时,往往需要在manifest文件中设置C...原创 2012-03-15 13:20:29 · 398 阅读 · 0 评论 -
通过JVM获取相关的服务器信息 .
http://blog.youkuaiyun.com/zgmzyr/article/details/6903500 http://topmanopensource.iteye.com/blog/833386 在我们想监控我们的JVM状态的时候,除了可以通过JMX这类jvm提供的接口服务,还是可以自己通过程序来编写一些接口来获取服务器状态信息。 以下代码我在jdk1.5.10版本上测试通过。 ...原创 2013-01-07 20:18:58 · 154 阅读 · 0 评论 -
Java之死-前言
用了好多年的java之后越来越感觉其并不像刚刚开始学习它时所宣称的那样优秀,相反,其暴露出来的根深蒂固的弱点确实无法在版本延续的过程中彻底解决的,比如:模块化、任务调度、并发编程、分布式、动态性 等等,该序列文章将深入探讨java的各种设计思想,并对比Erlang、Scala、Groovy、Stackless Python 等语言,给我们一直在使用的java挑挑刺,同时也汲取j...原创 2014-07-15 10:14:43 · 123 阅读 · 0 评论 -
alibaba fastjson(json序列化器)序列化部分源码解析
本文copy自http://www.flydmeng.com/index.php/code/alibaba-fastjson-json-serializer-chapter-source-analyse-one-global-analyse.html fastjson官方地址: http://code.alibabatech.com/wiki/display/FastJSON/H...原创 2011-08-03 21:11:35 · 244 阅读 · 0 评论 -
JVM 远程调试 参数
远程调试 参数 -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=61009,server=y,suspend=y JConsole 、JvisualVM 、JRocket Mission Control 连接调试参数 -Djava.rmi.server...原创 2011-07-28 09:49:21 · 427 阅读 · 0 评论 -
JVM的Thin Lock, Fat Lock, SPIN Lock与Tasuki Lock
Java很多ThreadDump中,都可以看到Thin Lock, Fat Lock, Spin Lock,这些Lock都与Java语言、OS有密切的关系。回到一个简单的问题,在Java中,如何实现Synchronizd?最简单的一种做法是,利用OS的mutex机制,把Java的同步(基于Object),翻译成OS相关的monitor_enter和monitor_exit原语。回到Java锁本身,...原创 2011-04-23 23:51:15 · 948 阅读 · 0 评论 -
GET 和 POST的区别
Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下: Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用 “&”连接;Post是将表单中的数据放在form的数据...原创 2011-01-15 11:36:17 · 98 阅读 · 0 评论 -
Java中文字符编码详解
Java中文字符编码详解 JAVA的中文字符乱码问题一直很让人头疼。特别是在WEB应用中。网上的分析文章和解决方案都很多,但总是针对某些特定情况的。很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经掌握了对付这些字符乱码怪兽的诀窍。可当过段时间,换了个应用或换了个环境,又会碰到那讨厌的火 星文,并再次无所适从。于是下决心好好整理一下中文字符编码问题,以方便自己记忆...原创 2011-01-15 11:38:04 · 208 阅读 · 0 评论 -
多核线程笔记-volatile原理与技巧
volatile, 用更低的代价替代同步 为什么 使用volatile比同步代价更低? 同步的代价, 主要由其覆盖范围决定, 如果可以降低同步的覆盖范围, 则可以大幅提升程序性能. 而volatile的覆盖范围仅仅变量级别的. 因此它的同步代价很低. volatile原理是什么?volatile的语义, 其实是告诉处理器, 不要将我放入工作内存, 请直接在主存操作我.(工作内存详见...原创 2011-05-11 21:28:50 · 99 阅读 · 0 评论 -
多核线程笔记-java内存模型详解
内存模型 (memory model) 内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节. 不同平台间的处理器架构将直接影响内存模型的结构. 在C或C++中, 可以利用不同操作平台下的内存模型来编写并发程序. 但是, 这带给开发人员的是, 更高的学习成本.相比之下, java利用...原创 2011-05-11 21:29:49 · 103 阅读 · 0 评论 -
Java中的模式 --单态 (部分翻译 double-checked locking break)
Java中的模式 --单态 (部分翻译 double-checked locking break) 单态定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了 实例的个数,有利于Java垃圾回收(garbage collection)...原创 2011-05-11 22:28:17 · 109 阅读 · 0 评论 -
Fastjson技术内幕
文章来源:http://code.alibabatech.com/wiki/display/FastJSON/Inside+Fastjson JSON协议使用方便,越来越流行。JSON的处理器有很多,为什么需要再写一个呢?因为我们需要一个性能很好的JSON Parser,希望JSON Parser的性能有二进制协议一样好,比如和protobuf一样,这可不容易,但确实做到了。有人认为这从原理上就是...原创 2011-09-13 23:51:25 · 152 阅读 · 0 评论 -
基于LVS的Linux负载均衡技术实现(第一篇:基本原理)
lvs说明:目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR),十种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh,sed,nq)。 在调度器的实现技术中,IP负载均衡技术效率最高。在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/...原创 2011-06-14 22:52:22 · 111 阅读 · 0 评论 -
代码动态生成利器ASM
前言 代码生成器(code generator,CG),顾名思义就是生成代码的工具。有了它,你就可以从一组简单的设定或者数据库设计中获得几百、几千行代码。如果不采用这项技术的话,开发者就不得不花上几个小时或者几天的时间来手工编写这些代码。另一方面,优秀的开发工具为了提供其独特的功能或者屏蔽一些容易出错的细节,也往往采用代码生成技术为使用者提供一个程序的模板框架,其目的也是为了提高...原创 2011-09-22 20:02:26 · 330 阅读 · 0 评论 -
基于Java IO 序列化方案的memcached-session-manager多memcached节点配置
在公司项目里想要在前端通过nginx将请求负载均衡,而后台的几组tomcat的session通过memcached(non-sticky模式)进行统一管理,这几组tomcat部署的web app是同一应用,session的变化要统一,项目组最后采用memcached-session-manager来对tomcat的session进行管理。 session的序列化方案官方推...原创 2011-06-26 21:39:16 · 112 阅读 · 0 评论 -
集群中几种session同步解决方案的比较
在集群中session安全和同步是个最大的问题,下面是收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。 1. 客户端cookie加密 简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。 问题:session中数据不能太多,最好只有个用户id。 参考实现:http://rollerweb...原创 2011-06-26 22:09:33 · 105 阅读 · 0 评论 -
JVM-level clustering - Terracotta
前段时间一直在运用memcached来保存session的集群方案,这的确是实现HA和HP的一个好方案。但是在实现上还存在不少的bug。我和大家分享另外一种HA方案:JVM堆级群集。 JVM-level clustering主要是通过terracotta来实现,terracotta在2003年成立,代码是最近才开源的,license对企业也没有太大的限制,据相关的报道,terracott...原创 2011-06-26 22:31:04 · 244 阅读 · 0 评论 -
Hessian轻量级二进制远程调用框架
Hessian是一个轻量级的二进制远程调用框架,官方文档地址,它主要包括Hessian远程调用协议、Hessian序列化协议以及客户端服务端代理等几部分,关于Hessian协议可以看下另外一篇文章Hessian远程调用及序列化协议。Hessian远程调用框架构建在Http协议之上,下面是示意图。 下面这个图是一次远程调用的过程 其中步骤3、4、5、6是核心过程,还要细化下,...原创 2011-06-28 17:43:31 · 140 阅读 · 0 评论 -
Hessian远程调用及序列化协议
demo中客户端和服务端的hessian版本都是4.0.7,下面是客户端向服务器端发送的hessian调用及序列化参数的二进制数据,这些数据作为Http Post请求的数据部分传递给了服务器端。 99 2 0 109 0 3 115 97 121 77 116 0 20 104 101 115 115 105 97 110 46 84 114 97 100 101 73 116 101 109 ...原创 2011-06-28 18:22:40 · 355 阅读 · 0 评论 -
Sequential Lock in Java
1 Overview Linux内核中常见的同步机制有Atomic Operation,Spin Locks,Semaphore,Mutex等。其中Spin Locks和Semaphore都支持读/写锁。此外,Linux内核还支持一种更轻量级的读/写锁定机制:Sequential Lock。跟其它读/写锁定机制相比,Sequential Lock有以下特点: 在获取锁时偏向写锁。只要...原创 2011-07-03 16:22:07 · 117 阅读 · 0 评论 -
JDBC batch批处理Statement executeBatch 详解
http://blog.youkuaiyun.com/basenet855x/article/details/6826731 http://san-yun.iteye.com/blog/900949 http://hi.baidu.com/zjphzxg/blog/item/7e17cf0f357f14e4aa645722.html JDBC提供了数据库batch处理的能力,在数据大...原创 2011-09-28 13:25:45 · 183 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier、Semaphore、Phaser
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarrier用法 三.Semaphore用法 四.Phaser 若有不正之处请多...原创 2015-02-26 16:41:57 · 364 阅读 · 0 评论