`
yaojinglive
  • 浏览: 7346 次
  • 性别: Icon_minigender_2
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

学习类型信息

 
阅读更多

类型信息

java提供两种在运行时识别对象和类的信息的方法。主要有两种方式:一种编译时就知道类型信息;一种利用“反射机制”让我们在运行时知道类型信息。

 

Class对象

Class对象就是用来创建类的所有对象的。



反射:运行时的类型信息

Class类与java.lang.reflect类库一起对反射的概念进行了支持,该类库中包含了Field、Method、以及Constructor类(每个类都实现了Member接口) 。这些类型的对象都是有JVM在运行时创建的,用以表示未知类里对应成员

       

动态代理

Java的动态代理笔袋里的思想更向前迈进了一部,因为他可以动态的创建代理并动态的处理对所代理方法的调用。在动态代理商所做的所有调用都会被重定向到单一的调用处理器上,他的工作是解释调用类型并确定相应的对策。

 

Java RTTI(rumtime type info)用于在运行时识别对象的类型信息。java虚拟机不能在运行时加载所有类型对象(动态加载),同时部分类型的信息是无法再编译器就获取的,需要在业务逻辑中依据类型信息进行相关逻辑的处理,这是就需要RTTIl了。

使用Class的newInstance方法可以创建class对应对象,但前提是对应类有默认构造函数(无参构造函数)。

       java程序在他开始运行之前并非被完全加载,其各个部分是在必需时才加载的。类加载器首先检查这个类是否被加载。如果尚未加载,默认的类加载器就会根据类名查找.class文件。在这个类的字节码被加载时,他们会接受验证,以确保其没有被破坏,并且不包含不良java代码。

使用类的准备工作实际包含三个步骤

1)加载,这是由类加载器执行的。该步骤将查找字节码(通常classpathsuo指定的路径中查找,但是这并非是必需的),并且从这些字节码中创建一个Class对象。

2)连接。在连接阶段将验证类中的字节码,为静态域分配存储空间,并且如果必需的话将解析这个类创建的对其他类的所有引用。

3)初始化。如果该类具有超类,则对其初始化,执行静态初始化器和静态初始化块。

final static成员和static成员的在以上三个过程中就不一样,final static成员被称为“编译器常量”,在编译时已经被赋值,所以可以在类加载前就进行访问,而静态成员(非final)需要在类加载后、class对象初始化之后赋值。

 

finnal static与static区别

static finnal值是“编译器常量”这个值不需要对类进行初始化就可以被读取。

static域不是final的那么他在被访问是,总是要求在他被读取之前,先进行连接(为这个域分配存储空间)和初始化改存储空间。

 

instanceof与Class的等价性

instanceof作为参数来执行类型检查。它保持了类型的概念,它指的是“你是这个类吗,或者你这个类时派生类吗?”而如果使用==比较实际的Class对象就没有考虑到继承。

java内存为堆(heap)、方法区域(method area)、java栈(java stack)、程序计数注册器(program counter register)、本地方法栈(native method stack)。对象的类型信息就存储在method area中,且不会有垃圾回收器进行垃圾回收。因此,如果设置的method area区域较少时,就回出现内存溢出问题(对象的error message是: java.lang.OutOfMemoryError: PermGen space),对应的JVM设置参数是:-xx:MaxPermSize=512m。

 

 

 

  • 大小: 44.7 KB
分享到:
评论

相关推荐

    基于机器学习的类型推理方法综述.pdf

    机器学习在类型推理中的应用,主要是利用已有的动态类型信息对新程序进行静态类型推断。这种方法能够弥补传统方法的不足,通过学习大量的程序行为数据,建立模型来预测未知程序的类型信息。文章系统地总结了各种基于...

    第十四章 类型信息

    在编程世界中,类型信息是程序理解数据结构和操作的关键元素。它涉及到变量、对象以及它们所持有的数据的种类。本章将深入探讨类型信息在软件开发中的重要性,特别是从源码分析和工具使用的角度。 类型信息在编程...

    ForestTypes 森林类型机器学习数据

    在机器学习领域,数据是构建模型的基础,"ForestTypes 森林类型"的数据集就是一个典型的应用案例。这个数据集主要用于训练和评估机器学习模型,目的是根据特定的特征来预测森林的类型。在这个数据集中,我们可以看到...

    一种改进的高空间分辨率遥感影像森林类型深度学习精细分类方法:双支FCN-8s.pdf

    一种改进的高空间分辨率遥感影像森林类型深度学习精细分类方法:双支FCN-8s 本文旨在介绍一种改进的高空间分辨率遥感影像森林类型深度学习精细分类方法,基于双支FCN-8s网络结构。该方法旨在解决遥感影像森林类型...

    基于深度学习的刺网与拖网作业类型识别研究.pdf

    通过北斗渔船监控系统(VMS)数据,提取每艘船的航次信息,根据航次信息将原始刺网和拖网每条船的VMS划分为多个航次数据,然后使用深度卷积神经网络模型对航迹图进行训练和学习,最后实现刺网和拖网作业类型分类识别...

    学生的学习类型分类.pdf

    学习类型是教育心理学中一个重要的概念,它强调个体在学习过程中对信息接收方式的偏好。每个学生都有其独特的学习风格,理解并尊重这些差异对于提高教学效果至关重要。本文将深入探讨根据学生偏爱的感觉通道进行分类...

    4种最常见的学习者类型.pdf

    了解自己的学习类型可以帮助学习者更好地规划学习时间,利用自身的优势,不仅在学术学习上有所提升,而且可以应用到日常生活中去。描述中也说明了本文是一篇兴趣读物,介绍学习者类型的部分内容。 根据提供的文件...

    信息素养选修作业——互联网上有哪些类型的数字学习资源,以及获取、处理、利用这些资源的方法、技巧、感受.pdf

    信息素养选修作业——互联网上有哪些类型的数字学习资源,以及获取、处理、利用这些资源的方法、技巧、感受.pdf信息素养选修作业——互联网上有哪些类型的数字学习资源,以及获取、处理、利用这些资源的方法、技巧、...

    生物信息数据库学习资料

    《生物信息学数据库学习资料——探索生命科学的数字化宝库》 生物信息学是一门交叉学科,它结合了生物学、计算机科学、统计学和数学等多个领域的知识,旨在研究和解析生物数据,尤其是在高通量测序技术飞速发展的...

    信息化-电子商务-电子书包支持下学生学习方式类型研究.pdf

    随着信息技术的飞速进步,教育方式正在经历深刻的变革,电子书包作为这种变革的一部分,对学习方式的类型产生了深远影响。 在当前的研究中,学者们对电子书包的理解和其对学习方式的具体改变仍存在分歧。因此,建立...

    易语言学习进阶超级列表框类型属性

    本文将深入探讨“易语言学习进阶超级列表框类型属性”这一主题,通过分析源码,帮助你更好地理解和运用这个控件。 首先,我们需要了解超级列表框的基本概念。超级列表框是易语言提供的一种高级列表控件,它可以显示...

    信奥学习规划 信息学竞赛之路(2022.07.31).pdf

    信奥学习规划信息学竞赛之路 信奥学习规划是指全国青少年信息学奥林匹克竞赛...信奥学习规划信息学竞赛之路涵盖了信息学竞赛的类型、报名资格、学习规划、考试形式、相关资源、国际竞赛和其他相关信息等方面的知识点。

    PA 信息类型增强.docx

    接下来,我们将学习如何创建新的信息类型: 1. 同样使用 PM01,但这次选择 "IT" 选项。 2. 输入以 9 开头的新信息类型编号,这是 SAP 预留的自定义信息类型编号范围。 3. 勾选 "EMPLOYEE INFOTYPE" 和 "PS ...

    基于学习活动类型的教师TPACK培养策略研究

    然而,教师TPACK的发展经常面临的一个大的挑战是思考信息技术如何能够在特定的学科领域及学习环境中更好地发挥作用。 为了解决这个问题,研究者提出了使用学习活动类型的方法来发展教师TPACK。学习活动类型是基于...

    C#数据类型,数组、结构和枚举是学习C#的基础!

    C# 数据类型是学习 C# 的基础,它们是构成 C# 程序设计的基本元素。C# 数据类型可以分为两大类:值类型和引用类型。值类型又可以分为简单类型、枚举类型、结构类型和可空类型。引用类型包括类、接口、委托和数组。 ...

    机器学习在生物信息学领域的应用与研究进展.pdf

    三、多模态数据集成:生物信息学领域中的数据通常来自不同的实验平台和数据类型,机器学习算法需要能够集成这些不同的数据类型,以提高预测和分类的准确性。 四、可解释性和可靠性:机器学习算法在生物信息学领域中...

    基于深度学习的儿童肺炎病原学类型判别模型.pdf

    本文主要探讨了基于深度学习的儿童肺炎病原学类型判别模型的构建及其在临床实践中的应用。该模型旨在通过自动化的方式,辅助医生判断儿童肺炎是由病毒还是细菌引起,从而优化治疗方案,减少不必要的药物试验,加快病...

    基于机器学习技术的体育视频类型分类研究.pdf

    体育视频类型分类是当前信息技术与体育领域交叉研究的重要课题,旨在高效管理和检索日益增长的体育视频资源。随着互联网技术的飞速发展,体育视频的数量呈现出爆炸性增长,如何快速准确地对这些视频进行分类,对于...

Global site tag (gtag.js) - Google Analytics