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

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践 (应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。 阅读详情

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;
    }
}

这里写图片描述

有了网段为什么还要有VLAN??? 近几日,在学习VLAN及VXLAN方面的知识,对于产生原因做一个总结及详解。 VLAN(Virtual Local Area Network,虚拟局域网),其主要用途是用来缩小广播域,即进行隔离。 先对广播域的一个概念做如下描绘:如下图,主机A、B、C、D均连接在交换机SW1上,其中A、C同网段为192.168.252网段,而B和D同网段,为192.168.250网段。 现,假如A与C第... 阅读详情

相关推荐

Conformal LEC逻辑等价性检查介绍和参考脚本

分为三个产品:Conformal L、Conformal XL、Conformal GXL。L是功能性检查,XL支持复杂数据通路的综合和APR优化,GXL支持定制的stdcell和定制memory的检查。Cadence Conformal Equivalence Checker,就是常说的LEC,可以用来验证RTL、门级网表、甚至spice网表的逻辑等价性。do文件是conformal的脚本文件,可以由综合工具(RTL Compiler/Genus)自己产生(write_do_lec),也可以手写。

NanDigits的博客 7247

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

【AAAI 2025】轻量级特征增强新范式!FCM 模块助力小目标检测,即插即用提升模型泛化能力

本文介绍了AAAI 2025提出的轻量级特征增强新范式FCM模块,它通过显式分离并双向交互语义与空间特征,有效解决了小目标检测中特征信息失配的核心难题。该模块设计精巧,计算开销极低,能够即插即用式地嵌入YOLO等主流检测网络,显著提升模型对小目标的泛化检测能力,尤其适用于遥感、自动驾驶等对计算资源敏感的实际场景。

weixin_29056145的博客 287

java 启动参数大全

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

布道 4977

WebRTC Qos优化杂记

本文是笔者对WebRTC Qos性能研究、优化的一些思考,希望对有兴趣的读者有一些启发。

sonysuqin的专栏 6677

富芮坤FR801xH蓝牙协议栈启动流程和notify实现温度数据主动上传

文章目录一、蓝牙协议栈启动流程1.1 初始化代码1.2 初始化流程1.3 回调函数里的初始化二、notify实现2.1 notify介绍2.2 notify实现2.3.1 定义数据2.3.2 获取连接号conidx2.3.3 gatt_notification函数的使用三、notify温度上传测试3.1 蓝牙调试工具3.2 蓝牙调试器设置3.3 测试结果四、参考链接   基于sdk开发的好处是方便项目的快速落地,现在用的是SDK里面的源文件,目前只是学习FR801xH芯片的特性,裁剪这个SDK需要点时间,

weixin_43810563的博客 4318

java -verbose命令

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

赶路人儿 1万+

openEuler 22.03 LTS SP4离线安装UKUI桌面全攻略(附依赖包下载)

本文提供openEuler 22.03 LTS SP4系统离线安装UKUI桌面环境的完整实战指南。针对无网络环境,详细解析了利用dnf工具下载依赖包、配置离线软件源、处理依赖冲突及安装后优化的全流程,并附带了关键依赖包资源,帮助运维人员高效完成图形化部署。

c7d8e9的博客 479

如何动态打开verbose class

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

jceator123的博客 482

Playwright Java环境配置避坑指南:浏览器路径、类加载与离线部署

Playwright作为现代端到端测试框架,其Java SDK突破了传统Selenium的Driver管理模式,将Chromium/Firefox/WebKit内核视为可编程运行时资源。其核心原理在于SDK与浏览器二进制分离——Maven仅管理Java字节码,而浏览器需独立下载、校验与沙箱加载。这一设计带来显著技术价值:跨平台一致性、进程隔离安全性及多浏览器并行能力;典型应用场景涵盖Spring Boot集成测试、金融级离线CI/CD、Kubernetes容器化部署及Air-Gapped封闭环境。然而,因J

weixin_32956805的博客 675

一个测试工程师走进一家酒吧……

一个测试工程师走进一家酒吧,要了一杯啤酒;一个测试工程师走进一家酒吧,要了一杯咖啡;一个测试工程师走进一家酒吧,要了 0.7 杯啤酒;一个测试工程师走进一家酒吧,要了-1 杯啤酒;一个测试...

字节跳动技术团队官方博客 4885

CatalinaDaemon 中的反射机制

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

li_xunhuan的博客 356

【OpenCV】图像的像素直方图 图像特征点 cv::FAST cv::ORB ORB_SLAM2::ORB

文章目录图像直方图代码实现cv::FAST和cv::ORB 检测图像特征点cv::FAST和cv::ORB 检测图像特征点代码实现ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比代码实现 图像直方图代码实现 图像是由不同数值(颜色)的像素构成的,像素值在图像中的分布情况是图像的重要属性,可以用直方图修改图像的外观,标识图像的内容,检测图像中特定的物体或纹理。 单通道灰度图像中每个像素都有一个 0(黑色)-255(白色)的整

小秋 AI SLAM 入门实战教程 2510

JAva入门 活着_java基础回顾

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

weixin_35916710的博客 154

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

weixin_39773158的博客 175

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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、付费专栏及课程。

余额充值