总结:只是意外的收获吧.之前一篇是老师教的,一个点,从底层开始升起,到鼠标按下的地方开始画圈圈, 现在改变了一下,因为点上升的一个循环和画圈的循环是分开的 现在让点点自己跑,并且边跑边画圈.而且在for循环的最大值时终止“绽放”.很美 package com.aa; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; import jav…
  /** * Java 动态写轮眼 SharingganJPanel (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * 设计声明: * 1.虽然岸本是日本人,而我个人作为其模仿者,依然想表示个人对其的敬意,希望作品 * 不会玷污写轮眼的名声. * 2.由于本次设计包含过多数学计算,所以强烈建议您通过<注意事项>中的5查看图是 * 如何设计的,先不要看源码,然后自己试图去设计,而您仅需要知道:计算机计算 * 开方.三角函数.反三角等会造成误差,仅此而已. * 3.由于我本人在&…
/** * Java 动态眨眼 EyesJPanel (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * 注意事项: * 1.本程序为java程序,同时感谢您花费宝贵的时间来阅读本文档: * 2.请注意包名为:practice,文件名为:EyesJFrame,注意检查,以防一些不必要的麻烦: * 3.在完成确认2中的内容后,本程序可以直接运行,因为本软件说明都在注释中: * 4.由于本例子是继<动态中国太极图——Java原创>后编写,所以在那里面已说明的东西,不再详述, * 同时…
Java 有两种代理方式,一种是静态代理,另一种是动态代理.对于静态代理,其实就是通过依赖注入,对对象进行封装,不让外部知道实现的细节.很多 API 就是通过这种形式来封装的. 代理模式结构图(图片来自<大话设计模式>) 下面看下两者在概念上的解释: 静态代理 静态代理类:由程序员创建或者由第三方工具生成,再进行编译:在程序运行之前,代理类的.class文件已经存在了. 静态代理类通常只代理一个类. 静态代理事先知道要代理的是什么. 动态代理 动态代理类:在程序运行时,通过反射机制动态生成.…
前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= new ArrayList<>(); Type可以为类,接口 使用泛型可以使加入的,不用被强制 通配符 ArrayList<? extends Type> list= new ArrayList<>(); 代表任意泛型 多线程 在同一时间,做多件事情. 创建线程的方法 继…
绘图模式是指后绘制的图形与早先绘制的图形有重叠时,如何确定重叠部分的颜色.例如,后绘制的覆盖早先绘制的:或者后绘制与早先绘制的两种颜色按某种规则混合.主要有正常模式和异或模式两种:正常模式是后绘制的图形覆盖在早先绘制的图形之上,使早先贩图形的重叠部分不再可见.异或模式把绘图看作是按图形着色.异或模式绘图时,将当前正要绘图的颜色.原先绘制的颜色以及异或模式设定的颜色作特定的运算,得到实际绘图颜色.设置绘图模式的方法有: setPaintMode():设置绘图模式为覆盖模式(正常模式).正常模式是绘…
没有Java编写画图板程序细节-保存已画图形   一.为何我们要保存画图板上已画图形呢? 有很多人会问,为什么我们一定要保存画图板上已经画好了的图形呢?原因很简单.当我们在画图板上画完自己想画的图形后,如果进行以下几个操作,就会发现几个降低用户体验感的问题,而这些问题就是由于没有保存已画图形造成的. 首先第一种情况,如果你画完图形后,突然发现QQ或者微信来消息了,然后你一般会将画图板最小化然后去查收信息,当你再次回到画图板程序的时候你会惊奇的发现,你辛辛苦苦绘出的图片不翼而飞(哭了). 最小化之…
在上一篇java动态编译 (java在线执行代码后端实现原理(一))文章中实现了 字符串编译成字节码,然后通过反射来运行代码的demo.这一篇文章提供一个如何防止死循环的代码占用cpu的问题. 思路:由于CustomStringJavaCompiler中重定向了System.out的输出位置,肯定不能有多线程并发的情况,否则会照成System.out输出内容错乱,所以我用了 Executors.newFixedThreadPool(1), 通过Future模式来获取结果,我自定义了一个Custo…
本文转载自Java 动态调试技术原理及实践 导语 断点调试是我们最常使用的调试手段,它可以获取到方法执行过程中的变量信息,并可以观察到方法的执行路径.但断点调试会在断点位置停顿,使得整个应用停止响应.在线上停顿应用是致命的,动态调试技术给了我们创造新的调试模式的想象空间.本文将研究Java语言中的动态调试技术,首先概括Java动态调试所涉及的技术基础,接着介绍我们在Java动态调试领域的思考及实践,通过结合实际业务场景,设计并实现了一种具备动态性的断点调试工具Java-debug-tool,显著…
利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那么目前最佳的解决方案,你可能会想到 iText ,对没错... iText+(Velocity / Freemarker)可以实现.不过据我熟悉,iText本身提供的HTML解析器还是不够强大,许多HTML标签和属性无法识别,更悲催的是简单的CSS它不认识,排版调整样式会让你头大的.不要失望,接下来…
1 前言 Java的动态编译知识,真真在实际开发中并不是经常遇到.但是学习java动态编译有助于我们从更深一层次去了解java.对掌握jdk的动态代理模式,这样我们在学习其他一些开源框架的时候就能够知其然也知其所以然.下面我们来使用java的动态编译.有关java动态编译的API都在javax.tools包中 2 使用JavaCompiler接口来编译java源程序   使用 Java API来编译 Java源程序有非常多方法,目前让我们来看一种最简单的方法,通过JavaCompiler进行编译…
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾. 在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface).另一个则是 Proxy(Class…
代理模式 解说:给某一个对象提供一个代理,并由代理对象控制对原对象的引用: 代理模式需要以下几个角色: 1  主题:规定代理类和真实对象共同对外暴露的接口: 2  代理类:专门代理真实对象的类: 3  真实对象:需要被代理的对象: 代理解决的主要的业务就是需要在 真实对象的某个接口 前后处理一些事情,框架中多会用到这种功能,比如 打日志.记录时间等 静态代理 静态代理是指自己动手编写代码实现代理类: 优点:业务类只需要关注业务逻辑本身,保证了业务类的重用性.这是代理的共有优点. 缺点:每一个真实…
所谓动态代理,即通过代理类:Proxy的代理,接口和实现类之间可以不直接发生联系,而可以在运行期(Runtime)实现动态关联. java动态代理主要是使用java.lang.reflect包中的两个类. InvocationHandler类 public Object invoke(Object obj,Method method,Object[] obs) 其中第一个参数 obj 指的是代理类,method是被代理的方法,obs是指被代理的方法的参数组.此方法由代理类来实现. Proxy类…
Java 动态代理作用是什么?   1 条评论 分享   默认排序按时间排序 19 个回答 133赞同反对,不会显示你的姓名 Intopass 程序员,近期沉迷于动漫ING 133 人赞同 ① 首先你要明白静态代理的作用我们有一个字体提供类,有多种实现(从磁盘,从网络,从系统) public interface FontProvider { Font getFont(String name); } public abstract class ProviderFactory { public st…
我们经常会用到Java的动态代理技术, 虽然会使用, 但是自己对其中的原理却不是很了解.比如代理对象是如何产生的, InvocationHandler的invoke方法是如何调用的?今天就来深究下Java动态代理的原理. 1.动态代理的使用 动态代理两个最关键的类,是InvocationHandler和Proxy. 下面看下如何使用动态代理, 代码如下: package proxy; /** * Created by xinfengyao on 16-12-20. 被代理的类实现的接口 */ p…
Java 动态生成复杂 Word 阅读目录 1. 制作 Word 模版,将你需要动态生成的字段用${}替换.2. 将 Word文档保存为 xml .3. 引入项目. 项目中需要用 java 程序生成doc 文件,百度一番,发现FreeMarker 的评价比较高. FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出,至于想详细了解 FreeMarker 的请自行百度. 1. 制作 Word 模版,将你需要动态生成的字段用${}替换.如:${name}.${age} 2…
代理模式:给某一个对象提供代理对象,由代理对象控制具体对象的引用. 代理,指的就是一个角色对表另一个角色采取行动,就生活中,一个红酒厂商,是不会直接把红酒零销给客户的,都是通过代理完成他的销售业务.而客户也不会为了喝红酒到处去找厂商,他只要找到厂商当地的代理就行了,具体红酒厂商在哪里,客户不用关系,代理会帮忙处理好. 代理模式涉及到的角色: 1:抽象主题角色,声明了代理主题和真实主题的公共接口,使用任何需要真实主题的地方都可以使用代理主题. 2:代理主题角色,含有真实主题的引用,从而可以在任何时…
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这个问题应该这么问--sleep和wait有什么相同点.因为这两个方法除了都能让当前线程暂停执行完,几乎没有其它相同点. wait方法是Object类的方法,这意味着所有的Java类都可以调用该方法.sleep方法是Thread类的静态方法. wait是在当前线程持有wait对象锁的情况下,暂时放弃锁…
Java proxy是基于反射,仅仅支持基于接口的动态代理. java 动态代理是一切架构的基础,必须了解. 废话少说,先上代码获得感性认识. 示例代码有主要注释. 接口: public interface Subject { String hello(String name); void say();} 接口实现: public class ImpSubject implements Subject { @Override public String hello(String name){ r…
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import…
最近在公司看到了mybatis与spring整合中MapperScannerConfigurer的使用,该类通过反向代理自动生成基于接口的动态代理类. 于是想起了java的动态代理,然后就有了这篇文章. 本文使用动态代理模拟处理事务的拦截器. 接口: public interface UserService { public void addUser(); public void removeUser(); public void searchUser(); } 实现类: public clas…
被代理的接口特点: 1. 不能有重复的接口,以避免动态代理类代码生成时的编译错误. 2. 这些接口对于类装载器必须可见,否则类装载器将无法链接它们,将会导致类定义失败. 3. 需被代理的所有非 public 的接口必须在同一个包中,否则代理类生成也会失败. 4. 接口的数目不能超过 65535,这是 JVM 设定的限制. 动态生成的代理类的特点: 1)包:如果所代理的接口都是 public 的,那么它将被定义在顶层包(即包路径为空),如果所代理的接口中有非 public 的接口(因为接口不能被定…
转自:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html java动态代理(JDK和cglib) JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,…
java动态代理机制详解 Spring的核心AOP的原理就是java的动态代理机制. 在java的动态代理机制中,有两个重要的类或接口: 1.InvocationHandler(Interface): 每一个动态代理类都必须要实现InvocatonHandler这个接口,并且每个代理类的实例都关联到一个handler,当我们通过代理对象调用一个方法的时候,这个方法的调用就会被转发为由 InvocatonHandler这个接口的invoke方法来进行调用. public Object invoke…
逛知乎,有篇关于fastjson如此快为什么国外还是喜欢用Jackson的问题,高票答案中有一点提到了fastjson有很多写死的地方,也不太适合像spring这种依赖AOP的框架使用,顺便提到了ASM,一个可以动态的生成java字节码的框架.兴趣使然,顺便也巩固下已经荒废很久的主业.哦,对了,fastjson没有网络盛传的说比Jackson快很多,我听到同事说的是快了10倍. https://www.zhihu.com/question/44199956 1.关于asm 一个只专注java字节…
代理设计模式 定义:为其他对象提供一种代理以控制对这个对象的访问. 代理模式的结构如下图所示. 动态代理使用 java动态代理机制以巧妙的方式实现了代理模式的设计理念. 代理模式示例代码 public interface Subject { public void doSomething(); } public class RealSubject implements Subject { public void doSomething() { System.out.println( "call…
Java动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架.下面我们开始动态代理的学习. 目录导航   动态代理的简要说明 简单的Java代理 Java的动态代理 Java动态代理的原理 友情链接 动态代理的简要说明 在java的动态代理机制中,有两个重要的类或接口,一个是 In…
在上篇博客中讨论到java的静态代理, 就是通过组合的方法,前提是委托类需要实现一个接口,代理类也实现这个这个 接口,从何组合两个类,让代理类给委托类添加功能! 知道java的静态代理,我们又遇到一个问题,我们又遇到一个问题,是不是每个类要添加功能,都得重新写个类呢!怎么才能实现同样的代码,可以在其他类都能起作用! 这就是java动态代理的内容,在java中通Proxy类好AnnotationHandler接口来实现动态代理,我先尝试自己写一个自己的动态代理! 一.实现简单的自定义动态代(没考虑…
Java 动态代理机制分析及扩展,第 1 部分 王 忠平, 软件工程师, IBM 何 平, 软件工程师, IBM 简介: 本文通过分析 Java 动态代理的机制和特点,解读动态代理类的源代码,并且模拟推演了动态代理类的可能实现,向读者阐述了一个完整的 Java 动态代理运作过程,希望能帮助读者加深对 Java 动态代理的理解和应用. 引言 Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调…