在 JVM 中,一个 Java 方法,最多能定义多少参数呢?这是一个很无聊的问题,即使能定义一万个,十万个,谁又会真的去这么做呢。但是作为一个 coder,最重要的不就是好奇心吗,没有好奇心,和一条咸鱼又有什么区别呢?本文作者就是这样一位充满好奇心的 coder。

我最近给我的 QuickTheories 分支添加了一个接口:

@FunctionalInterfacepublic interface QuadFunction { E apply(A a, B b, C c, D d);}

让我好奇的是这个方法能有多少个类型参数。到目前为止,我敢说,Java 语言规范并没有谈及这个问题。

对于实现定义的限制可能是什么,我有两个猜测:

  1. 编译器会设置一个可预测的限制,如 255 或 65535。
  2. 编译器的紧急行为会由于实现细节(堆栈溢出或同样不可预测/不相关的东西)而设置意外的限制。

我不想在源代码上测试我那点可怜的 C++技巧,所以我决定只测试编译器做了什么。我写了一个 Python 脚本,它使用二进制搜索找到最少的致错类型参数。完整的脚本放在 Github repo (https://github.com/hyperpape/java-max-type-params) 中。

脚本地址:https://github.com/hyperpape/java-max-type-params

生成方法很简单。幸运的是,我们不必使用任何类型参数,只需以的形式发出它们:

def write_type_plain(count): with open('Test.java', 'w') as f: f.write("public class Test {") f.write("public  0): f.write(

420一个像素多少个字节_一个Java方法能有多少个参数类型?这个好奇coder做了个实验...相关推荐

  1. 一个Java方法能有多少个参数类型?这个好奇coder做了个实验

    在 JVM 中,一个 Java 方法,最多能定义多少参数呢?这是一个很无聊的问题,即使能定义一万个,十万个,谁又会真的去这么做呢.但是作为一个 coder,最重要的不就是好奇心吗,没有好奇心,和一条咸 ...

  2. java方法参数类型不确定_一个Java方法能有多少个参数类型?这个好奇coder做了个实验...

    选自 justinblank 机器之心编译 参与:李志伟.张倩 在 JVM 中,一个 Java 方法,最多能定义多少参数呢?这是一个很无聊的问题,即使能定义一万个,十万个,谁又会真的去这么做呢.但是作 ...

  3. Android 一个像素几个字节,android 像素单位的一系列疑问困扰

    1.了解几个概念 (1)分辨率.分辨率就是手机屏幕的像素点数,一般描述成屏幕的"宽×高",安卓手机屏幕常见的分辨率有480×800.720×1280.1080×1920等.720× ...

  4. java char是几个字节_关于java中char占几个字节,汉字占几个字节

    我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个.而所有汉字在java程序中我们都可以简单的用 ...

  5. java中char是几个字节_关于java中char占几个字节,汉字占几个字节

    我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个.而所有汉字在java程序中我们都可以简单的用 ...

  6. java class 转 字节_[转]JAVA字节数据与JAVA类型的转换

    一.JAVA进制类型转换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 In ...

  7. java函数参数 省略号_[转] java使用省略号代替多参数.pdf

    [转] java使用省略号代替多参数.pdf 还剩 7页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: J2SE 1.5提供了"Varargs ...

  8. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  9. java值传递和引用传递_辨析Java方法参数中的值传递和引用传递

    小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. publ ...

最新文章

  1. 技术 | Bengio终结Theano不是偶然,其性能早在Keras支持的四大框架中垫底
  2. netflix 模式创新_创新设计模式:单例模式
  3. 好的产品经理,应该有什么样的特质?
  4. PID控制器开发笔记之一:PID算法原理及基本实现
  5. BZOJ 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏(博弈论)
  6. docker 升级linux内核,docker-machine之升级linux内核
  7. 【choco 安装】chocolatey 安装步骤包管理工具
  8. Spring 加JdbcTemplate 加内存数据库 完成插入和查询功能JDK17版本
  9. ppt文件服务器权限破解,怎么解开PPT文档的权限保护?
  10. 2021软件工程保研经历
  11. 【产品】智能管道设计运维一体化平台 - AIPIPE 2022R2版本新功能详解
  12. 解决微信小程序“app.json: [“workers“] 字段需为 目录“错误及worker的使用
  13. USRP B210 Ubuntu基本测试
  14. MySQL 安装步骤方法
  15. 1元云购网上架红米 云购网友都疯狂
  16. windows服务器无法访问localhost
  17. 中国聚客网[http://www.crossgo.com]正式开通拉!
  18. Java 接口与多态 实例
  19. html 页面导入excel,html导入到excel或word中的实现代码
  20. 计算机会考程序与设计,高中信息技术算法与程序设计会考.doc

热门文章

  1. [转载] 深入了解Java ClassLoader、Bytecode 、ASM、cglib
  2. DAS、NAS、SAN区别
  3. 怎么看android sdk 文档
  4. mybatis转义反斜杠_Shell echo命令:输出字符串
  5. linux 内核日志等级,Linux系统中日志级别详情
  6. html图片渐隐渐显,js实现图片切换效果渐隐渐显
  7. python3.9.0_Python 3.9.0 alpha 1 发布了,3.9 系列首个迭代版本
  8. python在sql添加数据库_使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据...
  9. linux读写文件实例,Linux在应用层读写寄存器的方法及实现实例
  10. 虚拟机扩容后mysql无法使用_VMWARE 扩容踩坑记