java
文章平均质量分 57
xiaomin_____
努力~~
展开
-
为什么动态代理只能基于接口?
动态代理类(以下简称为代理类)是一个实现在创建类时在运行时指定的接口列表的类,该类具有下面描述的行为。 代理接口 是代理类实现的一个接口。 代理实例 是代理类的一个实例。 每个代理实例都有一个关联的调用处理程序 对象,它可以实现接口 InvocationHandler。通过其中一个代理接口的代理实例上的方法调用将被指派到实例的调用处理程序的 Invoke 方法,并传递代理实例、识别调用方法的 ja...原创 2011-12-16 16:46:06 · 145 阅读 · 0 评论 -
JDK动态代理源码Proxy
public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)//这里有三个参数,第一个是传入classloader,一般情况是传入当前的classloader.但是我在上一节模拟实现里传入的是URL loader....原创 2011-12-19 14:08:28 · 92 阅读 · 0 评论 -
模拟JDK动态代理
接口Moveable:public interface Moveable { public void move(); public void stop();}接口的实现类Tank:public class Tank implements Moveable{ public void move() { System.out.println(...原创 2011-12-19 15:44:24 · 59 阅读 · 0 评论 -
spring aop as cglib
大家都知道spring的aop.而底层是用了jdk的动态代理,还有cglib.一般来说代理接口的话就用jdk的动态代理。而当没有接口的时候就用cglibjdk的动态代理底层是通过生成一个子类实现目标接口,继承 Proxy类,然后在加上eqs ,tostring,hashcode方法而cglib及可以代理接口,也可以代理类。底层是通过生成一个子类来继承目标类。然后重写里面的方法。因为是继...原创 2012-01-02 04:15:46 · 76 阅读 · 0 评论 -
深入研究java.lang.Class类
Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。 Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过...原创 2012-01-03 23:49:38 · 74 阅读 · 0 评论 -
jvm 类加载器 和 tomcat类加载器
类加载器基本概念顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用...原创 2012-04-25 10:10:49 · 110 阅读 · 0 评论 -
Hashset as HashMap add方法
public class MapTest { public static void main(String[] args) { Map m =new HashMap(); m.put("1", 2); Object i = m.get("1"); System.out.println(m.put("1", 3)); System.out.println(m.ge...原创 2012-04-27 19:10:40 · 114 阅读 · 0 评论 -
java 序列化之当序列化遭遇继承
当一个父类实现Serializable接口后,他的子类都将自动的实现序列化。 public class SerializableEr implements Serializable{ /** * */ private static final long serialVersionUID = 1L; // public Seria...原创 2012-04-28 14:06:49 · 134 阅读 · 0 评论 -
java 序列化之当序列化遭遇继承,组合,对象引用
public class Serial extends SerializableEr implements Serializable{ private static final Logger LOG = Logger.getLogger(Serial.class); int id; String name; private static final Test test ...原创 2012-04-28 16:59:01 · 86 阅读 · 0 评论 -
java序列化
序列化 ID 问题情境:两个客户端 A 和 B 试图通过网络传递对象数据,A 端将对象 C 序列化为二进制数据再传给 B,B 反序列化得到 C。问题:C 对象的全类路径假设为 com.inout.Test,在 A 和 B 端都有这么一个类文件,功能代码完全一致。也都实现了 Serializable 接口,但是反序列化时总是提示不成功。解决:虚拟机是否允许反序列化,不仅取决于类路径和功...原创 2012-04-30 11:09:51 · 75 阅读 · 0 评论 -
java 之方法调用 方法传参 值传递还是引用传递字节码
/*Java中的参数传递方式到底是引用传递还是值传递?java核心技术卷I里有一个结论我觉得挺有意思的:java中没有引用传递,只有值传递 首先看定义: 值传递,是指方法接收的是调用者提供的值 引用传递,是指方法接收的是调用者提供的变量地址事实上,Java中方法参数传递的是原来对象引用的copy(副本)。如果你在方法中改变这个copy中的内容,因为这个copy也是指...原创 2012-05-06 00:34:51 · 84 阅读 · 0 评论 -
Java中参数传递是值传递,还是引用传递
函数中参数传递的两种类型 2.1 1.参数类型为基本类型 如 int float 等等 2.参数类型为对象,接口引用类型 值传递,是指方法接收的是调用者提供的值 引用传递,是指方法接收的是调用者提供的变量地址 基本类型传递举例[java] view plaincopy1. public class PersonDemo 2. ...原创 2012-05-06 21:38:03 · 85 阅读 · 0 评论 -
Overload和Override的区别
overridingoverloadingoverloadedoverrideoverload 方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。 重写 Overriding 是父类与子类之间多态性的 一种表现,重载 Overloading 是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方...原创 2011-11-17 10:01:26 · 66 阅读 · 0 评论 -
java面试题
java 面试题 一、Java基础知识1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字转换为字符...原创 2011-11-29 10:43:11 · 108 阅读 · 0 评论 -
转:Java中用HttpsURLConnection访问Https链接的问题
在web应用交互过程中,有很多场景需要保证通信数据的安全;在前面也有好多篇文章介绍了在Web Service调用过程中用WS-Security来保证接口交互过程的安全性,值得注意的是,该种方式基于的传输协议仍然是Http,采用这种方式可扩 展性和数据交互效率比较高;另外一种实现方式就是用Https,他是在协议层对Http的再次封装,加入了SSL/TLS,采用该协议进行通信的数据全部 都会被加密,由...原创 2012-06-13 17:31:24 · 81 阅读 · 0 评论 -
Spring Security
在认识Spring Security之前,所有的权限验证逻辑都混杂在业务逻辑中,用户的每个操作以前可能都需要对用户是否有进行该项操作的权限进行判断,来达到认证授权的目的。类似这样的权限验证逻辑代码被分散在系统的许多地方,难以维护。AOP(Aspect Oriented Programming)和Spring Security为我们的应用程序很好的解决了此类问题,正如系统日志,事务管理等这些系统级的...原创 2012-02-10 12:35:13 · 93 阅读 · 0 评论 -
jvm 初始化之 <cinit> , <init>
public class T2{static{ System.out.println("-----.static---"); } static T2 t2 = new T2(); C t =new C(); static String str = "ff"; public T2(){System.out.println("-----....原创 2012-02-22 17:50:18 · 168 阅读 · 0 评论 -
WSServletContextListener jax-ws 源码分析
1.package com.birds.ws; 2. 3.import javax.jws.WebMethod; 4.import javax.jws.WebService; 5. 6./** 7. * @author birds 8. * @since Nov 27, 2008 9:20:16 PM 9. */10.@WebService 11.public class HelloQuick ...原创 2012-07-01 15:26:52 · 215 阅读 · 0 评论 -
有状态as无状态之线程问题
有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象.不能保存数据,是不变类,是线程安全的。线程安全性:一个类是线程安全的是指在被多个线程访问时,类可以...原创 2012-02-29 22:00:34 · 87 阅读 · 0 评论 -
动态代理 jdk as cglib asm
jdk的代理分为静态代理和动态代理,静态代理用的很少,一般都是动态代理,CGLIB代理是生成的目标类的子类,所以类和方法不能声明为final的,要不然就会有问题jdk的代理是必须要实现接口的,而CGLIB不是,但必须要引入jar包,spring中默认使用jdk 的动态代理(实现接口了),除强制设置CGLIB的代理 http://blog.csdn.net/feng_sundy/archiv...原创 2012-03-02 10:20:33 · 125 阅读 · 0 评论 -
ThreadLocal 与 Synchronized 总结
1.对于同步方法和对象: 无论synchronized关键字加在方法上还是对象上,它取得的锁都是对象,而不是把一段代码或函数当作锁――而且同步方法很可能还会被其他线程的不同对象访问。 解释一下“取得的锁都是对象”的意思:如果一个对象有多个synchronized方法,只要一个线程访问了这个对象中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法,...原创 2012-03-20 08:15:21 · 132 阅读 · 0 评论 -
java file 海量文件处理
最近在做一个文件处理的系统。大概就是扫描一个文件里面所有的子文件。(文件可能有几百万条,文件不大)如果有新文件进来。就把这个文件上传到别的服务器上去。然后在服务器在把文件转换数据入库。xml转换成java对象入库。这这里有很多种实现方式。用smb,socket.... 在测试中发现性能瓶颈在扫描文件的操作中。当文件夹里面的文件多了。所消耗的时间非常多。 第一种做法:单线程扫描文...原创 2012-07-20 17:31:01 · 375 阅读 · 0 评论 -
java 线程池详解
为什么要用线程池?诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方 式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达,服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。构建服务器应用...原创 2012-07-22 21:34:55 · 74 阅读 · 0 评论 -
jce 中的Provider
介绍谁应阅读本文件相关文档术语的注意事项发动机类和相应的SPI类步骤来实施并集成一个供应商第1步:写你的服务实现代码步骤1.1:其他JCA提供加密实现的要求和建议第2步:给你提供一个名称第3步:写你的大师班,提供的一个子类步骤3.1:密码实现的附加步骤第4步:编译你的代码第5步:将您的供应商在一个JAR文件步骤6:可选 - 注册您...原创 2013-04-09 22:53:02 · 442 阅读 · 0 评论 -
rg.hibernate.ObjectNotFoundException: No row with the given identifier exists
rg.hibernate.ObjectNotFoundException: No row with the given identifier exists在hibernate,多对多的关系中,有中间表的情况下。。当删除一端的数据。而中间表没删除的话。就可能会报这个异常...原创 2013-04-12 19:45:06 · 111 阅读 · 0 评论 -
DirectByteBuffer
DirectBuffer 通过免去中间交换的内存拷贝, 提升IO处理速度;也就是常说的zero-copyByteBufferHeapByteBufferMappedByteBufferMappedByteBuffer.map(int mode,long position,long size); READ_ONLY只读试图修改得到的缓冲区将导致抛出...原创 2013-04-17 12:17:50 · 96 阅读 · 0 评论 -
java 调 pro*c
编程环境: Windows操作系统 jdk1.5 Eclipse VC6.0一、使用 Java 的 JNI 调用 C/C++ 的动态联结库有个固定的步骤,下面将以一个最简单的 HelloWorld 例子程序来说明调用过程。这个 HelloWorld 的例子只是简单的显示 HelloWorld 消息。 通过这个例子可以了解调用流程。...原创 2012-07-31 16:16:26 · 108 阅读 · 0 评论 -
jaxb动态修改注解-类加载器
最近项目用到jaxb解析xml文件。需要定义一个javaBean模型。@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "", propOrder = {"sender","sheet" })@XmlRootElement(name = "AUTO ") public class DataFile{ @Xm...2012-11-07 17:00:49 · 136 阅读 · 0 评论 -
转自: http://blog.csdn.net/xiaxiaorui2003/article/details/3838631
转自: http://blog.csdn.net/xiaxiaorui2003/article/details/3838631 Weblogic是一个强大的企业级J2EE WEB应用中间件,使用相当广泛。 今天部署项目到WebLogic,发现代码总不能生效,查了好久都查不出原因,最后想到可能是缓存文件的原因,可是这缓存文件到底在哪里呢? 在Tomcat中...原创 2013-04-23 16:44:34 · 137 阅读 · 0 评论 -
通过分析 JDK 源代码研究 TreeMap 红黑树算法实现
通过分析 JDK 源代码研究 TreeMap 红黑树算法实现 李 刚, 自由撰稿人 简介: TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不...原创 2013-04-23 20:36:04 · 76 阅读 · 0 评论 -
Comparable与Comparator的区别(转载)
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.util下,而Comparable位于包...原创 2013-04-24 09:54:58 · 65 阅读 · 0 评论 -
Java四种引用类型
Java有四种引用类型,strongreference,softreference,weakreference,phantomreference。这四种引用的强度按照上面的顺序依次减弱,下面通过几个例子简单了解一下这四种引用类型。 StrongReference 这个不用多讲了,这是java默认的引用类型,如果不特意使用java.lang.ref下的类,那么程序...原创 2013-04-24 14:49:57 · 67 阅读 · 0 评论 -
Reference 概念
转自:http://kenwublog.com/arrange-java-reference-conceptStrong Reference, 强引用,即java标准的引用方式,表示GC从 Root Set 开始向下扫描,可以找到对应的 Strong Reference。Referent,被包装为 Weak, Soft, Phantom Reference的对象引用称之为 referen...原创 2013-04-24 15:47:29 · 193 阅读 · 0 评论 -
BitSet 数字排序
package tree2;import java.util.BitSet;public class BitSetDemo { public static void main(String[] args) { int count = 10000; BitSet bit = new BitSet(count); int i = 1000; while(i...原创 2013-04-26 14:16:09 · 112 阅读 · 0 评论 -
java中thread的start()和run()的区别
public synchronized void start() { /** * This method is not invoked for the main method thread or "system" * group threads created/set up by the VM. Any new functionality added *...原创 2013-04-27 15:03:27 · 80 阅读 · 0 评论 -
hashMap 属性说明
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable{ /** * The default initial capacity - MUST be a power of two...2013-04-28 14:20:15 · 128 阅读 · 0 评论 -
ConcurrentModificationException 源码解析
// Iterators /** * Returns an iterator over the elements in this list in proper * sequence. <p> * * This implementation returns a straightforward implementation ...2013-04-28 14:49:20 · 74 阅读 · 0 评论 -
jwsdp
一、前言。 最近正在做一个项目,根据需求计划需要一种 Object <--> XML的工具,而JAXB就非常符合需求,于是以下是近天来的研究心得。二、JAXB技术介绍1. 什么是JAXB? Java Architecture for XML Binding (JAXB) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。...原创 2012-08-07 13:04:14 · 346 阅读 · 0 评论 -
JMS开源比较
Java开源JMS消息中间件mom4j mom4j是一个完全实现JMS1.1规范的消息中间件并且向下兼容JMS1.0与1.02.它提供了自己的消息处理存储使它独立于关系数据与语言,所以它的客户端可以用任何语言开发.OpenJMS OpenJMS是一个开源的Java Message Service API 1.0.2 规范的实现,它包含有以下特性: *. 它既支持点到点(point-to-...原创 2012-08-09 13:46:58 · 130 阅读 · 0 评论 -
jawr使用
概述现在的系统都趋向于富客户端,客户端的逻辑很多是Javascript来完成的,这样导致了JavaScript文件数量的增多,加大了对网络带宽的需求。JAWR是一个java项目的javascript和CSS集成和压缩工具,提供如下的功能:1. 对网络交互的数据进行压缩,比如对JS,CSS,图片等。通过去除空行,空格,换行符,注释,变量名混淆可以大大减少JS和CSS文件大小。常用的压缩工具有JS...原创 2012-08-11 20:17:10 · 260 阅读 · 0 评论