通过JDK源码角度分析Long类详解

通过JDK源码角度分析Long类详解

介绍Long类

Long类是java.lang包下的一个类,它是用来表示64位长整型数字的。在实际开发中,经常使用Long类来处理需要存储大整数的应用场景。

Long类的声明

public final class Long extends Number implements Comparable<Long> {
    //...
}

从上面的代码中可以看出,Long类是继承Number类的,并实现了Comparable接口。

Long类的属性

属性名称 类型 描述
MIN_VALUE long 常量,Long类型最小值
MAX_VALUE long 常量,Long类型最大值
TYPE Class 常量,Long类的Class对象

Long类的方法

方法名称 返回值 描述
bitCount() int 返回该长整型值在二进制下的1的个数
byteValue() byte 将长整型的值转换成byte值
compare(long x, long y) int 比较x和y的大小,如果x>y,返回1,如果x<y,返回-1,如果x==y,返回0
compareUnsigned(long x, long y) int 当作为无符号整数比较时,比较x和y的大小
decode(String nm) Long 将String类型的参数解析为Long类型的值
doubleValue() double 将Long类型转换为double类型
equals(Object obj) boolean 比较Long对象是否相等
floatValue() float 将Long类型转换为float类型
hashCode() int 返回Long对象的哈希码值
intValue() int 将Long类型转换为int类型
longValue() long 返回Long类型的值
parseLong(String s) long 将String类型的参数解析为长整型的值
reverse(long i) long 将该长整型值的二进制位进行反转
reverseBytes(long i) long 将该长整型值的字节序进行反转
shortValue() short 将该长整型值转换成short类型
signum(long i) int 返回该长整型的符号

通过示例说明Long类的使用

下面我们通过两个示例展示Long类的应用。

示例1:将Long类型的数字转为二进制字符串

long num = 123456L;
String binaryStr =Long.toBinaryString(num);
System.out.println(binaryStr);

在这个示例中,我们定义了一个long类型的变量num,将其赋值为123456。之后,我们通过Long类的toBinaryString方法,将num转换为二进制字符串,并将其打印出来。使用这个方法可以很方便的将数字进行二进制化处理。

示例2:将二进制字符串转为Long类型的数字

String binaryStr = "0011100010010000001";
long num = Long.parseLong(binaryStr, 2);
System.out.println(num);

在这个示例中,我们定义了一个String类型的变量binaryStr,将其赋值为0011100010010000001(也就是123456的二进制字符串),之后,我们通过Long类的parseLong方法,将binaryStr转换为long类型的数字,并将其打印出来。使用这个方法可以很方便的将二进制字符串转化为数字。

总结

本篇文章从JDK源码角度详细讲解了Long类的使用,包括了Long类的声明、属性、方法以及通过两个示例来说明Long类的实际应用。掌握了Long类的使用,可以更好的进行大整数的处理。

阅读剩余 46%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过JDK源码角度分析Long类详解 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • spring集成httpclient配置的详细过程

    下面是spring集成httpclient配置的详细过程。 1. 引入依赖 首先在pom.xml中引入httpclient和httpasyncclient的依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>http…

    Java 2023年5月31日
    00
  • 编码实现从无序链表中移除重复项(C和JAVA实例)

    针对“编码实现从无序链表中移除重复项(C和JAVA实例)”,我来为你做一个详细的讲解攻略。 概述 无序链表中的元素可能会出现重复,我们需要从链表中移除这些重复项。本攻略将提供C语言和Java语言的实现示例,以帮助你更好理解链表去重的过程。 解题思路 链表去重的简单解法是使用哈希表。我们遍历链表中的每个节点,使用哈希表来存储这些节点包含的值。如果遇到一个节点其…

    Java 2023年5月20日
    00
  • java日志打印的完全使用指南

    Java日志打印的完全使用指南 为什么需要日志打印 在开发Java应用程序时,我们经常需要记录程序的运行状态,以便于调试、性能分析和错误排查。日志打印就是一种记录应用程序运行状态的方式,它可以用来记录各种类型的信息,如调试信息、异常信息、警告信息、错误信息等。 使用日志打印有以下几个好处: 记录程序的运行状态,便于排查问题。 通过日志分析来评估代码的性能表现…

    Java 2023年5月26日
    00
  • 基于hibernate实现的分页技术实例分析

    下面我来详细讲解“基于hibernate实现的分页技术实例分析”的完整攻略。 什么是Hibernate分页技术? Hibernate分页实际上就是在一个查询语句中指定起始位置和查询数量,获取查询结果的过程。在大多数情况下,我们不可能将整张数据表中的所有数据都查询出来,这样不仅浪费时间和空间,而且会影响系统响应速度。所以,分页查询就成了一个很常见的需求。 如何…

    Java 2023年5月20日
    00
  • 使用MyEclipse 开发struts2框架实现登录功能(结构教程)

    使用MyEclipse开发Struts2框架实现登录功能主要分为以下几个步骤: 创建Web项目 在MyEclipse中新建Web项目,在选项中选择Struts2作为框架。 配置Struts2 配置Struts2需要在项目中添加struts2-core.jar和struts2-config-browser-plugin.jar两个库文件。在web.xml文件中…

    Java 2023年5月20日
    00
  • 在Android源码中编译出指定jar包的操作

    在Android源码中编译出指定jar包的操作可以通过以下步骤完成: 1. 下载Android源码 下载Android源码到本地开发环境。 命令示例: $ repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r47 $ repo sync 2. 修…

    Java 2023年5月26日
    00
  • Java实现学生选课管理系统

    Java实现学生选课管理系统 简介 学生选课管理系统是一个典型的管理信息系统,它可以为学校提供在线选课服务,方便学生和教师进行选课和管理。Java语言是一种高性能、跨平台的编程语言,它具有很强的可扩展性和稳定性,非常适合开发学生选课管理系统。 开发环境 JDK 1.8 Eclipse MySQL 实现步骤 步骤1:创建数据库 学生选课系统需要一个数据库来存储…

    Java 2023年5月23日
    00
  • Quarkus中的依赖注入DI和面向切面aop编程

    Quarkus是一个Java框架,它旨在提供快速启动和低内存消耗的微服务。而依赖注入(DI)和面向切面编程(AOP)是Quarkus的两个重要特性。 什么是依赖注入? 依赖注入是Quarkus中最基本的概念之一。它的目的是使应用程序具有可扩展性并降低组件之间的耦合度。 根据Quarkus文档的描述,依赖注入是将实例变量传递给类的技术。在Quarkus中,我们…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部