java基础部分复习(java反射)

     2022-04-06     383

关键词:

关于反射:

1.需要了解jvm类的加载机制(java高级部分会详细介绍)

2.反射的API其实只要多看看API和源码,很容易就懂了。

下面是代码,简单讲解反射的使用:

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * JAVA反射机制(首先对于反射,建议大家去看一下javaapi,要懂得看源码,这样才能更深入了解反射的原理,并且能很好的在工作中使用)
 * 定义:
 * JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;
 * 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
 * @author dyq
 *
 */
public class ReflexTest {
    public static void main(String[] args) {
        try {
            /**
             * 返回一个运行时的class对象
             */
            Class<?> classAnimal = Class.forName("cn.review.day03.entity.Animal");
            /**
             * 创建由此类对象表示的类的新实例
             */
            Object object = classAnimal.newInstance();
            
            /**
             * 获取所有构造方法
             */
            Constructor<?>[] constructors = classAnimal.getConstructors();
            for(int i=0;i<constructors.length;i++) {
                System.out.println(constructors[i]);
            }
            /**
             * 获取类对象中的方法,并调用该方法
             */
            classAnimal.getMethod("setName",String.class).invoke(object, "大象");
            classAnimal.getMethod("setAddress",String.class).invoke(object, "北京");
            classAnimal.getMethod("setCount",int.class).invoke(object, 20);
            Method method = classAnimal.getMethod("getMyString");
            System.out.println((String)method.invoke(object));
            /**
             * 获取共有属性方法getFields
             * 获取私有属性方法getDeclaredFields
             */
            Field[] fields = classAnimal.getDeclaredFields();
            for(int i=0;i<fields.length;i++) {
                Field field = fields[i];
                System.out.println(field);
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

java反射(复习)

...代码的一种解释.元注解修饰注解,约束注解,定义注解的一部分.@Retention的英文意为保留期的意思。当@Retention应用到一个注解上的时候,它解释说明了这个注解的的存活时间。@Target指定注解放置的位置@Repeatable解决一个类上不能标... 查看详情

java基础部分复习(七java枚举类型使用)

/***java中的枚举*枚举(enum),是指一个经过排序的、被打包成一个单一实体的项列表。一个枚举的实例可以使用枚举项列表中任意单一项的值。*枚举在各个语言当中都有着广泛的应用,通常用来表示诸如颜色、方式、类别、状... 查看详情

java复习总结思维导图

...程计算机网络操作系统算法和数据结构设计模式JavaSEJava基础语法特性关键字面向对象集合部分Java进阶线程锁JDK反射JVMGCIO和NIO,AIOJavaEESpringAOP与事务,权限控制S2SH整合开发Spring,JPA整合HibernateORM与持久化映射延迟加载,性能优化H... 查看详情

3.java语言基础部分—class类与反射

什么是Java反射机制?    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能... 查看详情

4.java语言基础部分—枚举与反射

枚举//定义枚举 enumMyEnum{ ITEM_A, ITEM_B } publicstaticvoidmain(String[]args){ //values()获取所枚举项的集合 MyEnum[]enums=MyEnum.values(); for(MyEnummyEnum:enums){ print(myEnum.toString());//输出ITEM_AITEM_B 查看详情

深入解析java反射-基础

深入解析Java反射(1)-基础最近正筹备Samsara框架的开发,而其中的IOC部分非常依靠反射,因此趁这个机会来总结一下关于Java反射的一些知识。本篇为基本篇,基于JDK1.8。 一、回顾:什么是反射? 反射(Reflection)是Java程序开发... 查看详情

反射(基础知识)

一、反射的概念反射是java语言提供的一项非常吸引人的特性,利用反射可以在运行时对程序进行动态的控制。开发使用反射特性的程序需要使用一套专门的工具类,这些类大部分都位于java.lang.reflect包中。二、Class类Class类属于ja... 查看详情

android--面试复习指南之java基础(代码片段)

Java基础中考察频率比较高的是Object、String、面向对象、集合、泛型和反射。一、抽象类与接口的区别?抽象类可以提供成员方法的实现细节,而接口中只能存在public抽象方法;抽象类中的成员变量可以是各种类型的&#... 查看详情

反射和泛型的复习

反射在框架的设计中很多都用到了反射,比如spring中我们在applicationContext.xml中配置类,通过反射+工厂模式得到类的实例,就可以操作类了——操作一个类可以分为操作属性,构造方法,普通方法。反射的原理我们编写的Ja... 查看详情

java反序列化漏洞——反射与反序列化基础

    ​​​Java安全中除了常见的OWASPTOP10相关的漏洞,还有大部分的漏洞是与JAVA反序列化相关的,而JAVA反序列化又与JAVA的反射机制相关,因此有必要对JAVA反射进行了解学习。JAVA反射即JAVA代码在JAVAJVM虚拟机中运行... 查看详情

java复习总结思维导图

...程计算机网络操作系统算法和数据结构设计模式JavaSEJava基础语法特性关键字面向对象集合部分Java进阶线程锁JDK反射JVMGCIO和NIO,AIOJavaEESpringAOP与事务,权限控制S2SH整合开发Spring,JPA整合HibernateORM与持久化映射延迟加载,性能优化H... 查看详情

java基础复习

查看详情

java安全-入门篇开发基础(mavenjavamvc反射类加载代码远程调试)(代码片段)

在学习Java安全之前首先对Java开发的基础知识简单学习文章目录基础知识核心技术介绍MavenJavaMVCServletFiiter反射类加载远程调试基础知识因为Java体系比较庞大,没有学过Java开发的初学者很容易搞晕,介绍部分常用技术核心... 查看详情

java基础--泛型集合io反射

计划把Java基础的有些部分再次看一遍,巩固一下,下面以及以后就会分享自己再次学习的一点笔记!不是有关标题的所有知识点,只是自己觉得模糊的一些知识点。1.  对于泛型类而言,你若没有指明其类型,默认为Object;2.... 查看详情

复习:java集合框架重点部分

 复习HashSet方法:packagecom.java.collection;importjava.util.HashSet;importjava.util.Iterator;importjava.util.Set;classPeopleimplementsComparable{Stringname;intid;People(Stringname,intid){this.name=na 查看详情

[java基础]反射概述

查看详情

关于java反射基础知识/编码经验的一些总结(代码片段)

写在前面温习一下毕业以来学习的东西。准备做成一个系列。所以对于每一部分技术点进行一个笔记整理。更多详见java面试的一些总结笔记主要是以网上开源的一本《Java核心面试知识整理》面试笔记为原型,结合工作中学... 查看详情

java基础-反射(代码片段)

反射基础反射静态语言和动态语言动态语言静态语言JavaReflectionJava反射机制研究及使用Java反射机制提供的功能Java反射优点和缺点Java反射相关的主要APICLass类获取Class类的实例哪些类型可以有Class对象Java的内存分析了解:类的... 查看详情