Java-API简析_java.lang.Package类(基于JDK1.8)(浅析源码)

news2025/2/25 6:04:49

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/130806567
出自【进步*于辰的博客】

其实我的【Java-API】专栏内的博文对大家来说意义是不大的。因为暂且没有源码讲解,而且需要看Java-API,直接看Java-API文档就行了,也不用看博文。所以呢,这篇博文主要是写给我自己看的,也就是Java-API笔记。
因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。

文章目录

  • 1、概述
  • 2、方法摘要
    • 2.1 `<A extends Annotation> A getAnnotation(Class<A> annotationClass) `
    • 2.2 Annotation[] getAnnotations()
    • 2.3 Annotation[] getDeclaredAnnotations()
    • 2.4 String getImplementationTitle()
    • 2.5 String getImplementationVendor()
    • 2.6 String getImplementationVersion()
    • 2.7 String getName()
    • 2.8 static Package getPackage(String name)
    • 2.9 static Package[] getPackages()
    • 2.10 String getSpecificationTitle()

1、概述

在这里插入图片描述
Package对象包含有关 Java 包的实现和规范的版本信息。通过用于加载类的 ClassLoader 实例,可以检索并获得此版本信息。通常,此信息存储在与类一起分发的清单中。

组成包的类集可以实现一个特定规范,如此一来,就可以通过规范标题、版本号和供应商字符串来标识该规范。应用程序可以询问包是否与特定版本兼容,有关详细信息,请参阅 isCompatibleWith()方法。

规范的版本号使用了一个由句点"."分隔的十进制正整数组成的语法,例如 “2.0” 或 “1.2.3.4.5.6.7”。这允许使用啊·可扩展的编号来表示主版本号次版本号缩微版本号,等等。版本规范是由下列形式的语法描述的:

SpecificationVersion: 
Digits RefinedVersionopt 

RefinedVersion: 
. Digits 
. Digits RefinedVersion 

Digits: 
Digit 
Digits 

Digit: 

Character.isDigit(char)会对其返回 true 的任何字符,如 0、1、2……

实现标题版本供应商字符串共同标识了一个实现,并且可以很方便地使用它们来支持出现问题时所涉及的包的准确报告。三个实现字符串内容都是特定于供应商的。实现版本字符串没有特定的语法,并且应该只在为了使它们等同于所需的版本标识符时对它们进行比较。

在每一个 ClassLoader 实例中,相同 java 包中的所有类都有相同的 Package 对象。静态方法允许通过名称当前类加载器已知的所有包的集合来找到包

另请参见:
ClassLoader.definePackage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.net.URL)

2、方法摘要

2.1 <A extends Annotation> A getAnnotation(Class<A> annotationClass)

如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。(暂未可知)

2.2 Annotation[] getAnnotations()

返回此元素上存在的所有注释。(暂未可知)

2.3 Annotation[] getDeclaredAnnotations()

返回直接存在于此元素上的所有注释。(暂未可知)

2.4 String getImplementationTitle()

返回此包的标题。(暂未可知)

2.5 String getImplementationVendor()

返回提供该实现的组织供应商公司的名称。(暂未可知)

2.6 String getImplementationVersion()

返回该实现的版本。(暂未可知)

2.7 String getName()

返回此包的名称。

2.8 static Package getPackage(String name)

通过调用方的 ClassLoader 实例中的名称找到一个包。
示例:

Package p = Package.getPackage("com.neusoft.test");
sout p;// 打印:package com.neusoft.test

使用包全限定名,通过类加载器获取Package实例。

2.9 static Package[] getPackages()

获得调用方的 ClassLoader 实例当前已知的所有包。
示例:

Package[]arr = Package.getPackages();
for (Package p : arr)
    sout p;

部分打印结果:
在这里插入图片描述

2.10 String getSpecificationTitle()

返回此包实现的规范标题。(暂未可知)

本文持续更新中。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/561510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是 Spring?为什么学它?

前言 欢迎来到本篇文章&#xff01;在这里&#xff0c;我将带领大家快速学习 Spring 的基本概念&#xff0c;并解答两个关键问题&#xff1a;什么是 Spring&#xff0c;以及为什么学习 Spring。 废话少说&#xff0c;下面&#xff0c;我们开始吧&#xff01; Spring 官方文档…

MySQL索引详解(IT枫斗者)

MySQL索引详解 什么是索引 官方介绍索引是帮助MySQL高效获取数据的数据结构。简单来讲&#xff0c;数据库索引就像是书前面的目录&#xff0c;能加快数据库的查询速度。事实上&#xff0c;索引是一种数据结构&#xff0c;用于帮助我们在大量数据中快速定位到我们想要查找的数…

chatgpt赋能Python-python_pyyaml

Python与PYAML的SEO 介绍 在当今以数据为中心的时代&#xff0c;数据的存储、传输和处理出现了许多新的挑战。Python作为一门强大的编程语言&#xff0c;已经成为数据处理的利器。而PYAML则是Python中一款重要的yaml库。 YAML与PYAML YAML&#xff08;YAML Ain’t Markup L…

语法速通 uni-app随笔【uni-app】【微信小程序】【vue】

1、微信小程序 1.1、wx 小程序 工程目录 其中&#xff0c; pages目录/index目录【必有】&#xff1a; index.js 编写业务逻辑 【初始数据&#xff0c;生命周期函数】 index.json 编写配置 index.wxml 编写模板 【可理解为本页html】 index.wxss 【可理解为本页css】 1.2、wx…

The Development of DBMS in History--人工翻译

导言 数据库类型 &#xff0c;有时称为数据库模型或数据库族&#xff0c;是用于在数据库管理系统内组织数据的模式和结构。多年来已经开发了许多不同的数据库类型。一些主要是当前数据库的历史前辈&#xff0c;而另一些则经受住了时间的考验。在过去的几十年中&#xff0c;新的…

chatgpt赋能Python-python_plot散点图

Python Plot散点图&#xff1a;详细介绍与使用教程 Python是一种广泛使用的编程语言&#xff0c;特别适合处理数据科学任务。Python有大量的用于数据可视化的库&#xff0c;其中matplotlib是最重要的之一。在本文中&#xff0c;我们将探讨matplotlib中的散点图plot&#xff0c…

[ 云计算 Azure ] Chapter 07 | Azure 网络服务中的虚拟网络 VNet、网关、负载均衡器 Load Balancer

本系列已经更新文章列表&#xff08;已更新&#xff09;&#xff1a; [ Azure 云计算从业者 ] Chapter 03 | 描述云计算运营中的 CapEx 与 OpEx&#xff0c;如何区分 CapEx 与 OpEx[ Azure 云计算从业者 ] Chapter 04 | Azure核心体系结构组件之数据中心、区域与区域对、可用区…

什么是智能合约存储布局?

本指南将解释智能合约中存储的数据。合约存储布局是指控制合约存储变量在长期内存中排布的规则。 读者先决条件知识 以下一般先决条件有助于理解本文&#xff1a; 熟悉面向对象的语言 位和字节 十六进制 智能合约 以太坊虚拟机&#xff08;EVM&#xff09; 哈希 无符号整数 静态…

图像噪声类别

什么是图像噪声&#xff1f; 图像噪声是图像在获取或是传输过程中受到随机信号干扰&#xff0c;妨碍人们对图像理解及分析处理 的信号。 图像噪声的产生来自图像获取中的环境条件和传感元器件自身的质量&#xff0c;图像在传输过程中产 生图像噪声的主要因素是所用的传输信道…

chatgpt赋能Python-python_quad

Python quad是什么&#xff1f; 在Python编程中&#xff0c;Quad是指四元组的缩写。它是一个包含四个元素的有序组。Quad通常在图形学和计算机图像处理中广泛应用。 在Quad中&#xff0c;每个元素都可以是数字或点的组合。 在Python编程中&#xff0c;quad被广泛用于三维计算机…

我最近的练习一些全栈项目

嘿&#xff0c;大家好&#xff01;作为一个程序员&#xff0c;我突然出现在这里&#xff0c;就像程序里的一个Bug一样突兀。我知道我很久没有发博客了&#xff0c;你们一定在想&#xff0c;这家伙是被代码迷宫困住了还是被Bug们抓走了&#xff1f;实际上&#xff0c;我一直忙于…

一文读懂:什么是数组

大家好&#xff0c;我是三叔&#xff0c;很高兴这期又和大家见面了&#xff0c;一个奋斗在互联网的打工人。 什么是数组 Java是一种面向对象的编程语言&#xff0c;提供了许多数据结构来处理和组织数据。其中&#xff0c;数组是一种常见且强大的数据结构&#xff0c;是存放在…

python+mysql电影推荐系统 影院售票选座系统vue

随着互联网的蓬勃发展&#xff0c;现代社会进入了以计算机为中心的信息时代&#xff0c;计算机技术正以一种前所未有的持久方式改变着世界的面貌。应用网络技术电影推荐系统受到许多用户的重视。网站的开发可以对人们的交流起到重要的作用&#xff0c;因此&#xff0c;为了满足…

印象笔记导出HTML再转markdown的方法

前言 我已经使用6年印象笔记了&#xff0c;越来越依赖它了&#xff0c;现在已经有6000多条笔记了&#xff0c;我就想着如果某一天印象笔记没了&#xff0c;那我这些心血就都没了&#xff0c;所以我想要把笔记全部转为markdown格式&#xff0c;然后自己存储起来。可以选择用百度…

chatgpt赋能Python-python_pendulum

Python Pendulum: 了解更便捷的时间操作 在我们的日常生活中&#xff0c;对于时间的操作极为频繁&#xff0c;不仅仅是时钟和日历&#xff0c;还包括计划、调度等等。Python pendulum正是一个极为优秀的工具&#xff0c;它为我们的时间操作提供了更为灵活且方便的使用体验。 …

chatgpt赋能Python-python_plt_坐标轴

Python plt 坐标轴详解 介绍 在数据可视化领域中&#xff0c;matplotlib.pyplot是一款十分流行的python库。它支持绘制各种类型的图表&#xff0c;例如散点图、折线图、柱状图、饼图等。在绘制各种图表时&#xff0c;一个重要的因素就是如何调整和修改坐标轴以展示数据。本文…

chatgpt赋能Python-python_put

Python PUT&#xff1a;了解PUT请求 介绍 在RESTful API中&#xff0c;PUT请求用于更新资源&#xff0c;它是一种向服务器提交指定资源的请求方法。Python是一种流行的编程语言&#xff0c;其标准库中包含了支持基本HTTP协议的模块。Python的requests库是使用最广泛的HTTP库之…

小航编程题库机器人等级考试理论一级(2023年03月) (含题库教师学生账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09;_程序猿下山的博客-CSDN博客 单选题2.0分 删除编辑 答案:B 第1题关于使用动滑轮说法正确的是&#xff1f;&#xff08; &#xff09; A、是否省力与动滑轮的颜色…

Java --- 期末复习卷

一、单选题 1&#xff0e;所有Java应用程序主类必须有一个名叫( )的方法。[ ] A&#xff0e;method B&#xff0e;main() C&#xff0e;java() D&#xff0e;hello 2&#xff0e;编写并保存了一个Java程序文件之后&#xff0c;( )它。[ …

NTLM认证协议

NTLM&#xff08;Windows NT LAN Manager&#xff09;是一种用于身份验证和安全通信的协议。它最初由微软开发&#xff0c;用于早期版本的Windows操作系统。NTLM协议在Windows网络环境中广泛使用&#xff0c;特别是在企业网络中。 NTLM身份验证步骤 NTLM验证是一种Challenge/R…