B/Sjava

Posted 枫棂叶澜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B/Sjava相关的知识,希望对你有一定的参考价值。

编译类型与运行类型:

Java中的许多对象(一般都是具有父子类关系的父类对象)在运行时都会出现两种类型:编译时类型和运行时类型,例如:Person person = new Student();这行代码将会生成一个person变量,该变量的编译时类型是Person,运行时类型是Student

import java.util.Date;

public class ReflectTest {
    public static void main(String[] args){
        //编译类型为Object
        Object object = null;
        
        //运行类型为Date,理解:程序运行时,变量真实对应的类型
        object = new Date();
        
        //object.getDay();此时处于编译期,无法使用。
        //反射是运行期的一种特性,可以操作“运行类型”的对象。
    }
}

JAVA反射(放射)机制:

   “程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,PerlPythonRubyjavascript是动态语言,C++JavaC#不是动态语言。

比如(javascript):var username;

          username="xxx";

          username=250;

但是JAVA有着一个非常突出的动态相关机制:Reflection(反射),用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的class。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造方法(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods

 

反射(reflection)定义:

在运行时期,动态地去获取类中的信息(类的信息,方法信息,构造器信息,字段等信息);

比如类的信息:public、private等

JVM加载类字节文件时,会创建一个对象(Class类型),反射就是去获取这个对象,从而就知道类中的信息。

 

 

 

Java中的许多对象(一般都是具有父子类关系的父类对象)在运行时都会出现两种类型:编译时类型和运行时类型,例如:Person person = new Student();这行代码将会生成一个person变量,该变量的编译时类型是Person,运行时类型是Student

以上是关于B/Sjava的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数