Java - 疑问: 基本数据类型源代码在哪里

  1. 概述

    1. java 基本数据类型 代码到底在哪
  2. 背景

    1. 偶然起了一个疑问
    2. 分析 java 源码的人挺多
      1. 一般都是 集合类, 或者 多线程
      2. 偶尔还有 反射类
    3. 可为啥就没有 基本数据类型 呢
      1. byte, char, short, int, long, float, double, boolean
      2. 是不是因为 这些东西 太简单了

1. 找代码

  1. 概述

    1. 尝试在 java 源代码 里找到这些东西
  2. 源代码

    1. 位置

      1. jdk 的 lib 目录下
    2. 文件名

      1. src.zip
  3. 查找

    1. 结果

      1. 没有发现
    2. 尝试

      1. int.class

        1. 没有, 哪来的小写 class
      2. Integer.class

        1. 尝试通过 ide 的跳转功能, 从 int 类变量跳过去
        2. 跳不过去
      3. 手动翻包

        1. 翻了半天, 也没找到
  4. 问题

    1. 跳转的时候, 会跳到另外一个地方

      1. External Libraries
        1. rt.jar
    2. 看了看发现 rt.jar 和 src.zip 的内容, 竟然是 一样的...

      1. 这是什么鬼?
      2. 旁边还有那么多包, 那些都是什么包?
    3. 结果

      1. rt.jar 内容和 src 确实一样
        1. rt 表示 runtime
      2. 其他包, 我也没弄太清楚
        1. 不过都是支持 jvm 的包

2. 上网搜

  1. 概述

    1. 本地找不到, 就只能上网搜了
  2. 方法

    1. 关键字

      # 以前有人告诉我, 要善用搜索引擎, 我最开始还不相信
      # 现在觉得, 这玩意真的挺重要的
      where is java primitive type code define
      
  3. 结果

    1. 定义

      1. 这些内容, 属于 java 语言规范
      2. 定义的位置, 应该是在 jvm 里
        1. 有很多开源的 jvm 实现, 比如 hotspot
        2. 定义的语言, 通常是 C++
    2. 其他

      1. 除了 基本数据类型 之外, 也有其他东西, 定义在 jvm 里
        1. 运算符
        2. 关键字
        3. 数组
        4. 其他

3. 结论

  1. 概述

    1. 最后的结论
  2. 结论

    1. 基本数据类型 和 关键字, 都是在 jvm 里定义的
    2. 想看的话, 去找 开源的 jdk
    3. 需要 C++ 支持

ps

  1. ref
    1. Why do we use rt.jar in a java project?

      1. rt.jar 内容
        1. Java Runtime Environment
    2. How are the primitive data types in java defined/written?

      1. jvm 定义
    3. Source code for array implementation in java

      1. 还有 数组

本文来源: https://www.cnblogs.com/xy14/p/12920003.html 

微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baidanvip

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值