• 类对象和类的对象


    反射

        定义:是程序运行时,自审并对内部的成员进行操作(反射是使用,反编译是查看)

                    java运行时变成class文件,自审是针对class文件的

    计算机能认识 .class文件,不认识 .java文件,

    在内存中需要加载这个java的class文件,由于java中一切皆对象,那么就是在对内存中把class文件封装成了一个对象

     

    类对象和类的对象:

        class文件在内存中的类对象表现x形式就只有一个,

        类的全称是:包名+类名(不同包的类名可以相同)

    getClass( )方法:获得运行时的那个 .class文件(类对象),返回类型Class类==》所有的 .class文件对应的对象就是Class这个类的对象

    Class类负责管理所有 .class文件 && .class文件被封装成了对象(叫类对象)

    (**也就是说类对象就是Class类的对象**)

    (增强理解:类的对象是根据类new出来的,Class类的new出来的类的对象都是.class文件(类对象))

    类的对象 .getclass的结果是类对象(.class文件)

    类--->jvm--->new 对象  类的对象
    类         public Class String{}
    类对象  String.class  单例  一般加载进内存不销毁   jvm虚拟机分配内存
    类的对象   String str=new String(); String str1=null;

     

    类对象一般加载到内存中不会销毁,会销毁但是不轻易销毁(那什么情况下会销毁呢??)

    类对象就相当于人类,类的对象就相当于人,人可以被销毁(内存中被回收释放),人类是不可能销毁的,

    我们是根据人类创建的人,而人类中有一个

     

     

     

    pvivate针对我们是私有的;但是针对虚拟机JVM不是私有的(你的秘密针对别人来说是个秘密,但是针对人类来说、自己来说就不再是私有的了)

    虚拟机加载类进去是可以获得所有的成员(要是保密都加载不进去了,还能用个屁)

    但是局部成员是不能获取的,因为局部根本没有暴露(要是暴露了那就内存泄漏了,为什么这么说?这个局部变量名字,你这里也有,我这里也有,内存就傻眼啦)

    类可不一样,类是包名+类名,类名相同的话,但是还有包名不同限制着呢,但还是方法和方法之间不可能会冲突(不同的类可以有同种的方法,但是这些方法也算是有路径的存在方法区中)



     

     

     

     

     

     

     

  • 相关阅读:
    oracle体系结构
    Oracle表连接(转)
    Oracle的RBO和CBO
    Linux下安装Tomcat服务器和部署Web应用
    动态创建selectjs 操作select和option
    JS中如何获取<Select>中value和text的值
    原生JavaScript事件详解
    动态添加select的option
    js 动态加载事件的几种方法总结
    js实现select动态添加option
  • 原文地址:https://www.cnblogs.com/lm2-1/p/8504830.html
Copyright © 2020-2023  润新知