Java基础知识回顾--反射机制

VTK基础教程(1)- vtkPolyData 介绍 目录 VTK的编译与环境搭建 VTK一般渲染流程 VTK数据类型-vtkPolyData 使用vtk自带的多边形数据 使用自己创建的数据 添加顶点颜色 添加面颜色 VTK的编译与环境搭建 这部分目前已经有了大佬做了成熟的傻瓜式配置,大家可以参考这篇文章:VTK+VS2019(或其他版本均可) 傻瓜式一站式 配置_Nancy_fairy的博客-优快云博客_vs2019 vtk VTK一般渲染流程 这部分的介绍也很多,大家可以参考这篇文章:VTK笔记-了解VTK_黑山老妖的博客. 阅读详情

Reflection

ClassLoader的类加载机制
并非一次性加载。
需要的时候加载(运行期间动态加载)。
java-verbose:class可以观察类的具体加载过程。
static语句块在加载后执行一次。
dynamic语句块每次new新的对象都会执行,等同于构造方法中语句,用得也比较少。

这里写图片描述

首先bootstrap class loader把其他的Class loader给load进来,然后不同的class loader去load不同的class。

public class TestClassLoader {

    public static void main(String[] args) {
        ClassLoader cl = TestClassLoader.class.getClassLoader();
        while (cl != null) {
            System.out.println(cl.getClass().getName());
            cl = cl.getParent();
        }
    }

}

这里解释一下getParent这个方法不是得到父类,因为他们之间没有继承关系,只是得到加载的顺序,是层次关系。
classloader在load class的时候首先找上一层loader是不是load过了,如果已经load过了就不会再load了,安全性非常好。这样自己写的String.class永远没有机会执行。

这里写图片描述

package yn;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Reflection {

    /**
     * @param args
     * @throws ClassNotFoundException
     * @throws IllegalAccessException
     * @throws InstantiationException
     * @throws InvocationTargetException
     * @throws IllegalArgumentException
     */
    public static void main(String[] args) throws ClassNotFoundException,
            InstantiationException, IllegalAccessException,
            IllegalArgumentException, InvocationTargetException {
        String str = "yn.T";
        Class c = Class.forName(str);
        Object o = c.newInstance();
        Method[] methods = c.getMethods();
        for (Method m : methods) {
            if (m.getName().equals("m")) {
                m.invoke(o, 1, 2); // 参数是变长的
                Class returnType = m.getReturnType();
                System.out.println(returnType);
                for (Class paramType : m.getParameterTypes()) {
                    System.out.println(paramType.getName());
                }
            }
        }
    }
}

class T {
    static {
        System.out.println("T loaded..");
    }

    T() {
        System.out.println("T constructed..");
    }

    public void mm() {
        System.out.println("mm invoke..");
    }

    public int m(int a, int b) {
        System.out.println(a + b);
        return a + b;
    }
}

这里写图片描述

相关推荐

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

JVM -verbose参数详解

箭头前后的数据256K和160K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有256K-160K=96K的对象容量被回收,括号内的数据124096K为堆内存的总容量,收集所需要的时间是0.0042708秒(这个时间在每次执行的时候会有所不同)。在虚拟机发生内存回收时在输出设备显示信息,格式如下: [Full GC 256K->160K(124096K), 0.0042708 secs] 该参数用来监视虚拟机内存回收的情况。* JVM -verbose[:class|gc|jni] 参数测试。

QQ1057081261的专栏 1648

《uni-app 长列表优化:虚拟列表(vue-virtual-scroller)解决 1000+ 数据渲染卡顿》(附虚拟列表封装与多端适配)

本文详细介绍了虚拟列表技术在前端长列表渲染中的优化方案。针对传统v-for渲染导致的性能问题(内存占用高、渲染阻塞、滚动卡顿),提出基于vue-virtual-scroller的虚拟列表解决方案,通过可视区域渲染和DOM复用实现性能突破。文章包含核心原理、组件封装、多端适配及性能对比,并给出常见问题的解决方法。实践表明,该方案可将1000条数据的首次渲染时间从3800ms降至420ms,滚动FPS提升至55帧,显著改善用户体验。

qq_59041750的博客 2107

java 启动参数大全

java启动参数共分为三类: 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 目录 一.标准参数 二.非标准参数 三.非Stable参数 一.标准参数 ...

布道 4977

VMware Ubuntu虚拟机突然断网?我用5步彻底解决了(附避坑指南)

Ubuntu虚拟机断网问题通常由网络配置冲突和VMware服务未正确绑定导致。本文提供5步解决方案:1)清理Ubuntu重复有线连接;2)重启Windows主机的VMware服务;3)检查VMware虚拟网络配置;4)重新配置Ubuntu网络参数;5)测试网络连通性。关键避坑点包括:避免多连接共存、修改配置后必重启服务、确保虚拟网卡绑定主机。通过"网卡状态→IP/路由→网关→服务"的排查思路,可快速解决虚拟机网络故障。文末附有详细的故障症状对照表,便于快速定位问题。

m0_58530495的博客 626

HITECH海泰克触摸屏如何使用串口进行程序的下载和上传(拨码设置)以及离散量报警相关设定?

HITECH海泰克触摸屏如何使用串口进行程序的下载和上传(拨码设置)以及离散量报警相关设定? 首先,我们进行触摸屏一侧的设置,如下图所示: 触摸屏背后有拨码开关,当我们需要上传或下载程序时,需要将7#开关拨到上面; 左侧是DC24V电源接口; 下方是COM1、COM2和COM3通信端口,选择我们需要的端口后,插上通信电缆,拔掉24V电源,然后重新上电; 然后,屏幕会进入如下图所示界面,此时显示当前选择的端口为COM2,我们点击F2“config”,进入设置界面, 可以看到COM2端口是“Enabled”

Robot_PLC_HMI_Automation 3万+

java -verbose命令

java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。 1、 -verbose:class 在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在启动参数中加上 -verbose:class 可以查看到加载的类的情况。 2、 –verbose:gc 在启动参数中加上 -verbose:g

赶路人儿 1万+

从零手搓大模型(一)文本如何变成 LLM 的输入

本文介绍了从原始文本到LLM输入向量的完整处理流程。主要内容包括: 文本预处理:通过正则表达式将原始文本分割成token列表,处理标点和空格。 词表构建:创建token到ID的映射字典(vocabulary),这是文本数字化的关键步骤。 简单tokenizer实现:封装了编码(encode)和解码(decode)功能,完成文本与token ID的相互转换。 处理流程:原始文本 → 分词 → token ID → 嵌入表示 → 最终输入向量。 数据形状变化:从字符串逐步转换为(batch_size, cont

echo的博客 998

如何动态打开verbose class

如何动态打开verbose class         在一个Java企业环境中,可能会存在这样那样和类相关的情况,比如类冲突(classloader加载的类不是我们所需要的),perm gen内存泄漏等。出现这样的情况,我们可能需要打开verbose class来trace class的load、unload情况。通过打开verbose class的格式如下:java %JAVA_OPTIO...

jceator123的博客 482

【Android 11】使用Android Studio调试系统应用之Settings移植(五):编译Settings 模块、解决编译错误

基于Andorid 11,系列第5篇文章,本章开始,终于轮到解决正主Settings的编译问题了,使用android studio编译出Settings.apk,能看到这一章的同学,也着实不容易了,再接再厉

上周的博客 3919

【存算一体架构实战】四、突破编译壁垒:手把手实现AI模型到存算硬件的自动映射

摘要:存算一体硬件的性能优势难以充分释放,核心瓶颈在于传统编译器无法高效适配"计算-存储融合"的新型架构。本文系统剖析传统编译流程在存算硬件上的三大痛点:数据布局不匹配导致90%带宽浪费、算子映射效率低使硬件利用率不足30%、缺乏专用优化_pass导致延迟居高不下。通过构建MLIR-PIM编译框架,实现从AI模型到存算硬件的全自动化映射,核心流程包括:TensorFlow模型→MLIR Dialect转换→存算优化_pass→硬件指令生成。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 242

CatalinaDaemon 中的反射机制

引子:最近学了一下 Tomcat ,觉得自己有必要回顾一下 Java 反射机制,加深理解了。 一、反射知识的回顾  这里部分引用 李兴华的java se 实战经典中对 Java 反射的讲解。  反射之中包含了一个“反”的概念,所以要想解释反射就必须先从“正”开始解释,一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化对象,但是“反”指的是通过对象找到类。 package ...

li_xunhuan的博客 356

用 CL_SALV_TREE 把层级数据做成一棵会呼吸的 ABAP ALV 树:从类继承扫描到事件交互的完整拆解

本文介绍了SAP ABAP中使用CL_SALV_TREE实现树形ALV报表的方法。该技术将层级数据(如类继承关系)以可展开/折叠的树形结构展示,解决了传统ALV Grid无法直观显示层次结构的问题。核心实现采用"数据表+层级表"分离的设计模式:数据表存储节点业务信息,层级表维护父子关系。通过add_node方法动态构建树形结构,支持设置节点文本、图标和事件。文中提供了完整示例代码,演示了如何递归扫描ABAP类继承关系并构建树形ALV,这种技术特别适用于展示类族谱、权限树等层级数据,能显著

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 206

JAva入门 活着_java基础回顾

最近在回顾java基础知识,收货颇多,在此做个总结1.List和Set的区别---List-----可以允许重复的对象-----可以插入null元素-----是一个有序容器,保持着每个元素的插入顺序,输出顺序就是插入顺序-----常用的实现类有ArrayList、LinkedList和Vector---Set-----不允许重复对象-----无序容器-----只允许一个null元素-----最流行...

weixin_35916710的博客 154

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java object能用大小排序吗_java基础回顾

最近在回顾java基础知识,收货颇多,在此做个总结1.List和Set的区别---List-----可以允许重复的对象-----可以插入null元素-----是一个有序容器,保持着每个元素的插入顺序,输出顺序就是插入顺序-----常用的实现类有ArrayList、LinkedList和Vector---Set-----不允许重复对象-----无序容器-----只允许一个null元素-----最流行...

weixin_39773158的博客 175

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java基础知识点杂谈(二)——常用系统类的使用

本文大致测试整理了一些常用系统类的常用方法,并附上部分原理(有很多资料是网上找的,地址一般都附在那个模块后面。当然这个翻阅别人优秀博客的过程也受益良多,尤其是String和Class的部分,以前不懂的地方看完后便豁然开朗)。

风过孤屿,山海自成诗行。 1277

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java SE

Java知识总结 1.Java基本常识 Java三大版本 Java SE 标准版,桌面程序,控制台开发等 Java ME 嵌入式开发(凉了) Java EE E企业级开发(偏向服务器开发,web端) JDK、JRE、JVM JDK,Java工具包 JRE,Java运行时环境 JVM,Java虚拟机 编译器和解释器 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所

qq_41175610的博客 152

Hadoop系列番外篇之一文搞懂Hadoop RPC框架及细节实现(深度好文,纯干货)

网络通信模块是分布式系统中最底层的模块。它直接支撑了上层分布式环境下复杂的进程间通信(Inter-Process Communication, IPC)逻辑,是所有分布式系统的基础。远程过程调用(Remote Procedure Call, RPC)是一种常用的分布式网络通信协议。它允许运行于一台计算机的程序调用另一台计算机的子程序,同时将网络的通信细节隐藏起来,使得用户无须额外地为这个交互作用编程。

清风的博客 1222

传智博客课堂学习笔记3.27

传智博客课堂学习笔记3.27复习.可变参数.增强for循环.静态引用.装箱、拆箱.内省 java.beans.枚举Enum.反射(构造对象【默认构造器和指定构造器,如果构造器属性为private,通过getDeclaredConstructor,setAccessiable(true)】, 读写Field,获取属性【getter和setter方法、属性类型】,获取和调用方法【如果方法是stat

xajhzc的专栏 453

Java反射机制

反射机制的优缺点优点:● 1.增加程序的灵活性,可以在运行的过程中动态对类进行修改和操作● 2.提高代码的复用率,比如动态代理● 3.可以在运行时轻松获取任意一个类的方法、属性,并且还能通过反射进行动态 调用缺点:● 1.反射会涉及到动态类型的解析,导致性能要比非反射调用更低● 2.使用反射技术通常要在一个没有安全限制的程序运行.使用时需要一些限制● 3.反射可以绕过一些限制访问的属性或者方法,可能会导致破坏代码本身的封装性。

2201_75691974的博客 1561

【Spring6】| 回顾反射机制

【Spring6】| 回顾反射机制

m0_61933976的博客 770

回顾反射机制

在这里也能看出反射机制与之前学的配置文件的联系了,在反射机制中知道一个类,知道一个属性名,就可以调动set方法了,在配置文件中就是set注入。

m0_74146036的博客 340

JavaSE——基础知识回顾19之反射机制

文章目录 文章目录文章目录前言一、反射是什么?二、获取字节码文件的三个方式总结 前言 提示:反射机制在基础知识的学习中属于比较重要的部分,学好反射有助于后期第三阶段的学习。这也是我一直想要学好的一个阶段,无论如何需要抓紧它。 未完成状态的文章,先不要急着评论~~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、反射是什么? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法

雍仲的迎客茶庄 285

(20)回顾反射机制

这样的设计也非常合理,因为在同一个类当中,方法是支持重载的,也就是说方法名可以一样,但参数列表一定是不一样的,所以获取一个方法需要提供方法名以及每个形参的类型。获取一个方法,需要告诉Java程序,你要获取的方法的名字是什么,这个方法上每个形参的类型是什么。我们如何获取到 logout()、login(String,String)、login(String) 这三个方法呢?第二步:获取方法login(String,String)(四要素之一:哪个方法)要使用反射机制调用一个方法,首先你要获取到这个方法。

a52djibg1的博客 627

Java 基础 - 反射机制详解

本文综合多篇文章后,总结了Java 反射的相关知识,希望可以提升你对Java中反射的认知效率。

qq_63353796的博客 1272
上一篇: Java基础知识回顾--正则表达式
下一篇: Java设计模式--迭代器模式
杜鲁门
博客等级 码龄11年 219粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值