方法参数反射 Java8在java.lang.reflect包下新增了Executable抽象基类,该对象代表可执行的类成员,该类派生了Constructor和Method两个子类.Executable基类提供了大量方法来获取修饰该方法或构造器的注解信息:还提供了isVarArgs()用于判断该方法或构造器是否包含数量可变的形参,以及通过getModifiers()方法来获取该方法或构造器的修饰符.除此之外,Executable提供了如下两个方法来获取该方法或参数的形参个数及形参: int ge…
类 Class  每个类被加载之后,系统就会为该类生成一个对应的Class对象,通过该Class对象就可以访问到JVM中的这个类. 我们在Java中获取Class对象一般有三种方式: (1), 使用Class类的forName(String className)静态方法.该方法需要传入字符串参数,该字符串参数的值是某个类的全限定类名(必须添加完整包名). (2), 调用某个类的class属性来获取该类对应的Class对象 例如,Person.class 将会返回Person类对应的class对象…
为什么我们使用动态代理 静态代理会让类变多了,多了代理类,工作量变大了,且不易扩展.比如我们上节课的例子,要实现不同的扩展方法就要编写不同的代理类,非常麻烦.   Proxy类的使用规则 Proxy提供了用于创建动态代理类和代理对象的静态方法,它也是所有动态代理类的父类.如果在程序中为一个或多个接口动态生成实现类,就可以使用 Proxy 来创建动态代理类.如果需要为一个或多个接口动态地创建实例,也可以使 Proxy 来创建动态代理实例. Proxy提供了如下两个方法来创建动态代理类和动态代理实例…
生活中的代理 类(对象)代理模式 代理模式是面向对象编程中比较常见的设计模式. 1. 用户只关心接口功能,而不在乎谁提供了功能.上图中接口是 Subject 2. 接口真正实现者是上图的 RealSubject,但是它不与用户直接接触,而是通过代理. 3. 代理就是上图中的 Proxy,由于它实现了Subject接口,所以它能够直接与用户接触. 4. 用户调用 Proxy 的时候,Proxy 内部调用了 RealSubject.所以,Proxy 是中介者,它可以增强 RealSubject 操作…
java.lang.reflect包下还提供了Array类 java.lang.reflect包下还提供了Array类,Array对象可以代表所有的数组.程序可以通过使 Array 来动态地创建数组,操作数组元素等. Array提供了如下几类方法: static Object newInstance(Class componentType, int... length): 创建一个具有指定的元素类型指定维度的新数组. static xxx getXxx(Object arr, int index…
本章承接Java编程基础-面向对象(上)一文. 一.static关键字 在java中,定义了一个static关键字,它用于修饰类的成员,如成员变量.成员方法以及代码块等,被static修饰的成员具备一些特性. 1.static关键字的特点: a)随着类的加载而加载,也就是说,静态会随着类的消失而消失,说明它的生命周期最长. b)优先于对象存在,明确一点,静态是先存在的,对象是后存在的. c)被类的所有对象共享. d)可以通过类名调用. 2.静态变量 在一个java类中,可以使用static关键字…
Java编程基础——标识符和关键字 摘要:本文主要介绍标识符和关键字. 标识符 是什么 Java语言中,为各种变量.方法.类和包等起的名字,统统称之为Java标识符. 命名规则 ◆ 应以字母.下划线.美元符开头,不能以数字开头,不能使用空格或非法的字符,如:#,%,&等. ◆ 后跟字母.下划线.美元符.数字. ◆ Java标识符大小写敏感,长度无限制. ◆ 不能使用关键字. 命名约定 ◆ 类和接口名:每个字的首字母大写,例如MyClass,HelloWorld等. ◆ 方法名:首字母小写,其余的…
Java入门--(1)Java编程基础 第二章 Java编程基础   JAVA 代码的基本格式: 修饰符 class 类名{ 程序代码 }   2.1关键字:赋予了特殊含义的单词.   2.2标识符:在程序中定义的一些名称. 比如:类名 a-z 0-9 _ $ 数字不可以开头,不可以使用关键字,一般首字母大写.   2.3注释:注解说明程序的文字. 作用:1.对程序进行说明.          2.调试程序. 注意:多行注释可嵌单行注释,但不能嵌套多行注释. /*多行注释*/ /**文档注释*/…
Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Java是面相对象的. 以类为单位编写代码. 所以Java编写的代码都在类中,类是使用关键字 Class来定义的. 语法; 修饰符 class 类名 { 程序代码 } 修饰符就是权限.跟C++同等 public 公共的 private 私有的 protected 保护的 Java语法 1.Java的语句…
Java编程基础——常量变量和数据类型 摘要:本文介绍了Java编程语言的常量变量和数据类型. 常量变量 常量的定义 一块内存中的数据存储空间,里面的数据不可以更改. 变量的定义 一块内存中的数据存储空间,因为里面的数据可以更改,所以称为变量. 变量的分类 局部变量:方法或语句块内部定义的变量,作用域是当前方法或当前语句块,需要在初始化时赋值,存在占内存中. 成员变量:方法外部或类的内部定义的变量,作用域是整个类,有默认值,存在堆内存中. 数据类型 说明 Java语言是一种强类型语言.通俗点说,…