摘要: 动态代理动态代理就是通过使用字节码动态生成加载技术,在运行时生成并加载类。常用的动态代理技术包括JDK动态代理,CGLIB等,其中JDK自带的动态代理使用简单,但是功能较弱,CGLIB是高级的字节码生成库,性能更好,而且功能强大。先说说JDK动态代理的使用动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。JDK动态代理的使用 阅读全文
posted @ 2014-03-25 22:08 RichardHu 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1.必备条件:JDK1.6+(暂不要用7)Android SDKMavne 3.0.3+2.两种创建方式(1)with命令行http://developer.android.com/tools/projects/projects-cmdline.html手工创建:(导入以后convert to maven project)android create project \--target \--name \--path path/to/your/project \--activity \--package sample:android create project --target 17 ... 阅读全文
posted @ 2014-02-26 11:05 RichardHu 阅读(204) 评论(0) 推荐(0) 编辑
摘要: Win+R 输入regedit打开注册表找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment下,右边找到path,把数值复制到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment下,若没有path可以新建,然后把值对应复制进去. 阅读全文
posted @ 2014-02-22 20:27 RichardHu 阅读(469) 评论(0) 推荐(0) 编辑
摘要: maven的生命周期需要经历以下几个阶段。validate验证确保当前配置和POM的内容是有效的。这包含对pom文件树的验证。initialize初始化在执行构建生命周期的主任务之前可以进行初始化。generate-sources生成源码代码生成器可以开始生成在以后阶段中处理或编译的源代码。process-sources处理源码提供解析、修改和转换源码。常规源码和生成的源码都可以在这里处理。generate-resources生成资源可以生成非源码资源。通常包括元数据文件和配置文件。process-resources处理资源处理非源码资源。修改、转换和重定位资源都能在这阶段发生。compile 阅读全文
posted @ 2014-01-06 11:20 RichardHu 阅读(166) 评论(0) 推荐(0) 编辑
摘要: java jdk版本是jdk7的时候,对apk打包,然后deploy到机器上的时候会碰到这样一个问题[INSTALL_PARSE_FAILED_NO_CERTIFICATES]估计是签名发生了问题,后发现是由于jdk6,jdk7在对jar包签名的时候,运用了不同德签名算法。jarsigner这个插件就是负责对jar包进程签名的。在jdk6环境下,采用的是SHA1withDSA签名算法,在jdk7时采用的是SHA-256算法,所以需要在pom里面做如下配置,才能保证jarsigner产生同样的行为。 -sigalg MD5withRSA -digestalg SHA1添加... 阅读全文
posted @ 2013-12-03 13:48 RichardHu 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 代理模式的一个核心思想就是通过实现延迟加载,提升系统启动速度,提升用户体验。当然代理模式还有其他的优势,比如安全考虑,或者远程调用等等。同时,Java的动态代理技术也具有很高的灵活性。从静态代理开始先从一个实际情况下可能碰到的例子来说明代理模式。代理模式主要有三个主要组成:(1)代理类与真实主题公共提供对外的主题接口(2)代理类,用来代理或封装真实主题(3)真实主题,封装真正的业务逻辑Example:(1)主题接口,定义一个DBQuery接口1 package com.sample;2 3 public interface IDBQuery {4 public String query... 阅读全文
posted @ 2013-05-22 16:21 RichardHu 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 为了提升对某一任务或某一问题的解决速度,或者说程序设计管理,我们需要使用并发。Java的并发编程基于Java语言提供的两种基本的语法规则:1.使用或扩展java.lang.Thread类,创建线程2.实现java.lang.Runnable接口Thread类的使用Thread主要有两个重要的方法(1)start() (2)run()一个任务的工作流程是写在run()方法中,线程在实际的运行过程中也是以来run方法去进行任务执行。通过一个例子来具体说明Thread的运作过程:我们定义一个TesterThread,在run方法和start方法中加入显示的输出。 1 package com.sam. 阅读全文
posted @ 2013-05-21 14:52 RichardHu 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 在C中,我们通常会用链表,用数组来处理顺序的结构,Java中,为了方便,通常会选用List来完成各种操作Java中常见的List有:ArrayList,LinkedList(参见Java.util.各种List)ArrayListpublic class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{......................... }LinkedListpublic class L 阅读全文
posted @ 2013-04-01 18:54 RichardHu 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。point1:对扩展开放,对修改封闭point2:继承引起的类型爆炸。参考:java I/O缺点:太过复杂,虽然很好的解决了扩展的问题,但是仍然会使api编写人员头昏脑涨。JAVA的IO就是最好的参考! 阅读全文
posted @ 2013-03-09 12:48 RichardHu 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 观察者模式:定义了对象之间一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。(出版者+订阅者=观察者模式)point1:一对多关系point2:松耦合为什么要有观察者模式?观察者模式适合于这样一种情况,现在有某一类主题信息,对于它有很多的观察者,观察者关注主题的信息,同时观察者希望主题对象可以再事实更新的时候同步把更新的信息“推”送到观察者哪里,当然,为了更灵活,观察者也希望可以主动的“拉取”更新的信息,因为对于种类繁多的观察者,并不是所有的人都需要更新全部的信息,因为很有可能,更新的一大部分信息里,某些观察者是不关注的。用类图定义观察者模式使用Eclipse 阅读全文
posted @ 2013-03-05 10:09 RichardHu 阅读(284) 评论(1) 推荐(0) 编辑