Java数组的类名是什么以及数组相关操作的指令有什么?

写在前面

不知道你想过没有,我们常说数组也是对象,既然是对象,肯定要有一个类名称了,那么,数组的类名称是什么呢?数组相关的操作对应的指令又是什么呢?本文就一起来看下。

1:叨叨叨

对于普通的类,都有对应的Class字节码文件,并且都有自己唯一的全限定类名称,但是数组不同,它并没有对的Class字节码文件,也没有明确的类名称。所以创建数组的对象和创建创建普通对象还是有所不同的,为了更好的处理这些不同jvm针对数组定义了专门的一组指令,如下:

newarray:创建基础数据类型数组
anewarray:创建对象类型数组
<t>astore:这里的<t>是代表类型,如iastore是将栈顶的int类型数据存储到指定数组的指定位置,fastore是将栈顶的float类型数据存储到指定数组的指定位置
<t>aload:这里的<t>是代表类型,如iaload是从int类型的数组中的指定位置获取元素并推送到栈顶,faload是从float类型数组的指定位置获取元素并推送到栈顶
multianewarray:创建多维数组
arraylength:获取数组长度并存储到栈顶

如下通过javap -v xxx.class查看字节码指令:
在这里插入图片描述

关于数组的类名称是这样的,类名的规则是([)+组合类型的描述符,比如一维的int数组就是[I,一维的布尔数组就是[Z,一维的long数组就是[J,具体如下代码:
在这里插入图片描述
对象类型是这样子的,一维String数组就是[Ljava/lang/String;,Object[]的类名是[Ljava/lang/Object;。如下测试代码:

public class AAA {public static void main(String[] args) {System.out.println(new int[3].getClass().getName());System.out.println(new int[8][3].getClass().getName());System.out.println(new String[3].getClass().getName());System.out.println(new Object[3].getClass().getName());System.out.println(new boolean[3].getClass().getName());System.out.println(new long[3].getClass().getName());}
}

运行:
在这里插入图片描述

写在后面

参考文章列表

JVM 虚拟机字节码指令表 。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据面试SQL(六):共同使用ip用户检测问题

文章目录 共同使用ip用户检测问题 一、题目 二、分析 三、SQL实战 四、样例数据参考 共同使用ip用户检测问题 一、题目 现有用户登录日志表&#xff0c;记录了每个用户登录的IP地址&#xff0c;请查询共同使用过3个及以上IP的用户对。 样例数据&#xff1a; 结果数据&…

软件功能测试步骤介绍,软件测试服务公司推荐

在当今软件开发日益复杂的环境中&#xff0c;软件功能测试显得尤为重要。功能测试是确保软件产品满足用户需求和规范要求的关键环节。它通过验证软件功能是否按预期运行&#xff0c;帮助发现潜在的问题&#xff0c;防止软件在上线后导致用户的不满及业务损失。随着市场竞争的加…

yaml语法+yaml配置文件

yaml语法 k:(空格)v > 表示一对键值对空格必须有 yaml拥有严格的空格缩进格式控制&#xff0c;以空格的缩进来控制层级关系&#xff1b;只要是左对齐的一列数据&#xff0c;都是同一个层级的 spring:thymeleaf:cache: true# 检查模板是否存在&#xff0c;然后再呈现check…

【初阶数据结构题目】18.设计循环队列

设计循环队列 点击链接答题 思路&#xff1a; 循环队列&#xff0c;空间固定。 这里我们可以用数组来实现循环队列。 如何判断队列是否为满&#xff1f; 多申请一块空间 (rear1)%(k1) front 如何判断队列是否为空&#xff1f; rear front 代码&#xff1a; //定义循环队列的…

【开端】通过Java 过滤器灵活配置URL访问权限,并返回403

一、绪论 在JAVA项目系统中&#xff0c;后端给前端提供接口。但是在某些场景我们需要临时控制接口是否能被访问。或关闭某一接口的访问权限。 比如某一接口被攻击了或者某一接口存在漏洞&#xff0c;在系统不关闭的情况下&#xff0c;如何控制系统的访问权限。 二、控制接口访…

俄组织Fighting Ursa利用虚假汽车销售广告传播HeadLace后门

最近&#xff0c;Palo Alto Networks的科研人员揭露了有一个与俄罗斯有关联的威胁行动者——Fighting Ursa&#xff08;亦称APT28、Fancy Bear或Sofacy&#xff09;。该组织通过散布虚假的汽车销售广告&#xff0c;特别是针对外交官群体&#xff0c;散播名为HeadLace的后门恶意…

概率论原理精解【9】

文章目录 集类拓扑空间基 参考文献 集类 C是一个集类&#xff08;以G的某些子集为元素的集合称为G的集类&#xff09;。 A i ∈ C , ∩ i 1 n A i ∈ C , 此为有限交封闭 C 所得集类 C ∩ f A_i \in C,\cap_{i1}^nA_i \in C,此为有限交封闭C所得集类C_{\cap f} Ai​∈C,∩i1n…

windows和office微软官方免费激活教程

微软提供了windows系统和office的官方免费激活&#xff0c;其实不用去买什么激活码&#xff0c;官方提供了激活方式&#xff0c;完全免费。目前测试没发现什么问题&#xff0c;windows还支持永久激活&#xff0c;比一些乱七八糟的kms激活工具还省心。 github地址&#xff1a;Gi…

Xshell8最新版体验(业界最强大的SSH连接工具)

Xshell 是一款强大的 SSH 客户端&#xff0c;广泛用于远程管理和连接服务器。 一、主要特性 多标签界面&#xff1a; 支持在一个窗口中打开多个会话&#xff0c;每个会话以标签形式显示&#xff0c;方便用户在不同会话之间快速切换。 会话管理&#xff1a; 提供强大的会话管理…

Ubuntu安装MySQL5.7 + Apache + PHP + 禅道 保姆及教程

目录 开始安装MySQL 5.7 1、获取安装包 2、解压到指定位置 安装MySQL 启动MySQL 进入到MySQL进行测试 设置允许所有IP可以连接 配置允许远程连接 和 开启 gtid 和 binlog 日志&#xff08;这一步如果不需要可以不操作 如果只需要配置允许远程连接只添加bind-address 0…

Google Mock 和 Google Test编写单元测试入门(环境配置、简单执行)

文章目录 环境的配置方法1&#xff1a;从源代码构建第一步&#xff1a;克隆库的源代码第二步&#xff1a;构建库 方法 2&#xff1a;使用 CMake 的 FetchContent示例 CMakeLists.txt 项目的创建项目结构CMakeLists.txt (根目录)main.cpp (示例程序)tests/CMakeLists.txt (测试部…

Spring-Kafka确认机制报错:No Acknowledgment available as an argument

问题出现 在spring boot集成kafka时报错&#xff0c;报错信息&#xff1a; No Acknowledgment available as an argument, the listener container must have a MANUAL AckMode to populate the Acknowledgment.翻译&#xff1a; Acknowledgment 参数不可用&#xff0c;监听…

本地部署MySQL图形化管理工具phpMyAdmin结合内网穿透远程访问

文章目录 前言1. 安装MySQL2. 安装phpMyAdmin3. 修改User表4. 本地测试连接MySQL5. 安装cpolar内网穿透6. 配置MySQL公网访问地址7. 配置MySQL固定公网地址8. 配置phpMyAdmin公网地址9. 配置phpmyadmin固定公网地址 前言 本文主要介绍如何在群晖NAS安装MySQL与数据库管理软件p…

TCP 通信全流程分析:从连接建立到数据传输的深度探索

目录 一、TCP报头 二、三次握手 三、数据传输 四、四次挥手 本文通过一次TCP通信过程的分析来学习TCP协议 一、TCP报头 如图是一份TCP报文的报头&#xff0c;标准报头是20个字节&#xff0c;还可带有选项报头&#xff0c;也就是TCP报头的最小长度是20字节。以下是对报头的各…

千里江山图,自动化成诗:Expect脚本详解——从入门到进阶的自动化利器

目录 引言 Expect脚本基础 什么是Expect 基本语法 进阶应用 错误处理 正则表达式 并发处理 使用Shell脚本管理多个Expect脚本 在Expect脚本内部模拟并发 脚本复用与模块化 总结 引言 在自动化运维和测试领域&#xff0c;Expect脚本无疑是一把强大的利器。它以其灵…

鸿蒙Image组件设置长按手势回调事件

Image组件默认是可拖拽的&#xff0c;给Image组件设置draggable为false&#xff0c;即可成功触发长按事件:

基于Hadoop的北京市二手房价数据分析与可视化

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍总结每文 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 随着中国经济的快速发展和城市化进程的加速&#xff0c;房地产市场已成为国民经…

难题:反转链表

定义一个函数&#xff0c;输入一个链表的头结点&#xff0c;反转该链表并输出反转后链表的头结点。 思考题&#xff1a; 请同时实现迭代版本和递归版本。 数据范围 链表长度 [0,30]。 样例 输入:1->2->3->4->5->NULL输出:5->4->3->2->1->N…

sgetrf M N is 103040 时报错,这是个bug么 lapack and Openblas the same,修复备忘

1,现象 MN103040时&#xff0c;调用 sgetrf_ 时&#xff0c;无论是 LAPACK 还是 OpenBLAS&#xff0c;都出错&#xff1a; openblas&#xff1a; lapack&#xff1a; 2, 复现代码 出现问题的应该是由于M和N相对数字太大&#xff0c;乘积超出32bit整数的表达范围&#xff0c;…

vulnhub靶机tomato记录

https://www.vulnhub.com/entry/tomato-1,557/ 过程 用nmap对目标主机做全端口扫描&#xff0c;dirb做目录扫描&#xff0c;结果如下&#xff1a; 8888端口开放一个web服务&#xff0c;存在Basic认证&#xff0c;试了爆破无果&#xff0c;sun-answerbook是一个在线文档系统&am…