黑马程序员 Java代理类

AD620仪表放大器模组实战:从调零到信号放大的完整指南 本文详细介绍了AD620仪表放大器模组的实战应用,从调零到信号放大的完整指南。AD620模组以其专业级性能和易用性成为微弱信号放大的首选,集成了AD620芯片、LM358运放和7660电源转换芯片。文章提供了调零技巧、增益设置方法以及单端与差分输入的正确连接方案,并通过心电信号采集和称重传感器等实际案例展示了其广泛应用。 阅读详情

------- android培训、java培训、期待与您交流! ----------

1,JVM可以在运行期动态生成出类的字节码,这种动态生成的类往往被用作代理类,即动态代理类。
2,JVM生成的动态类必须实现一个或多个接口,所以,JVM生成的动态类只能用作具有相同接口的目标类的代理。
3,CGLIB库可以动态生成一个类的子类,一个类的子类也可以用作该类的代理,所以,如果要为一个没有实现接口的类生成动态代理类,那么可以使用CGLIB库。
4,代理类的各个方法中通常除了要调用目标的相应方法和对外返回目标返回的结果外,还可以在代理方法中的如下四个位置加上系统功能代码:
(1)在调用目标方法之前
(2)在调用目标方法之后
(3)在调用目标方法之后  
(4)在处理目标方法异常的catch块中
这是我对以上4个小点的总结:其实这4个小点并不用记,在编程的时候根据自己的思想,觉得目标方法需要放在哪里你就可以把它放在哪里。

5,这个图我觉得画得很好,就把它截了下来,看了一目了然

6,下面这个问题是黑马论坛里面一个同学贴出来的,据他所说这是他在网上看到一个面试题,我看了后就觉得这个就是在考代理的编程思想

题目:实例一个巨大但有限容量的map,当元素数量达到上限后,新加入的对象映射关系将替换最近不常用的对象映射关系。

1.    import java.util.HashMap;  

2.    import java.util.Map;  

3.    import java.util.Set;  

4.      

5.    public class MainClass {  

6.        public static void main(String[] args) {  

7.            MyMap myMap = new MyMap(3);// 定义上限为3,当然这个可以把上限定义得很大,我这里是为了方便测试  

8.            for (int i = 10, j = 100; i < 20; i++, j++) {  

9.                myMap.put(i, j);// 放入键值对  

10.              myMap.get(10);// 使用键为10的键值对  

11.              myMap.get(11);// 使用键为11的键值对  

12.              myMap.get(15);// 使用键为15的键值对  

13.          }  

14.      }  

15.  }  

16.    

17.  class MyMap {  

18.      private Map map = null;  

19.      private int toplimit;// 上限  

20.    

21.      public MyMap(int toplimit) {  

22.          this.toplimit = toplimit;  

23.          map = new HashMap();// map指向一个HashMap对象  

24.      }  

25.    

26.      public void put(Object key, Object value) {  

27.          Set<key> set = map.keySet();// map中的所有键放入一个set中  

28.          System.out.println("放入");  

29.          if (map.size() == toplimit) {// 达到上限  

30.              System.out.println("Map对象的容量已达到上限");  

31.    

32.              if (!set.contains(key)) {// 如果这个键是新放入的则执行下面的代码  

33.                  int minAccessTimes = ((Key) set.toArray()[0]).accessTimes;  

34.                  for (Object k : set) {  

35.                      if (minAccessTimes > ((Key) k).accessTimes) {  

36.                          minAccessTimes = ((Key) k).accessTimes;// 取出访问量最少的次数  

37.                      }  

38.                  }  

39.                  for (Key k : set) {  

40.                      if (minAccessTimes == k.accessTimes) {// 前面找出的最少 的次数来找到对应的键  

41.                          map.remove(k);// 移出这个键值对  

42.                          break;  

43.                      }  

44.                  }  

45.              }  

46.          }  

47.          map.put(new Key(key), value);// 放入新的键值对  

48.          for (Key k : set) {  

49.              System.out.println(k.key + "," + map.get(k).toString() + ","  

50.                      + k.accessTimes);  

51.          }  

52.      }  

53.    

54.      public Object get(Object key) {  

55.          System.out.println("使用");  

56.          Set<key> set = map.keySet();  

57.          Object value = null;  

58.          for (Key k : set) {  

59.              if (k.key.equals(key)) {  

60.                  ++k.accessTimes;// 每使用一次访问量加1  

61.                  value = map.get(key);  

62.              }  

63.          }  

64.          for (Key k : set) {  

65.              System.out.println(k.key + "," + map.get(k).toString() + ","  

66.                      + k.accessTimes);  

67.          }  

68.          return value;  

69.      }  

70.    

71.      class Key {  

72.          private int accessTimes = 0;// 存放这个键值对的访问量  

73.          private Object key = null;// 存放原始的键  

74.    

75.          public Key(Object key) {  

76.              this.key = key;  

77.          }  

78.      }  

79.  }  

80.  </key></key>  

 

YOLOv8改进 | 融合篇,YOLOv8改进主干网络为MobileNetV4+CBAM注意机制+Powerful-IoU损失函数(2024 最新IOU),全网首发,实现极限涨点 本文将在 YOLOv8 主干中引入 MobileNetV4 轻量化骨干,同时,在检测头引入 CBAM机制注意力机制,并采用 Powerful-IoU 损失函数作为模型的损失函数,其中,MobileNetV4 通过引入通用反向瓶颈(UIB)搜索块和 Mobie MQA 注意力模块创新设计,实现了模型的轻量级化;同时,MobileNetV4 采用了优化的 NAS 策略,通过粗粒度和细粒度搜索相结合的方法,显著提高了搜索效率并改善了模型质量。 阅读详情

相关推荐

手把手教你用SysMax桥接软件搞定CANoe、INCA和刷写工具(附驱动配置避坑点)

本文详细介绍了如何使用SysMax PCAN FD桥接软件实现CANoe、INCA和刷写工具的无缝对接,提供从驱动配置到多软件协同的全链路指南。重点解析了驱动安装避坑点、CANoe配置技巧、INCA集成方法以及刷写工具链优化方案,帮助汽车电子工程师构建高效开发环境。

weixin_30500105的博客 390

黑马程序员__Java中的代理类

---------------------- android培训、java培训、期待与您交流! ---------------------- 代理类Proxy 代理类的作用:客户端调用的目标类,需要添加一些功能(如日志、异常运行时间等),但是不能修改目标类代码,这种情况用代理类来实现。  即,用一类实现目标类中的所以方法。在方法内调用目标类中对应的方法,并在调用前或后添加上功能代码。让

距离 391

微处理器实验报告-实验四

实验四 可编程定时/计数器8253实验 一、实验要求 利用8086外接8253可编程定时/计数器,可以实现方波的产生。 二、实验目的 1、学习8086与8253的连接方法。 2、学习8253的控制方法。 3、掌握8253定时器/计数器的工作方式和编程原理

青竹小轩的博客 5110

黑马程序员——java拾遗之代理类及AOP

动态代理其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class 字节码,该class会继承Proxy类,并实现所有你指定的接口(您在参数中传入的接口数组);然后再利用您指定的classloader将 class 字节码加载进系统,最后生成这样一个类的对象,并初始化该对象的一些值,如invocationHandler,以即所有的接口对应的Method成员

bbdeyouxang的专栏 528

Julia Ann老司机管理系统

https://content.badgirlsusa.com/Julia_Ann-Sexy_Julia_Ann_Fucks_A_Lil_Elf's_Big_Cock_/Julia-Ann-Naughty-America-%E6%80%A7%E6%84%9F%E7%9A%84%E8%A3%98%E8%8E%89%E5%A9%AD%E5%AE%89%E4%BA%82%E6%90%9E-lil-%E7%B2%BE%E9%9D%88%E7%9A%84%E5%A4%A7%E5%85%AC%E9%9B%9E-2020

www_oracle_com的博客 22万+

告别手动画图!用Cadence SKILL写一个参数化电感PCell(附完整代码)

本文详细介绍了如何使用Cadence SKILL语言开发参数化电感PCell,实现电感版图的自动化生成。通过动态调整线宽、圈数等几何参数,自动创建端口并进行工艺规则校验,大幅提升高频电路设计效率。附完整代码示例,帮助工程师快速掌握PCell开发技巧。

weixin_30684743的博客 366

黑马程序员_java学习笔记代理类

------- android培训、java培训、期待与您交流! ---------- 张孝祥老师代理类讲解之总结 package com.qdzks; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method...

weixin_34148340的博客 125

百度新闻评论内容抓取

通过抓包分析发现,百家号手机app端文章评论内容接口为:https://ext.baidu.com/api/comment/v1/comment/getlist?appid=101&sid=1008524_2-1010050_1-1007549_23033-1007550_23035&cuid=01B5EAF73E8A83BB842BE04E4FB6C656|23200201047...

codingforhaifeng的博客 2420

黑马程序员 java基础加强--代理类

一、代理类 代理类的概念与作用: 1、作用: 要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能, 例如:异常处理,日志,计算方法的运行时间,事务管理等等。 2、 实现方式: 编写一个与目标类具有相同接口的代理类(容易实现已实现类的切换), 代理类的每个方法调用目标类的相同方法,并在调用方法时加上 系统功...

weixin_30314793的博客 138

stable-diffusion-webui的逐步部署教程

本文主要介绍了stable-diffusion-webui的逐步部署教程,希望能对使用Stable Diffusion的同学们有所帮助。 文章目录 1. 前言 2. 逐步部署教程 2.1 创建Python环境 2.2 安装依赖库 2.3 运行代码

weixin_43178406的博客 6万+

高德地图API如何使用

通过以上步骤,您可以成功接入并使用高德地图API来为您的应用添加丰富的地图功能。

QQ_778132974的博客 4783

黑马程序员--Java高新技术代理类

----------- android培训、java培训、java学习型技术博客、期待与您交流! ----- 代理类的概念和作用。 生活中的代理,济南人想买海尔的电脑,可以从济南海尔代理商那里购买,也可以直接跑到青岛来买海尔的电脑。主体的业务目标是一样的,就是买了一台电脑,从代理处购买既可以省时也省力,虽然有一些代理费,但是比自己跑到青岛买还是会便宜一些。 应用程序中的代理。编写一个和目标类

李靖黑马学习的专栏 364

华为OD机试新系统真题 【简单表达式计算】

华为OD机试 新系统真题【简单表达式计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【简单表达式计算】题解

qq_45776114的博客 674

黑马程序员--java代理类及AOP的概念!

---------------------- android培训、java培训、期待与您交流! ---------------------- 什么是代理?    生活中在居住的附近有一家摩托罗拉手机代理销售商,摩托罗拉总部在美国,要是想买一台摩托罗拉手机,到美国总部去买和到附近的代理销售商去买,最终的目的是一样的,都是买同一种牌子同一款手机,都解决了核心问题,但是从代理商处购买

b445458776的专栏 416

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

黑马程序员java学习日记十四 代理类的作用和原理以及APO概念

代理类的作用和原理以及APO概念   1.编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码。(参看下页的原理图) 如果采用工厂模式和配置文件的方式进行管理,则不需要修改客户端程序,在配置文件中配置是使用目标类、还是代理类,这样以后很容易切换,譬如,想要日志功能时就配置代理类,否则配置目标类,这样,增加系统功能很容易,以后

u011532797的专栏 894

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【黑马程序员】java中的--------------代理类与动态代理技术

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 一、代理的理解: 1、 生活中的代理;就好比我们买电脑,我们不必亲自去厂家购买,只有去代理商店去买就可以了,既方便,而且还可以享受代理商店的一些特有的服务。比如:厂家,代理商,客户这三者这间的关系客户买产 品并不直接与生产

u011079455的专栏 761

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

黑马程序员------代理类的作用

http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

cangchengkun的专栏 436

黑马程序员_王康 java代理

1. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式一般涉及到三个角色: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替

wk458469748的专栏 8074

黑马程序员——Java的代理模式

------- android培训、java培训、期待与您交流! ----------

黑马程序员学习日记 2383

黑马程序员————代理类相关知识及AOP初步

什么是代理类 代理类是用来为原有程序的功能扩展。 程序中的代理 1>要为已经存在的多个具有相同接口的目标类的各个方法增加一些系统功能。 2>编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加入系统功能的代码。 3>如果采用工厂模式和配置文件的方式进行管理,则不需要修改客户端程序,在配置文件中配置是使用目标类还是代理类,这样也很容易切换。

mu_jiao的专栏 518

黑马程序员_高新技术5(动态代理类,代理类的作用与原理,AOP框架应用)

------- android培训、java培训、期待与您交流! ---------- 一.代理类 1.代理类概述 1)代理的作用与理解: 要为已存在的多个具体相同接口的目标类的各个方法增加一些系统功能, 例如:异常处理,日志,计算机方法的运行时间,事务管理,等等,那么就用到了代理类,  代理类使用过程 :让代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能

xiewei的专栏 799

黑马程序员 java动态代理

动态代理概述: JVM在运行期间动态生成出某类的兄弟类(代理类),代理类与原类实现:调用相同的类加载器,实现相同的接口; 并且代理类绑定了一个InvocationHandler实例对象(代理类真正的操作者)。(注意这三条)这样,调用代理类 实例化对象的时候就会去执行InvocationHandler接口的方法,invoke(),在invoke方法中我们可以进行任意的操作, 包括原类的方法调

FengLu369的专栏 601

黑马程序员 java增强2

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------     掌握java加强这两部分的话,很厉害,很显然,自己还没有到那个程度,再接再厉吧!希望一切顺利! 1、泛型:@1:ArrayList类定义和ArrayList类引用如下术语:             整个称为Array

u012588267的专栏 590

黑马程序员---代理类

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- BeanFactory类: public class BeanFactory { private Properties properties = new Properties(); public BeanFactory(Inp

u012548528的专栏 470

黑马程序员-8-代理类

------- android培训、java培训、期待与您交流! ----------  49.分析代理类的作用与原理及AOP概念  1.代理的概念与作用   1)生活中的代理:   eg:电脑的代理商的例子   2)程序中的代理      要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,    例如,异常处理,日志,计算方法的运行时间,事务管理,等等,怎么做呢

u010931512的专栏 295

黑马程序员__Poxy代理类

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 代理的概念与作用 生活中的代理 武汉人从武汉的代理商手中买联想电脑和直接跑到北京传智播客旁边来找联想总部买电脑,你觉得最终的主体业务目标有什么区别吗?基本上都一样吧,都解决了核心问题,但是,一点区别都没有吗? 程序中的代理 要为已存在的多个具有相同接口的目标类的各个方法增...

学习笔记 272
上一篇: 黑马程序员 Java底层类加载器
下一篇: 黑马程序员 交通灯系统
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值