对源码进行了整理和排序加注释,方法体直接删除。除了部分重要代码我进行了保留

public final class Long extends Number implements Comparable<Long>, Constable, ConstantDesc {@java.io.Serial@Native private static final long serialVersionUID = 4290774380558885855L;// 序列化版本号@Native public static final long MIN_VALUE = 0x8000000000000000L;   // 最小值-2的63次方@Native public static final long MAX_VALUE = 0x7fffffffffffffffL;   // 最大值2的63次方private final long value;                                           // 存储值得成员变量@Native public static final int SIZE = 64;                          // 长度64bitpublic static final int BYTES = SIZE / Byte.SIZE;                   // 8个byte数public static final Class<Long> TYPE = (Class<Long>) Class.getPrimitiveClass("long"); // Class实例表示基本类型long/*** 缓存值*/private static class LongCache {private LongCache() {}static final Long[] cache; // 缓存的long值存入数组static Long[] archivedCache; // 和 cache指向同一个地址static {int size = -(-128) + 127 + 1;  // 数组的长度256VM.initializeFromArchive(LongCache.class);if (archivedCache == null || archivedCache.length != size) {Long[] c = new Long[size]; // 创建长度256的数组long value = -128; // 最小值-128,最大值则是-128+256=127for(int i = 0; i < size; i++) { // 循环256次c[i] = new Long(value++); // 将-128 到 127 存入数组中 因为size=256}archivedCache = c;}cache = archivedCache;}}/*** 构造方法*/@Deprecated(since="9")public Long(long value) {} // 传入long得构造方法@Deprecated(since="9")public Long(String s) throws NumberFormatException {} // 传入String得构造方法/*** 转换其它类型的值:byte、short、int、float、double、long*/public byte byteValue() {}      // 转换为btyepublic short shortValue() {}    // 转换为shortpublic int intValue() {}        // 转换为intpublic float floatValue() {}    // 转换为floatpublic double doubleValue() {}  // 转换为double@HotSpotIntrinsicCandidatepublic long longValue() {}      // 得到long类型的值/*** 其它常用的实例方法*/public String toString() {}                 // 转换为字符串public int compareTo(Long anotherLong) {}   // 比较大小大于anthoerLong返回正值,-1是小于,0相等public boolean equals(Object obj) {}        // 判断当前值是否和obj相等@Override public int hashCode() {}          // 得到hash值@Override public Optional<Long> describeConstable() {} // 将当前值封装成Optional@Override public Long resolveConstantDesc(MethodHandles.Lookup lookup) {} // 返回当前对象/*** ==================================* 下面的都是静态方法,作为工具类对外使用* =================================*//*** 常用方法:求和。最大值,最小值*/public static int hashCode(long value) {}             // 得到value的hash值public static long sum(long a, long b) {}             // 求和public static long divideUnsigned(long dividend,long divisor) {}// 除法。返回dividend 除以 divisor 的值public static long remainderUnsigned(long dividend,long divisor) {}// 求余。返回dividend 对divisor的余数public static long max(long a, long b) {}             // 两数最大值public static long min(long a, long b) {}             // 两数最小值public static int compare(long x, long y) {}          // 比较x,y的大小public static int compareUnsigned(long x, long y) {}  // 比较无符号的x,y的大小/*** 数字转字符串*/public static String toString(long i, int radix) {}         // 按照基数radix将long类型的i转换成utf16字符串private static String toStringUTF16(long i, int radix) {}   // 被上面的toString调用public static String toUnsignedString(long i, int radix) {} // 按进制radix(2、4、8、10、16、32)转换成无符号字符串private static BigInteger toUnsignedBigInteger(long i) {}   // 将long类型的i转换为BigInteger对象public static String toString(long i) {}                    // 将i转换成字符串public static String toBinaryString(long i) {}              // 将long类型的i转换为2进制字符串public static String toOctalString(long i){}                // 将long类型的i转换为10进制字符串public static String toHexString(long i) {}                 // 将long类型的i转换为16进制字符串public static String toUnsignedString(long i) {}            // 将long类型的i转换为无符号字符串/*** 字符串转数字(前面的逆作用)** 转换过程都可能 throws NumberFormatException*/public static Long decode(String nm){}                      // 解析字符串中代表的long值,例如:0x开头、0开头public static long parseLong(String s, int radix)  {}       // 按基数radix解析字符串s中代表的long值public static long parseLong(String s){}                    // 默认10进制为基数,调用上面的方法进行解析public static long parseUnsignedLong(String s, int radix){} // 按基数radix解析字符串s中代表的无符号long值public static long parseUnsignedLong(String s) {}           // 默认10 进制,调用上面一个的方法// 以radix进制解析字符串中索引值从beginIndex到endIndex内表示的字符串public static long parseLong(CharSequence s, int beginIndex, int endIndex, int radix) {}// 以radix进制解析字符串中索引值从beginIndex到endIndex内表示的字符串(返回无符号long值)public static long parseUnsignedLong(CharSequence s, int beginIndex, int endIndex, int radix) {}@HotSpotIntrinsicCandidatepublic static Long valueOf(long l) {}                 // 得到l的包装对象public static Long valueOf(String s, int radix){}     // 按基数radis解析s为Long对象public static Long valueOf(String s) {}               // 得到字符串s中代表的Long对象public static Long getLong(String nm) {}              // 得到系统定义的值例如传入:sun.arch.data.model 会得到64/*** 例如:* Long aLong = Long.getLong("sun.arch.data.model",100); 得到的是64不是100* Long aLong = Long.getLong("系统变量的值",100); // 因为前面没有所以返回100* Long aLong = Long.getLong("100"); // 返回null,因为100在系统变量中获取不到值**/public static Long getLong(String nm, long val) {}    // 如果nm所代表的系统值由则返回nm所代表的值,否则返回val值public static Long getLong(String nm, Long val) {}    // 被getLong(String nm, long val)调用,实际上它才是真正处理的函数/*** 位操作* 左移、右移、反转*/public static int signum(long i) {}                    // 返回符合位,负数返回-1,正数返回1,0返回0public static long rotateLeft(long i, int distance){}  // 将i所代表的2进制进行左移distance位(相当于将 i * 2的distance次方法)public static long rotateRight(long i, int distance){} // 将i(二进制表示)右移distance位public static long reverse(long i) {}                  // 将i(二进制表示)进行反转public static long highestOneBit(long i) {}            // 返回最高位的值,例如:100(需要二进制表示的最高位) 得到的是64,128得到的是128public static long lowestOneBit(long i) {}             // 返回最低位的值,例如:5(2进制表示101) 返回1@HotSpotIntrinsicCandidatepublic static int bitCount(long i) {}                  // 返回i表示的二进制中1的个数@HotSpotIntrinsicCandidatepublic static long reverseBytes(long i) {}             // 将i存储的8个字节内容进行逆序排序得到新的long值@HotSpotIntrinsicCandidatepublic static int numberOfLeadingZeros(long i) {}      // 返回i表示的二进制左边0的个数(总共64位,将i用二进制表示,返回最高位1左边0的个数)@HotSpotIntrinsicCandidatepublic static int numberOfTrailingZeros(long i) {}     // 返回i表示的二进制右边0的个数(总共64位,将i用二进制表示,返回最低位1左边0的个数)/*** 不对外使用的方法*/static String toUnsignedString0(long val, int shift) {}     // 将long类型的val按照shift进制进行转换得到字符串private static void formatUnsignedLong0(long val, int shift, byte[] buf, int offset, int len) {}private static void formatUnsignedLong0UTF16(long val, int shift, byte[] buf, int offset, int len) {}static String fastUUID(long lsb, long msb) {}static int getChars(long i, int index, byte[] buf) {}static int stringSize(long x) {}}

简化 java.lang.Long 类的源码相关推荐

  1. Java 常用工具类 Collections 源码分析

    文章出处 文章出自:安卓进阶学习指南 作者:shixinzhang 完稿日期:2017.10.25 Collections 和 Arrays 是 JDK 为我们提供的常用工具类,方便我们操作集合和数组 ...

  2. Java上帝类(Object类)源码总结(1)

    追根溯源,所有的java类都是Oject的子类,那么要进一步了解java,那么去探索Object类的源码就是不可避免的.这个神秘的Oject类里面是什么东东呢? package java.lang; ...

  3. 【读码JDK】- java.lang.Double类Api介绍及测试

    [读码JDK]java.lang包目录 请自行调整包路径,中文仅供参考. java.lang.Double类Api介绍及测试 package lang;import org.junit.Test;/* ...

  4. java.lang.ThreadLocal实现原理和源码分析

    java.lang.ThreadLocal实现原理和源码分析 1.ThreadLocal的原理:为每一个线程维护变量的副本.某个线程修改的只是自己的副本. 2.ThreadLocal是如何做到把变量变 ...

  5. 死磕 java同步系列之ReentrantReadWriteLock源码解析

    问题 (1)读写锁是什么? (2)读写锁具有哪些特性? (3)ReentrantReadWriteLock是怎么实现读写锁的? (4)如何使用ReentrantReadWriteLock实现高效安全的 ...

  6. 深度分析Java的ClassLoader机制(源码级别)

    转载自 深度分析Java的ClassLoader机制(源码级别) Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取 ...

  7. 【java】线程 ExecutorService 原理 源码 解释

    1.世界 作者: Throwable 转载并且补充: https://www.throwx.cn/2019/07/27/java-concurrency-executor-service/ 1.概述 ...

  8. hibernate 并发获取session失败 空指针_高并发之|通过ThreadPoolExecutor类的源码深度解析线程池执行任务的核心流程...

    核心逻辑概述 ThreadPoolExecutor是Java线程池中最核心的类之一,它能够保证线程池按照正常的业务逻辑执行任务,并通过原子方式更新线程池每个阶段的状态. ThreadPoolExecu ...

  9. java连接mongodb_java连接mongodb源码解读

    用mongdb也大半年了,一直是业务上的逻辑实现了就ok.然而这样并不能进步--因此今天查了查java连接mongodb驱动的源码,搜到的各种信息整合一下,方便以后深入的使用. 先贴连接数据库代码Li ...

最新文章

  1. “计算社会科学数据平台”在清华大学发布(附账号申请链接)
  2. iOS根据图片url获取尺寸
  3. 去掉“搜一搜”后,让“查看新贴”等按钮居中
  4. 一年赚4.5亿,网红盲盒公司泡泡玛特再战IPO
  5. 华为研制鸿蒙小米呢,直追华为鸿蒙!小米自研发操作系统发布
  6. linux系统win,Windows10安装运行linux系统的方法
  7. 【前端】数组元素过滤
  8. SpringMVC【开发Controller】详解
  9. linux命令应用大词典.pdf,Linux命令应用大词典
  10. [死亡笔记]某傻逼的错误实况
  11. Linux操作系统资源 大合集【鸿蒙OS Suse 红帽 BSD CentOS Arch Ubuntu】 | 寻找C站宝藏
  12. 用 Python3 + Selenium 实现模拟QQ空间登录及自动点赞功能
  13. 【数学建模】灰色模型
  14. webpack 合并压缩_文章 - coolie PK webpack 之一:JS 文件的合并与压缩 - FED社区
  15. 服务器装系统提示未找到任何驱动器,u盘装系统win7显示未找到任何驱动器怎么办?未找到任何驱动器解决步骤...
  16. oracle中锁机制,Oracle锁的基本机制
  17. 【设计模式】模板方法模式
  18. 毕业设计 基于51单片机老人防跌倒GSM短信报警系统
  19. Springboot:整合DubboProvider的配置以及Comsumer的配置
  20. 编译原理——自上而下语法分析

热门文章

  1. android 修改 dpi_魅族16th|魔趣100|安卓10.0|归属地|机型修改|性能调整|稳定流畅
  2. 如何保护企业电子邮件安全,个人电子邮箱怎么注册?
  3. 华北电力计算机专业排名,华电考研计算机专业排名
  4. 项目中常用的管理工具 confluence,wiki,jira
  5. 高空抛物检测(侦测)系统为您撑起一把安全之伞
  6. 502 IPO 上市
  7. 游戏编程模式之游戏循环
  8. Python爬虫之爬取绝对领域美女图片
  9. 检测到域名被墙如何解决?域名被墙怎么快速恢复?
  10. matlab互相关检测器,自相关函数和互相关函数的利用MATLAB计算和作图