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()方法、以及何时执行该方法,都是不确定的。

java 面向对象编程-- 第十三章 反射、类加载与垃圾回收的更多相关文章

  1. java面向对象编程— —第七章 继承

    7.1继承的起源 继承(Inheritance),即在面向对象编程中,可以通过扩展(extends)一个已有的类,并继承该类的属性的行为,来创建一个新的类. 已有的类称为父类(也可以称为基类,超类), ...

  2. java面向对象编程——第四章 类和对象

    OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...

  3. java面向对象编程——第五章 对象的行为

    5.1 方法调用栈 当一个方法被调用时,将导致控制流程跳转到被调用的方法.然后,控制流程执行方法中的语句.当然,被执行的方法可能会调用其它方法,导致控制流程跳转到其它方法.所有的方法调用都维护在一个称 ...

  4. java 面向对象编程-- 第15章 集合框架

    1.  集合特点:元素类型不同.集合长度可变.空间不固定 2.  java中对一些数据结构和算法进行了封装即集合.集合也是一种对象,用于存储.检索.操作和传输对象. 3.  JCF(Java Coll ...

  5. java面向对象编程——第六章 数组

    1.数组概述 数组是存储在一个连续的内存块中的元素集合.数组中的每个元素必须是相同的数据类型,并且通过索引进行区分.数组中的第一个元素的索引为0. 在java中,创建数组有两个步骤: 声明一个对数组的 ...

  6. java面向对象编程—— 第三章 程序流程控制

    3.1流程控制 三种基本技术可以改变程序的控制流程: ①   调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ②   选择:java中有两种做出选择的机制:if/else语句和sw ...

  7. java 面向对象编程 第20章 XML技术解析

    1.  XML:extended Markup Language  可扩展标记语言,利用标签和子标签方式描述数据. 2.  声明<?xml version=”1.0”?>版本号 注释< ...

  8. java 面向对象编程 第18章——网络编程

    1.  TCP/IP协议模型 应用层:应用程序: 传输层:将数据套接端口,提供端到端的通信服务: 网络互联层:负责数据包装.寻址和路由,同时还包含网间控制报文协议: 网络接口层:提供TCP/IP协议的 ...

  9. java 面向对象编程--第17章 I/O系统

    1.I/O操作指的是输入和输出流的操作.相对内存而言,当我们从数据源中将数据读取到内存中,就是输入流,也叫读取流.当我们将内存中处理好的数据写入数据源,就是输出流,也叫写入流. 2.流按照内容分类:字 ...

随机推荐

  1. jQuery.validate.js+API_cn

      名称 返回类型 描述 validate(options) 返回:Validator 验证所选的FORM valid() 返回:Boolean 检查是否验证通过 rules() 返回:Options ...

  2. [转载] C++ 程序员快过来围观:非常实用全面的 C++ 资源

    原文: http://codecloud.net/c-plus-plus-resource-2983.html 绝对是c++开发者的福音啊, 必须推荐. 这次的资源涉及到了标准库.Web应用框架.人工 ...

  3. Corelocation及地图控件学习笔记

    Corelocation基本使用 在地图章节的学习中,首先要学的便是用户位置定位,因此我们首先要掌握Corelocation的使用.(在IOS8以前可以系统会直接请求授权,现在需要我们自己调用方式通知 ...

  4. bootstrap 图片轮播效果

    <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="http: ...

  5. iOS开发之 获取手机的网络的ip地址

    首先在使用的地方导入 #include <ifaddrs.h> #include <arpa/inet.h> 然后直接调用 - (NSString *)getIPAddress ...

  6. uva11429(生成随机数 期望)

    // // main.cpp // uva11429 // // Created by New_Life on 16/8/4. // Copyright © 2016年 chenhuan001. Al ...

  7. JavaScript的事件对象_事件流

    事件流事件流是描述的从页面接受事件的顺序,当几个都具有事件的元素层叠在一起的时候,那么你点击其中一个元素,并不是只有当前被点击的元素会触发事件,而层叠在你点击范围的所有元素都会触发事件.事件流包括两种 ...

  8. 转!大端模式&小端模式

    大端模式&小端模式   在C语言中除了8位的char型之外,还有16位的short型,32位的long型(要看具体的编译器),对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器 ...

  9. 20160805_笔记本_CentOS6.4x64分区

    1.严gong 笔记本 CentOS6.4x64分区: 1.1.OS自动分区的方案: 1.2.我模仿上面的方案,自己弄的方案:(没有LVM卷组) 2.

  10. 20160805_Cent6.4x64_安装配置(含网卡驱动的配置)

    ZC: 全程 root用户 操作. 1.我在BIOS中将 UEFI关闭了,然后 才安装的 Cent6.4x64 (ZC: 安装系统时,一起安装了 gcc等一些编程用的包.本来是想安装QT时少点麻烦的, ...