1、什么是反射?

指的是程序可以访问,检测和修改他本身状态或者行为的一种能力。

Java反射机制:允许程序员在程序运行的时候获取一个类中的各种内部信息,(字段,构造方法,方法),并且可以对这些信息进行修改。

Java的反射机制主要提供以下几种功能:

  • 在运行时判断任意一个类所具有的成员变量和方法
  • 在运行时构造任意一个类的对象
  • 在运行时判断任意一个对象所属的类
  • 在运行时调用任意一个对象的方法

2、什么是Java的序列化?什么情况下需要序列化?

  • 序列化:指把对内存中的对象数据,通过某种方式存储到磁盘文件中或者传递给其他网络节点,这个过程就称为序列化。通俗来讲,就是将数据结构或者对象转化成二进制串的过程。
  • 反序列化:把磁盘文件或者其他网络节点上的对象数据,恢复成Java对象模型的过程。也就是将序列化生成的二进制码转换成数据结构或者对象的过程。

什么情况下需要序列化:

  • 持久化对象到文件或者数据库中
  • 在网络或者进程间进行通信

3、动态代理是什么?有哪些应用?

当想要给实现了某个接口的类中的方法,增加一些额外的处理。比如日志,事务等。可以给这个类创建一个代理,顾名思义就是创建一个新的类,这个类不仅包括类原有的方法,还包含额外的一些方法。但这个类并不是定义好的,而是动态生成的。具有解耦意义,灵活,扩展性强。

动态代理的应用:

  • 面向切面编程-Spring的AOP
  • 代理模式

4、怎么实现动态代理

首先必须定义一个接口,还要有一个InvocationHandler(将实现接口的类的对象传递给它)处理类,再有一个工具类Proxy(习惯性将其称为代理类,因为调用他的newInstance()可以产生代理对象,其实他只是一个生产代理对象的工具类)。利用到InvocationHandler,拼接代理类源代码,将其编译成代理类的二进制码,利用加载器加载,并将其实例化产生代理对象,最后返回。

下一节 对象的拷贝

面试题-Java基础(四)-反射相关推荐

  1. java面试题——java基础(四),java初级面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  2. Android面试题Java基础篇

    Android面试题Java基础篇,由本人整理汇总,后续将继续推出系列篇,如果喜欢请持续关注和推荐,更多精彩内容可以关注微信公众号(Android高级编程):android-tech 系列文章目录: ...

  3. Java校招笔试题-Java基础部分(四)

    导语   Java 面试题集2021版 Java基础部分三 37.abstract 的method 是否可同时是static,是否可同时是native,是否可同时是synchronized? 38.什 ...

  4. Java校招笔试题-Java基础部分(三)

    导语   Java 面试题集2021版 Java基础部分三 26.说说has a 与is a的区别 27.一个房间里有一把椅子,椅子有四条腿,房子和椅子是什么关系,椅子和椅子腿是什么关系? 28.什么 ...

  5. java实体类转map_十五道经典面试题-JAVA基础篇

    十五道JAVA基础面试题送给有需要的童鞋,但是不得不多提醒一句,打铁还需自身硬,计算机软件这个行业,技术和学历才是王道.好了,废话不多说,上菜: 一:面向对象的特征有哪些方面 1. 抽象:抽象就是忽略 ...

  6. Java校招笔试题-Java基础部分(七)

    导语   Java 面试题集2021版 Java基础部分七 73.Set 和List的区别? 74.集合框架中Collection 和Arrays 类的作用 75.TreeSet 里面放对象,如果同时 ...

  7. 1.面试题--Java基础

    一.Java基础 1.1Java中基本数据类型有哪些? byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间. short:16位, int:32位,最大数据存储容量是2的32 ...

  8. Java校招笔试题-Java基础部分(六)

    导语   Java 面试题集2021版 Java基础部分六 62.ArrayList和LinkedList 有什么异同之处? 63.HashMap和HashTable的区别 64.List和Map的区 ...

  9. Java校招笔试题-Java基础部分(五)

    导语   Java 面试题集2021版 Java基础部分五 47.String 和String Buffer的区别 48.StringBuffer和StringBuilder的区别 49.数组有没有l ...

  10. Java校招笔试题-Java基础部分(二)

    导语   Java面试题集2021版 Java基础部分二 14.hashCode方法的作用? 15.写clone()方法时,通常都有一行代码,这行代码是什么? 16.静态变量和实例变量的区别? 17. ...

最新文章

  1. 求一个字符串中连续出现次数最多的子串
  2. 个人管理 - 程序员的四个阶段
  3. ES6新增数据类型符号(2):共享符号与知名符号
  4. 方便使用FFMPEG的经验
  5. bios uefi legacy_安装win10用uefi还是legacy?win10 uefi引导修复教程
  6. POJ2104(K-th Number)
  7. Linux下5种动态库运行时搜索路径的方法
  8. unity 简易游戏打飞碟V2
  9. 项目管理十大知识领域之项目质量管理
  10. Origin软件使用TIPS
  11. 图像处理:图像灰度化
  12. 编程金融小白学 股票期权 lv.2 期权策略
  13. 测试晶面间距软件_i-TEM软件测量TEM高分辨像晶面间距.PDF
  14. linux怎么进sda12,VMare12.0.1安装Ubuntu16.04.2遇到[sda] Assuming drive cache
  15. android高分段进阶攻略(9)——ViewPager补间动画实现京东广告Banner
  16. 你因为拖延症,错过了什么?
  17. Jupiter notebook如何改变绘图大小
  18. spark系列3:spark入门编程与介绍
  19. 我的第三个Android应用软件——《新概念3》
  20. 一款刷题利器,绝了!

热门文章

  1. shiro整合SSM使用ehcache出现的net.sf.ehcache.CacheException异常解决办法
  2. 怎么用计算机直接截图,电脑怎么快速截屏?分享电脑快速截屏的五种方法
  3. 算法学习之路和程序员(技术)学习必读书籍
  4. 【转载】如何转载博客
  5. 2022QS世界大学学科排名,中国大陆上榜课程数仅次于美英,化学、材料、生物集中度最高 | 美通社头条...
  6. 温湿度传感器——室内温湿度检测环境系统
  7. 61850 中变电站的配置进行了研究和设计
  8. J2EE基础教程(1):简介和windows下环境配置
  9. zoj-Swordfish-2022-5-6
  10. linux 中了挖矿病毒