java
文章平均质量分 76
Ice008
每天都要有收获,每天都要有进步,滴水成川,川流成海,不断学习,不断总结,你会发现自己变得不一样!
展开
-
Java Socket通信相关机制
事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因转载 2011-09-21 00:03:07 · 1492 阅读 · 0 评论 -
java.nio.ByteBuffer类
Buffer 类定义了一个可以线性存放primitive type数据的容器接口。Buffer主要包含了与类型(byte, char…)无关的功能。值得注意的是Buffer及其子类都不是线程安全的。每个Buffer都有以下的属性:capacity这个Buffer最多能放多少数据。capacity一般在buffer被创建的时候指定。limit在Buffer上进行的读写操作转载 2012-09-07 00:05:24 · 1804 阅读 · 0 评论 -
Ant实现Java项目的自动构建和部署
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。一. 安装与配置下载转载 2012-09-17 23:12:55 · 402 阅读 · 0 评论 -
Java NIO原理图文分析及代码实现
前言:最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm)机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(动态代理可以参考博客:http://w转载 2012-09-24 00:04:01 · 506 阅读 · 0 评论 -
Bytebuffer学习笔记二
在 NIO 库中,所有数据都是用缓冲区处理的。在读取数据时,它是直接读到缓冲区中的。在写入数据时,它是写入到缓冲区中的。任何时候访问 NIO 中的数据,都是将它放到缓冲区中。缓冲区实质上是一个数组。通常它是一个字节数组,但是也可以使用其他种类的数组。但是一个缓冲区不仅仅是一个数组。缓冲区提供了对数据的结构化访问,而且还可以跟踪系统的读/写进程。 buffer其实只是一个美化了的数组。状态变转载 2012-09-29 00:14:35 · 726 阅读 · 0 评论 -
java的softReference与weakReference
java.lang.ref包下提供了三个类SoftReference,phantomReference WeakReference,分别代表软引用,虚引用和弱引用强引用,最常见的引用,程序创建一个对象,并把这个对象赋值给一个引用变量,通过该引用来实际操作对象软引用,需要通过SoftReference类来实现,当一个对象只有一个软引用,它有可能被垃圾回收机制回收。内存空间足够时,不会被回收,原创 2012-11-03 21:42:48 · 650 阅读 · 0 评论 -
java中的数组拷贝
先看ArrayList源码中数组复制的代码: 其实ArrayList 就是一个数组的形式存放数据的. 没有高深的地方.他的性能在于他的索引能力, 正因为他是数组形式,所以索引元素的时候他表现得非常的快速成,试想一下, 只要知道这个元素的索引,E[2] 你看对像就出来了.这就是ArrayList 最突出的地方.让我们来看下ArrayList 内部数组是如何自我Copy的.要想深入的了解他转载 2012-11-04 14:26:45 · 612 阅读 · 0 评论 -
java中的jmx
http://docs.oracle.com/javase/tutorial/jmx/index.html oracle上面有非常详细的指导与实例,看了很容易明白一、什么是JMXJMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。原创 2012-11-06 23:40:59 · 4306 阅读 · 0 评论 -
Tomcat 启动时类加载顺序
Tomcat的class加载的优先顺序一览 1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。 2.环境变量CLASSPATH中的jar和class文件。 3.$CATALINA_HOME/common/classes下的class文件。 4.$CATALINA_HOME/commons/endorsed下的jar文件。转载 2012-12-19 19:32:58 · 941 阅读 · 0 评论 -
java常见的经典面试题目--on going updated
1. static 与非static的synchronize有什么不同 --static的拥有的是类锁, 非static拥有的是对象锁 2. java接口与抽象类的区别 1)java接口只能声明函数,函数不能有逻辑,抽象类中可以有逻辑 2)接口中定义的变量默认为static final, 所以在实现接口的类中不能改变变量的值(一般不推荐在接口中定义变量) 3.原创 2012-08-21 22:48:04 · 461 阅读 · 0 评论 -
java加解密相关
package com.jiami;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.s转载 2013-03-31 22:29:34 · 609 阅读 · 0 评论 -
基于Axis2开发WebService代码详解
基于Axis2开发WebService代码详解关键字: webservice转载:http://tenn.javaeye.com/blog/1007551.HelloWorld做了些什么? HelloWorld功能非常简单,在客户端输入你的姓名,本例中为ZJ。参数传递到服务器端后,经过处理将返回name+"HelloWorld!",本例中为ZJ HelloWorld!转载 2013-04-18 17:35:30 · 669 阅读 · 0 评论 -
构建高性能高并发Java系统
场景这里指的高性能高并发服务器是一个有状态的服务,可以理解成web或者socket服务器,每个业务在这个服务上执行后是有状态的。比如一次电信业务,设计用户请求资源分配,网络带宽分配,billing认证等。这些状态需要保留在服务器端,称为session。该系统的特点是session信息写入量大,更新访问频繁。1,使用异步通信异步通信显然可以更快的返回响应。从实际经验看,对高吞吐服务器更大转载 2013-06-18 10:47:18 · 754 阅读 · 0 评论 -
Dubbo-开源服务框架
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。主要核心部件:Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能Registry: 服务目录框架用于原创 2013-11-12 22:25:05 · 1671 阅读 · 0 评论 -
Java5中线程池与线程结果返回
Exectutors//以下为各种起线程池方式 //ExecutorService threadPool = Executors.newFixedThreadPool(3); //ExecutorService threadPool = Executors.newCachedThreadPool(); // ExecutorServic原创 2014-02-20 23:00:47 · 1703 阅读 · 0 评论 -
Spring + Ibatis + MySql实例详解
1. 环境:将以下jar包加入到工程,commons-logging-1.0.4.jar、ibatis-2.3.0.677.jar、mysql-connector-java-5.0.3-bin.jar、spring.jar。2. 在MySql中创建数据库和相应的表:[sql] view plaincopyprint?#####################转载 2012-10-03 17:40:07 · 797 阅读 · 0 评论 -
Reactor 模式的 JAVA NIO 多线程服务器
JAVA NIO 多线程服务器 1.2版 Reactor 模式的 JAVA NIO 多线程服务器从JDK 1.4开始,Java的标准库中就包含了NIO,即所谓的“New IO”。其中最重要的功能就是提供了“非阻塞”的IO,当然包括了Socket。NonBlocking的IO就是对select(Unix平台下)以及 WaitForMultipleObjects(Windows平台)的封装转载 2012-08-30 00:19:45 · 9054 阅读 · 4 评论 -
桥梁模式,抽象与实现分享的模式
采用桥梁模式来实现,抽象部分和实现部分分离开了,可以相互独立的变化,而不会相互影响。因此在抽象部分添加新的消息处理(特急消息),对发送消息的实现部分是没有影响的;反过来增加发送消息的方式(手机短消息),对消息处理部分也是没有影响的。桥梁模式的优点 ● 分离抽象和实现部分 桥梁模式分离了抽象部分和实现部分,从而极大地提供了系统的灵活性。让抽象部分和实现部分独立出来,分别定义接口,这转载 2012-08-12 23:44:43 · 512 阅读 · 0 评论 -
Java NIO原理和使用
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。Java NIO非堵塞技术实际是采取React转载 2011-11-08 22:28:01 · 555 阅读 · 0 评论 -
RESTful Web Service 与CXF 学习笔记
研究了两天CXF对restful的支持。 现在,想实现一个以http://localhost:9999/roomservice 为入口,http://localhost:9999/roomservice/room为房间列表,http://localhost:9999/roomservice/room/001/ 为001号房间的信息,http://localhost:9999/转载 2011-11-10 22:28:55 · 2846 阅读 · 1 评论 -
ThreadPoolExecutor的例子与应用方式
JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介java 2009-11-26 11:26:16 阅读60 评论0 字号:大中小在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。一、简介线程池类为 java.util.concurrent.ThreadPoolExecuto转载 2012-03-11 23:36:29 · 5918 阅读 · 0 评论 -
Callable,Runnable比较及用法
编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Thread,Runnable,Callable.Runnable和Callable的区别是,(1)Callable规定的方法是call(),Runnable规定的方法是run().(2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得(3)call方法可以抛出异常,ru转载 2012-07-03 23:53:43 · 31151 阅读 · 2 评论 -
Java系统程序员修炼之道
从2002开始接触Java学会HelloWorld这么经典的程序到如今不知不觉已经十年啦,十年中亲耳听到过不少大牛的演讲,见到过项目中的神人在键盘上运指如飞的编程速度,当时就被震撼了。当编程越来越成体力活,我们还能有自己的思想,还能修炼为Java系统级别的程序员嘛?学习与修炼以下知识与技能,帮你早日达成愿望。一:Java语言学习对线程(thread),串行化,反射,转载 2012-07-04 22:56:16 · 659 阅读 · 0 评论 -
HashMap与HashTable
根据JDK的源码分析,HashTable HashMap的数据结构基本是一样的,都是用一个动态数组来存储哈希值,如果哈希冲突,每个数组值又会接着一个链接来存储。1. HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的,只不过Set用的只是Map的key2. Map的key和Set都有一个共同的特性就是集合的唯一性.TreeMap更是多了一个有序性.3.原创 2012-07-01 19:04:07 · 589 阅读 · 0 评论 -
java 中的Class类对象
Java程序在运行时每个类都会对应一个Class对象,可以从Class对象中得到与类相关的信息 Java中把生成Class对象和实例对象弄混了,更何况生成Class对象和生成instance都有多种方式。所以只有弄清其中的原理,才可以深入理解。首先要生成Class对象,然后再生成Instance。那Class对象的生成方式有哪些呢,以及其中是如何秘密生成的呢?Class对象的生成方原创 2012-07-09 23:58:36 · 474 阅读 · 0 评论 -
hashMap原理分析
本篇对HashMap实现的源码进行简单的分析。所使用的HashMap源码的版本信息如下:/** @(#)HashMap.java 1.73 07/03/13** Copyright 2006 Sun Microsystems, Inc. All rights reserved.* SUN PROPRIETARY/CONFIDENTIAL. Use is subjec转载 2012-06-28 22:15:34 · 673 阅读 · 0 评论 -
Java多线程Synchronized的注意细节
最近做java多线程开发处理中发现synchronized的使用还是有一些细节问题要注意的。 1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”,类的两个不同实例就没有这种约束了。那么static s转载 2012-06-28 23:21:39 · 1291 阅读 · 0 评论 -
学习单例(singleton)模式的收获
单例模式的特点:单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。实现单例模式总结有4种方法 1)传说中的饿汉式饿汉也就是很饥渴,很想快速占有一切,所以饿汉单例就是在类初始化的时候就将单例对象创建了。 2)双重检查加锁这种方式我以前自己在优化代码的时候用过,但不知道这就是传说中的双重检查加锁,JDK1.5之后原创 2012-07-17 23:01:33 · 418 阅读 · 0 评论 -
关于代理模式的学习有感
代理模式,就是以一个代理对象代理另外一个所谓的被代理对象。现实中这种例子很多,比如卖地沟油的人不方便出面卖,就找那些黑心的代理商去将卖这些油,这就是一种恶性的代理。 代理模式,有两种,一种就是静态代理,一种叫动态代理。静态的就是代理类在编译的时候就已经创建了动态的就是代理类在程序运行时根据java的反射机制创建的 public class ServiceTest {原创 2012-08-05 23:30:25 · 1013 阅读 · 0 评论 -
Builder设计模式学习笔记
建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象 有些情况下,一个对象的一些性质必须按照某个顺序赋值才有意义。在某个性质没有赋值之前,另一个性质则无法赋值。这些情况使得性质本身的建造涉及到复杂的商业逻辑。这时候,此对象相当于一个有待建造的产品,原创 2012-07-24 23:37:36 · 457 阅读 · 0 评论 -
原型模式的思考与学习(部分转载)
原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是原型模式的用意。原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获取新转载 2012-07-25 23:53:32 · 441 阅读 · 0 评论 -
Java中动态加载class机制实验
Java的一个强大的特性是能够动态加载一个给定名称的类,而事先不需要指导这个类的名字。这个特性使得Java的开发人员能够构造一个不需要重新编译即可扩展和修改的灵活动态的系统,在Java中,动态加载通常是调用类java.lang.Class的forName方法来实现;然而,在一个jar包中调用Class.forName会出现一些奇怪的错误。 下面的内容需要读者具备一定的java知识、Cla转载 2014-04-17 15:57:51 · 792 阅读 · 0 评论