学习视频:https://www.bilibili.com/video/av47886776?p=10

本来一万行的代码,使用框架以后简化到一千行

要开发框架,需要学习反射。不开发框架,不用学反射


Java文件、字节码文件,都在硬盘上存储着,并没有进内存

需要把字节码文件加载进内存以后,才有对象。

Java中万物皆对象,在内存有一个class类对象描述这个字节码文件

把三个分别封装为不同的对象,并用fields数组来描述所有的变量

所有的Person对象,都是通过类对象创建出来的


这是一个典型的反射机制(IDEA一直在运行中,可以查询有哪些方法)
定义了一个String字符串,会把字符串字节码文件加载进内存,在内存中有一个Class类对象,在class类对象中已经把所有方法都抽取出来封装为method对象了,把所有方法都放在Methods[]数组里

反射:框架设计的灵魂

  1. 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码。

  2. 反射:将类的各个组成部分封装为其他对象,这就是反射机制

     反射的好处:
    
    		(1).可以在程序运行过程中,操作这些对象。
    (2).可以解耦,提高程序的可扩展性。降低程序的耦合性,即紧密程度

获取Class类对象的方式

  1. Class.forname(“全类名”):将字节码文件加载进内存,返回Class对象 。
    (全类名,即包名.类名)
  2. 类名.class:通过类名的属性class获取
  3. 对象.getclass():getClass()方法在object类中定义着。
    (此次我不懂Object类下的getClass方法,需要去学黑马基础课,跳课了)

    //2019/12/3 10反射_Class对象功能获取Method,因为基础不好,暂停学习

【黑马JavaWeb】.1.2反射机制的更多相关文章

  1. 黑马程序员_Java基础:反射机制(Reflection)总结

    ------- android培训.java培训.期待与您交流! ---------- 反射在java中有非常重大的意义,它是一种动态的相关机制,可以于运行时加载.探知.使用编译期间完全未知的clas ...

  2. 黑马程序员——【Java高新技术】——反射机制

    ---------- android培训.java培训.期待与您交流! ---------- 一.概述 1.Java反射机制:是指“在运行状态中”,对于任意一个类,都能够知道这个类中的所有属性和方法: ...

  3. Java高新技术 反射机制

     Java高新技术 反射机制 知识概要:                   (1)反射的基石 (2)反射 (3)Constructor类 (4)Field类 (5)Method类 (6)用反射方 ...

  4. 深入理解java:1.1.1. 反射机制

    反射 到底什么是反射(Reflection)呢? 反射有时候也被称为内省(Introspection),事实上,反射,就是一种内省的方式, Java不允许在运行时改变程序结构或类型变量的结构,但它允许 ...

  5. Java:反射机制学习笔记

    目录 一.反射机制 1.概述 2.优缺点 3.类加载的过程 二.获取Class对象的三种方式 1.Class.forName("全类名") 2.类名.class 3.对象.getC ...

  6. Java学习之反射机制及应用场景

    前言: 最近公司正在进行业务组件化进程,其中的路由实现用到了Java的反射机制,既然用到了就想着好好学习总结一下,其实无论是之前的EventBus 2.x版本还是Retrofit.早期的View注解框 ...

  7. 第28章 java反射机制

    java反射机制 1.类加载机制 1.1.jvm和类 运行Java程序:java 带有main方法的类名 之后java会启动jvm,并加载字节码(字节码就是一个类在内存空间的状态) 当调用java命令 ...

  8. NPOI操作EXCEL(四)——反射机制批量导出excel文件

    前面我们已经实现了反射机制进行excel表格数据的解析,既然有上传就得有下载,我们再来写一个通用的导出方法,利用反射机制实现对系统所有数据列表的筛选结果导出excel功能. 我们来构想一下这样一个画面 ...

  9. Java反射机制

    Java反射机制 一:什么事反射机制 简单地说,就是程序运行时能够通过反射的到类的所有信息,只需要获得类名,方法名,属性名. 二:为什么要用反射:     静态编译:在编译时确定类型,绑定对象,即通过 ...

随机推荐

  1. cube打包后css顺序错误

    先说下解决办法: 把import {...} from cube-ui放在 import App from './App.vue'的前面 不然会产生如下错误 正确的顺序

  2. java面试1

    1.面向对象的特征·有·哪些方面 1)抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽 ...

  3. 4.图片左轮播图(swiper)

    一.html部分 二.js部分 三.源代码部分 <body> <div id="box"> <img src="imges/111.jpg& ...

  4. 在线程中使用ClientQuery注意的问题

    今天遇到奇怪的问题,在线程中建立一个TkbmMWClientQuery的临时对象q,及一个TkbmMWBinaryStreamFormat的临时对象bsf,第一次执行正常,再次执行时一直等待,也不产生 ...

  5. ADO.net 数据库连接new SqlConnection、Open、Close、Dispose

    今天踩了一个坑,用了一个static对象,存储了Connection,导致了并发量大时(35/s)出现单个连接的数据库请求堆积,以及并发Open导致的异常,最终使服务下线. 排查中发现有些概念不清的地 ...

  6. fastadmin html数字验证

    <input id="c" name="row[q]" data-rule="required;range(0~)" class=&q ...

  7. thinkphp5 二维码生成 composer

    进入extend文件夹 composer require endroid/qrcode 2.将二维码生成封装为服务 QrcodeServer.php代码如下: <?php /** * Creat ...

  8. Java ==和equals的区别

    首先了解默认equals方法实现代码 public boolean equals(Object obj) { return (this == obj); } 1.== (1)对于基本数据类型的变量,& ...

  9. 【计算机网络】网络地址转换NAT

    网络地址转换NAT 要知道到每个IP使能的设备都需要一个IP地址.以一个家庭为例,假设当地的ISP已为该家庭分配过一块地址,但是后期家庭中的智能设备增加(智能手机.电脑等),这些都需要IP地址才可上网 ...

  10. 【获取url 问号后参数】防中文乱码

    function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...