
java编程
文章平均质量分 80
zhaozheng7758
性格开朗,爱好广泛。
展开
-
ClassLoader类的原理
一个ClassLoader(以下称类加载器) 是一个对象,它负责加载类。ClassLoader类是一个Abstract 类。 如果给了一个类的名字,那么类加载器将会去加载和生成有关构成这个类的定义的数据。典型的策略是将这个类名转换成一个文件名,然后从文件系统中读取这个类文件名。 每个类对象都有一个对其自身类进行定义的类加载器的引用(reference) 多个数组类的类对象不能由类加载器转载 2008-09-27 20:45:00 · 782 阅读 · 0 评论 -
HttpClient 4.0的使用详解
HttpClient程序包是一个实现了 HTTP协议的客户端编程工具包,要想熟练的掌握它,必须熟悉 HTTP协议。对于HTTP协议来说,无非就是用户请求数据,服务器端响应用户请求,并将内容结果返回给用户。HTTP1.1由以下几种请求组成:GET,HEAD, POST, PUT, DELETE, TRACE ,OPTIONS,因此对应到HttpClient程序包中分别用HttpGet,HttpHea原创 2012-02-09 20:48:06 · 16251 阅读 · 1 评论 -
eclipse中另一种有效的安装三方插件方式
Eclipse是基于插件式的开发方式,难免在项目中需要在eclipse中安装许多三方插件。其实三方插件无非就是一个或多个jar包。要将几个jar包直接引入放置在plugins目录下亦可,但该目录下的jar包太多,有时候可能还涉及到jar包的升级等,较为繁琐。因此有一种方式可以在外面新建另外一个文件用于存放三方插件包,只是需要一个关联文件将上述文件关联起来即可。通过这种方式能够非常方便的解决三方包的原创 2012-08-02 17:18:56 · 1117 阅读 · 0 评论 -
浅析IoC控制反转的原理
控制反转这个词可能是目前框架设计中提到最流行的词了,象SmallTalk、c++、java等都采用了这些原理进行实现。其中我们所熟知和常用的Spring Framework的核心亦不例外。其实早在2004年Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题。他总结出是依赖对象的获得被反转了。这个做何理解呢?我们知道目前的许多稍复杂的应用基本都是由两个或多个类通过彼此合作来实现具原创 2012-08-14 19:02:04 · 4831 阅读 · 0 评论 -
Spring AOP原理及简单应用
相信只要使用过Spring框架的,大家对于AOP都不陌生,尤其提起它就能立刻随口说出,一般用在日志处理、异常处理、权限验证等方面。但刚开始接触难免会有各种各样的疑惑,今天抽时间,按照之前的理解整理了一份关于Spring AOP的简单教程,希望能够帮助大家尽快的了解它的实现过程及原理。首先来明确几个概念:JointPoint系统在运行之前,AOP的功能模块需要织入到OOP的功能模块中。要原创 2012-08-14 18:50:26 · 19947 阅读 · 6 评论 -
JAVA序列化机制的深入研究
1、java序列化简介序列化就是指对象通过写出描述自己状态的数值来记录自己的过程,即将对象表示成一系列有序字节,java提供了将对象写入流和从流中恢复对象的方法。对象能包含其它的对象,而其它的对象又可以包含另外的对象。JAVA序列化能够自动的处理嵌套的对象。对于一个对象的简单域,writeObject()直接将其值写入流中。当遇到一个对象域时,writeObject()被再次调用,如果这个对象原创 2012-08-01 20:31:46 · 8114 阅读 · 3 评论 -
Java远程通讯可选技术及原理
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、 Burlap、Hessian、SOAP、EJB和JMS 等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇文章中我们将来原创 2012-08-01 20:30:31 · 1376 阅读 · 0 评论 -
一个简单web服务器的实现
一个简单的web服务器在不考虑其性能及健壮性的情况下,通常只需实现的功能包括服务器的启动,它用于监听某一个端口,接收客户端发来的请求,并将响应结果返回给客户端。本文将介绍一个简单web服务器的实现原理,它本身只能处理某个目录下的静态资源文件(文本、图片等)。采用java来实现的话,可以含以下几个模块,而且各个模块间的关系如图1所示。图1、简单web服务器的模块 Http原创 2013-01-07 22:55:53 · 40930 阅读 · 4 评论 -
javap命令详解
javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码。通过它,可以对照源代码和字节码,从而了解很多编译器内部的工作。可以在命令行窗口先用javap -help看下javap工具支持的选项:C:\>javap -help C:\>javap -helpUsage: javap ...where options include: -c原创 2013-02-28 19:44:06 · 14570 阅读 · 0 评论 -
jmap命令详解
1、命令基本概述Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。使用方法 jmap -histo pid。如果使用SHELL ,可采用jmap -histo pid>a.log日志将其保存到文件中,在一段时间后,使用文本对比工具,可以对比出GC回收了原创 2013-02-28 19:45:57 · 94220 阅读 · 0 评论 -
jstat命令详解
Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。jstat工具特别强大,有众多的可原创 2013-02-28 19:49:23 · 149973 阅读 · 14 评论 -
JVM内存结构浅析
内存作为系统中重要的资源,对于系统稳定运行和高效运行起到了关键的作用,Java和C之类的语言不同,不需要开发人员来分配内存和回收内存,而是由JVM来管理对象内存的分配以及对象内存的回收(又称为垃圾回收、GC),这对于开发人员来说确实大大降低了编写程序的难度,但带来的一个副作用就是,当系统运行过程中出现JVM抛出的内存异常(例如OutOfMemoryError)的时候,很难知道原因是什么,另外一方面原创 2013-02-28 19:53:05 · 9563 阅读 · 1 评论 -
web项目启动Spring容器
今天在重新搭建一套web框架,只想采用spring,其它框架均用不到。使用java应用程序进行测试,完全没问题。考虑到做为web应用程序,那就必须要在服务器启动时,能够将spring的上下文配置加载进去,并启动Spring容器,如何做呢?一般在web项目中启动Spring容器,只需要在web.xml中新增 一个配置即可,具体的配置示例如下所示:1. 首先,在web.xml中配置spring原创 2013-02-28 19:38:21 · 5720 阅读 · 1 评论 -
jstack命令详解
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道jav原创 2013-02-28 19:48:25 · 92840 阅读 · 3 评论 -
JAVA编程实践总结
原文地址:http://www.odi.ch/prog/design/newbies.php 每天在写Java程序, 其实里面有一些细节大家可能没怎么注意, 这不, 有人总结了一个我们编程中常见的问题. 虽然一般没有什么大问题, 但是最好别这样做. 另外这里提到的很多问题其实可以通过Findbugs(http://findbugs.sourceforge.net/ )来帮我们进行检查出来.转载 2012-02-06 12:54:25 · 1279 阅读 · 0 评论 -
protobuf协议基础介绍
Protocol Buffers介绍主题l Protocol Buffers简介l 定义一个.proto文件l Message的使用l 消息的编码机制l 使用时注意事项 什么是ProtocolBuffers?l Google定义的一原创 2011-09-05 11:08:21 · 15845 阅读 · 0 评论 -
国内某知名公司笔试题
public class Test { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 Integer i1 = new Integer(1); Integer i2 = i1; doSomethin原创 2008-09-27 20:46:00 · 896 阅读 · 1 评论 -
Java Nio学习笔记
<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0 2原创 2010-01-25 20:47:00 · 1111 阅读 · 0 评论 -
ServletContextListener使用详解
在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。本文通过两个具体的实例介绍该接口的使用方法。原创 2010-12-28 20:23:00 · 47254 阅读 · 14 评论 -
Filter及FilterChain的使用详解
java中Filter与Servlet非常相似,也是一些web应用程序组件,可以绑定到一个web应用程序中。但是与其他web应用程序组件不同的是,过滤器是"链"在容器的处理过程中的。这就意味着它们会在servlet处理器之前访问一个进入的请求,并且在外发响应信息返回到客户前访问这些响应信息。这种访问使得过滤器可以检查并修改请求和响应的内容。本文主要对Filter及FilterChain的原理做一介绍,并给出几个具体的应用场景及实例。原创 2010-12-29 20:08:00 · 99107 阅读 · 31 评论 -
java实现utf-8与GB2312编码的转换
字符编码问题往往是程序开发中较为纠结的问题,尤其是网络开发。本文采用java就常用的两种编码格式utf-8及GB2312间的转换进行了简要的说明,并给出具体的实例。原创 2011-01-26 16:16:00 · 48922 阅读 · 5 评论 -
java应用解耦方法之一-SPI
应用程序的耦合性过高会引发很多问题,如果服务提供方服务宕机,可能会使自己本身的应用无法正常提供。本文提供一种SPI的方式来解决java应用中的应用耦合性高的问题。原创 2011-03-14 19:37:00 · 2923 阅读 · 0 评论 -
Listener、Filter、Servlet的初始化顺序
Listener、Filter及servlet是web项目开发中常用的几个类,但它们在Web容器启动时有不同的加载顺序,本文通过具体的实例介绍了三者间加载的顺序。原创 2011-03-24 20:36:00 · 1476 阅读 · 0 评论 -
java泛型理解一
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。转载 2011-03-28 20:55:00 · 737 阅读 · 0 评论 -
ActiveMQ的插件开发介绍
ActiveMQ是Apache基金下非常活跃的一个开 源项目,实现了JMS规范中的接口的消息队列。在非常多的大型网站中均有应用。其中的基于插件式的开发方式使得开发者可以按照自己的业务应用场景开发第三方插件,满足需求。本文简要的介绍了ActiveMQ插件的开发,希望能给初学者带来帮助。转载 2011-04-07 09:15:00 · 4954 阅读 · 1 评论 -
protobuf协议语言指南
Protobuf语言指南l 定义一个消息(message)类型l 标量值类型l Optional 的字段及默认值l 枚举l 使用其他消息类型l 嵌套类型l 更新一个消息类型l 扩展l 包(package)l 定义服务(s原创 2011-09-05 11:16:19 · 41236 阅读 · 1 评论 -
protobuf java编码基础
Protobuf java基础本文档为java编程人员使用protocol buffer提供了一个基本的介绍,通过一个简单的例程进行介绍。通过本文,你可以了解到如下信息:1、在一个.proto文件中定义一个信息格式.2、使用protoc命令进行编译,生成java代码.原创 2011-09-05 11:12:51 · 6685 阅读 · 1 评论 -
protobuf协议概览及开发指南
Protobuf协议概览及开发指南l 什么是protocol bufferl 如何使其工作l 与XML相比有哪些优势?l 听起来像是不错的解决方案,如何开始?l 历史原因本文档作为protocol buffer的开发者指南,它是一种语言无关、跨平原创 2011-09-05 11:09:36 · 1741 阅读 · 0 评论 -
JVM堆内存结构浅析
Java 1.2以上的版本对jvm内存进行了分代管理,图示如下: JVM将Heap分为NewGeneration和Old Generation(或Tenured Generation)两块来进行管理:1. New Generation又称为新生代,程序中新建的对象都将分配到新生代中,新生代又由Eden Space和两块Survivor Spac原创 2013-02-28 19:57:00 · 6734 阅读 · 0 评论