zoukankan      html  css  js  c++  java
  • java 面向对象编程-- 第十三章 反射、类加载与垃圾回收

    1、狭义JavaBean规范

    • Javabean必须包含一个无参数的public构造方法,方便通过反射的方式产生对象。
    • 属性必须都是私有的。
    • Javabean必须包含符合命名规范的get和set方法,以便访问Javabean的属性。
    • Javabean应该是可序列化(serializable)的。

    2、反射

             在编译时,并不清楚应该加载哪个类。类的加载是在运行期间进行的。通过反射,可以对类进行加载、探知、自审。

            可以通过对象.getClass()或者通过类名.class或者通过Class.forName(“包名.类名”)得到类模板。

             Field、、getDeclaredFields、、getName可以获得当前类的属性名。

             Method、、getMethods、、getName可以获得当前类的方法名。

             Object x=n.newInstance();   调用类的无参构造方法,产生该类的对象。

    3、Java类文件通过类加载器加载到内存中。类加载器包括根类加载器、扩展类加载器、系统类加载器。此外,Java API中还提供了一个ClassLoader抽象类,开发者还可以通过继承ClassLoader基类来创建自定义的类加载器。

    4、根类加载器是用本地代码实现的,它负责加载核心Java类;扩展类加载器负责加载扩展的Java类,包括所有javax.*开头的类和存放在JRE的扩展目录下中(JAVA_HOME/jre/lib/ext)JAR的类包;系统类加载器负责加载应用程序自身的类。根类加载器同时负责加载扩展类加载器和系统类加载器。

    5、类加载的过程包括加载、连接(验证、准备、解析)、初始化三个阶段。

    6、类加载完成后,会得到一个对应的Class对象。

    7、通过将引用赋值为null,或者将引用赋值为其它对象,或使用脱离范围,可以让对象成为不可获得。当一个对象成为不可获得时,就可能被垃圾回收器回收。

    8、System.gc()或者Runtime.gc()方法是程序员于JVM的垃圾回收器进行通讯的唯一的机制,但是执行gc()方法,并不能保证垃圾回收器立即执行垃圾回收,只能促使垃圾回收器尽快回收无用的对象。

    9、对象的finalize()方法可以帮助我们完成一些释放对象锁占用的资源等收尾工作。但是垃圾回收器是否会执行finalize()方法、以及何时执行该方法,都是不确定的。

  • 相关阅读:
    JVM(二)-运行时数据区
    JVM(一)-JVM入门
    java设计模式之观察者模式
    开散列表
    闭散列表
    VTWORAY 常用配置
    kubernetes 提示1 node(s) had taints that the pod didn't tolerate
    SOCKS5转PPTP VTWORAY配置文件与IPTables配置文件
    【Docker】多阶段构建
    【Docker】容器内存扩容
  • 原文地址:https://www.cnblogs.com/littlejava/p/5453328.html
Copyright © 2011-2022 走看看