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 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值