专栏首页凯哥JavaJava中反射学习系列教程之二

Java中反射学习系列教程之二

在上一篇文章《Java中反射学习系列教程之一》中我们学了什么是反射;反射中的反字怎么理解;以及反射的特点。今天我们主要讲的内容:

1:为什么需要反射

2:JDK文档中反射相关的API

一:为什么要使用反射?

1.1:Java中编译类型有哪些?

Java中编译可以分为:静态编译和动态编译两种

静态编译:

在编译期间就已经确定了对象类型,只要绑定对象一致就可以编译通过。 

如:Person p = new Person() 

动态编译: 

在运行期才确定类型进而来绑定对象。 

动态编译最大限制的发挥了 Java 的灵活性,体现了多态的,可以减少类与类之间的的 耦合性。也可以理解为降低了耦合 

综上所述:使用反射和好处: 

1:最大限度的发挥了 Java 的灵活性 

2:体现了面向对象的多态 

3:降低了程序之间的耦合性 

二:JDK文档中反射相关的API

相关API位置:在 java.lang.class 类中 

通过反射获取对象完整包名 

通过对象 getClass.getName()或 getClass.toString()方法

Demo 演示: 

/** 
 * 通过反射获取到对象的全包名
 
 */ 
@Test 
public void () throws  Exception{ 
    Person person = new Person(); 
    log.info("person 对象的全包名为:{}",person.getClass().toString()); 
    log.info("person class getName:{}",person.getClass().getName()); 
}

输出结果: 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringBoot解析Excel

    现在很多web应用中,导入excel导出excel很常见,这篇文章就讲讲导入excel文件。

    秃头哥编程
  • Linux使用Shell脚本部署jar包项目

    https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151....

    Dream城堡
  • maven环境搭建及简单介绍

    maven是使用java开发的,所以要使用maven,必须得有jdk,这里就不再赘述了。

    秃头哥编程
  • Java编程的一些小技巧-----基础语法篇(1)

    今天在github上面看到了一个很好的项目,是在Stack Overflow上面点赞数top100的关于Java的回答,看了一些,感觉十分实用,对于新手来说,能...

    秃头哥编程
  • Java编程的一些小技巧-----基础语法篇(2)

    比如上面的代码,只跳出了最里面的一层循环,如果要跳出两层循环,应该咋办?可以用break+label的语法,例子如下

    秃头哥编程
  • 面试中的 ThreadLocal 原理和使用场景

    相信大家不管是在网上做题还是在面试中都经常被问过 ThreadLocal 的原理和用法,虽然一直知道这个东西的存在但是一直没有好好的研究一下原理,没有自己的知识...

    纯洁的微笑
  • Java编程的一些小技巧-----基础语法篇(3)

    总之,如果你无需关心同步(synchronized)问题,我会建议用HashMap。反之,你可以考虑使用ConcurrentHashMap。

    秃头哥编程
  • 个推基于Zipkin的分布式链路追踪实践 顶

    随着微服务架构的流行,系统变得越来越复杂,单体的系统被拆成很多个模块,各个模块通过轻量级的通信协议进行通讯,相互协作,共同实现系统功能。

    个推君
  • JAVA设计模式之单例模式

    概念:java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。

    秃头哥编程
  • 浅谈一个Java类的生命周期

    一个Java类从被加载到虚拟机内存开始,到卸载出内存为止,它经过了哪些步骤呢?这篇文章就来简述一下关于Java类生命周期相关的知识,其中每个生命周期的具体内容不...

    beifengtz

扫码关注云+社区

领取腾讯云代金券