Java数组,Wat!

数组可以做一些令人惊讶的事情。

是否是数组?

Serializable array = new Serializable[9];

数组是数组还是标量? 好吧,它是指向数组的标量。 就像

Object o = new Object[9];

您可以将数组分配给对象,因为它也是对象。 但是,数组也是可序列化的,因此您可以将它们分配给可序列化。

我的[]去了哪里?

[]可能出现在令人惊讶的地方。 出于后向可比较性原因进行编译。

public static int method(int[]... args)[] {return args[0];
}

这里的类型是; args是int [] [],返回类型是int []。 您在方法声明后注意到[]了吗? 这不是JLS的一部分,并且由于向后兼容的原因,OpenJDK允许这样做。

之后的内容有所不同。

int[] array, x[];

int array[], y[];

在这些情况下; x是int [] []但y只是int [] 。

如果数组初始化太大,会发生什么?

说我初始化这样的数组

public static final int[] VALUES = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,/* many, many lines deleted */1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
};

错误消息是;

Error:(6, 31) java: code too large

这似乎有点奇怪。 它不会抱怨数组太大。 实际上,如果我有更多的静态字段或使用较大的常量,则对于较小的数组它将失败。
发生这种情况是因为数组是用字节码初始化的。 字节码创建数组并初始化每个值,一次初始化一个。 这会导致大量用于大型数组的代码,如果方法的大小没有限制,这将是一个问题。 即65535字节。 编译器只为构造函数或静态初始化生成一种方法,因此这限制了您可以拥有的枚举数和初始化数组的大小。

翻译自: https://www.javacodegeeks.com/2014/04/java-arrays-wat.html

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

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

相关文章

6.11python 作业

1.课堂例子: 01初识python #!/usr/bin/env python # -*- coding: utf-8 -*-# print(hello world!)print(hello world!) name lyj print(name)# id,type,value x 10 y 10 python小计数池(python优化机制):在变量值产生后指定的范围内,在内存中事先开辟一块内存空间…

linux下常用命令

创建软连接:ln -s b a //为b创建一个快捷方式a,只是一个镜像,不占用空间。 ln -sf b a //差不多 ,-f强制执行 ln b a //创建硬链接,会占用相同的大小空间(不允许给目录创建硬链接) svn…

vue.extend与vue.component的区别和联系

一味的闷头开发,却对基础概念缺乏理解,是个大坑... 查阅官网后现对自己的理解记录一下,用于日后复习巩固 Vue.extend({}) 简述:使用vue.extend返回一个子类构造函数,也就是预设部分选项的vue实例构造器。 后可使用vu…

2012服务器系统关闭网络共享,提供网络服务的前提,Windows Server 2012如何更改高级共享设置...

今天介绍系统提供网络服务的前提,Windows Server 2012 R2操作系统如何更改高级共享设置。小伙伴们可能都听说,网络配置是提供各种网络服务的前提。Windows Server 2012 R2操作系统安装完成以后,默认为自动获取IP地址,自动从网络中…

[学习笔记]几个英语短句(1)

Mind (you)!<口语>听着&#xff01;Mind , I dont say that it is certain.mind your back<口语>让开&#xff0c;让我通过。Mind your own business.你别管闲事。This is not your business.within an inch of 差点儿&#xff0c;险些&#xff01;The athlete was…

qt往mysql中添加数据_qt往数据库添加数据

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别

很长一段时间以来&#xff0c;WeakReference和SoftReference都已添加到Java API中&#xff0c;但是并不是每个Java程序员都熟悉它。 这意味着在Java中使用WeakReference和SoftReference的位置和方法之间存在差距。 参考类对于垃圾收集的工作方式尤其重要。 众所周知&#xff0c…

Elasticsearch 深入3

分词器的内部组成到底是什么&#xff0c;以及内置分词器的介绍 1、什么是分词器 切分词语&#xff0c;normalization&#xff08;提升recall召回率&#xff09; 给你一段句子&#xff0c;然后将这段句子拆分成一个一个的单个的单词&#xff0c;同时对每个单词进行normalization…

[WC2014]时空穿梭(莫比乌斯反演)

https://www.cnblogs.com/CQzhangyu/p/7891363.html 不难推到$\sum\limits_{D1}^{m_1}\sum\limits_{d|D}C_{d-1}^{c-2}\mu(\frac D d)\prod\limits_{i1}^n\frac {(2m_i-({\lfloor \frac {m_i} {D} \rfloor}1)\times D){\lfloor \frac {m_i} {D} \rfloor}}{2}$。 $O(Tnm)$&#…

css设置字符长度,在css中设置最大字符长度

12 个答案:答案 0 :(得分&#xff1a;199)你总是可以通过设置max-width和溢出ellipsis来使用截断方法p {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 200px;}对于多行截断&#xff0c;请查看flex解决方案。截断3行的示例。p {overflow: hidden;d…

一些sql 语句(行列转换等)

1. 行列转换--普通假设有张学生成绩表(CJ)如下Name Subject Result张三 语文 80张三 数学 90张三 物理 85李四 语文 85李四 数学 92李四 物理 82想变成 姓名 语文 数学 物理张三 80 90 85李四 85 92 82declare sql varchar(4000)set sql select Nameselect sql sql ,sum(cas…

关于html以及js相关格式验证的记录

验证的常见方式 我们在写前端的时候或多或少的会遇到一些验证格式问题&#xff0c;通常我们有三种解决办法。 第一种就是在输入完成后在输入框附近验证给出提示第二种就是在输入完成后在提交的时候排着验证提示第三张就是限制输入 前面两种我们都是非常的熟悉以及想到的&…

mysql重做日志_MySQL-重做日志 redo log -原理

【redo log buffer】【redo log file】-原理目录&#xff1a;1.重做日志写入过程图2.相关知识点汇总图3.redo_log_buffer 原理4.redo_log_file 原理1. 重做日志写入过程&#xff1a;2. 相关知识点汇总&#xff1a;3. redo log buffer 原理重做日志缓冲(redo log buffer)是Innod…

Java 8 Friday:使用Streams API时的10个细微错误

在Data Geekery &#xff0c;我们喜欢Java。 而且&#xff0c;由于我们真的很喜欢jOOQ的流畅的API和查询DSL &#xff0c;我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五&#xff0c;我们都会向您展示一些不错的教程风格的Java 8新功能&#…

孤荷凌寒自学python第六十八天学习并实践beautifulsoup模块1

孤荷凌寒自学python第六十八天学习并实践beautifulsoup模块1 &#xff08;完整学习过程屏幕记录视频地址在文末&#xff09; 感觉用requests获取到网页的html源代码后&#xff0c;更重要的工作其实是分析得到的内容&#xff0c;因此这时候大名鼎鼎的BeautifulSoup模块就可以大展…

如何将h5网页改成微信网页

1、如何将h5网页改成微信网页 1、设置安全域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 备注&#xff1a;登录后可在“开发者中心”查看对应的接口权限。 2、引用一个js文件 在微信开发者里面 js sdk里面 <sc…

AspNetForums中基于角色的权限控制

AspNetForums中基于角色的权限控制 http://blog.joycode.com/dotey/archive/2005/02/24/44791.aspxasp.net页面如何控制页面依据不同用户权限有不可见、可见、编辑 三种操作权限 http://community.csdn.net/Expert/topic/3436/3436974.xml?temp.0139429做过权限管理和想做权限…

c#a服务器上传文件b服务器,C#_c#批量上传图片到服务器示例分享,客户端代码: 复制代码 代码 - phpStudy...

c#批量上传图片到服务器示例分享客户端代码&#xff1a;/// /// 批量上传图片/// /// 服务器路径/// 图片文件夹路径/// 图片名称public void UpLoadFile(string srcurl, string imagesPath, List files){int count 1;foreach (string imageName in files){string name image…

mysql集群重启offline_mysql集群搭建问题及解决方法集锦

在上一篇博客中写了如何搭建mysql集群&#xff0c;之所以遇到这些问题&#xff0c;是因为刚开始弄mysql集群的时候不熟悉&#xff0c;正是因为这些问题&#xff0c;让我对mysql集群的了解渐渐深入&#xff0c;下面介绍在搭建mysql集群的时候我遇到了一些问题。1、mysql集群安装…

C - CJSON

cJSON API说明cJSON_Version()获得cJSON的版本cJSON_InitHooks();初始化cJSON_Hooks结构体cJSON_Parse();将字符串解析成cJSON结构体cJSON_ParseWithOpts()使用一些配置解析字符串cJSON_Print()将cJSON结构体转换成格式化的字符串cJSON_PrintUnformatted()将cJSON结构体转换成…