Java面试_02

JVM是内存中的虚拟机,jvm的存储,就是内存

JVM架构

Class Loader:依据特定格式,加载class文件到内存中,并不是自己随便写个.class文件都可以被加载

Execution Engine:对命令进行解析执行 (解析class文件中字节码)

Native interface:融合不同的开发语言的原生类库为java所用.(JVM底层也是c和c++实现的,调用其他语言的类库

避免重复造轮子  Class.forName())

Runtime Data Area:JVM内存空间结构模型

反射代码:

 Class<Robot> rb = (Class<Robot>) Class.forName("com.imooc.Robot");
        Robot robot = rb.newInstance();
        Field[] declaredFields = rb.getDeclaredFields();
        for (int k = 0; k < declaredFields.length; k++) {

            System.out.println(declaredFields[k]);
        }

        Field name = rb.getDeclaredField("name");
        name.setAccessible(true);
        name.set(robot,"张三");

        Field age = rb.getDeclaredField("age");
        age.setAccessible(true);
        age.set(robot,12);


        Method sayHi = rb.getDeclaredMethod("sayHi", String.class, int.class);
        sayHi.invoke(robot,"李四",66);

        Method getAge = rb.getDeclaredMethod("getAge", String.class, int.class);
        getAge.setAccessible(true);
        getAge.invoke(robot,"万五",77);

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值