通过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类的使用,可以更好的进行大整数的处理。

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

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

相关文章

  • 在SpringBoot项目中整合拦截器的详细步骤

    在SpringBoot项目中整合拦截器的步骤如下: 1.编写拦截器类和配置类 首先,我们需要编写一个自定义的拦截器类,实现HandlerInterceptor接口并重写其三个方法。接着,需要编写一个配置类,将拦截器注册到Spring容器中,并指定对哪些URL进行拦截。 示例: public class MyInterceptor implements Han…

    Java 2023年5月19日
    00
  • Mybatis中xml的动态sql实现示例

    关于”Mybatis中xml的动态sql实现示例”,以下是完整攻略: 什么是动态SQL 动态SQL是指根据条件动态拼接生成SQL语句的过程。它通常用于动态查询、更新或删除数据库中的数据。 在Mybatis中,我们可以使用XML文件来动态生成SQL语句,以实现更加精确的数据库操作。 Mybatis中动态SQL的实现方式 在Mybatis中,我们可以使用if、c…

    Java 2023年5月20日
    00
  • Javascript与PHP验证用户输入URL地址是否正确

    当我们需要用户输入URL地址时,我们需要验证用户输入的URL地址格式是否正确,这时候可以借助JavaScript和PHP两种语言来实现。 JavaScript验证用户输入URL地址是否正确 JavaScript提供了正则表达式的支持,可以利用正则表达式对用户输入的URL地址进行验证。 示例1:以下是利用JavaScript验证URL地址的示例代码。 func…

    Java 2023年6月15日
    00
  • 分布式Hibernate search详解

    分布式Hibernate Search详解 什么是Hibernate Search? Hibernate Search是一个用于全文搜索的Java库,它使用Apache Lucene底层实现,并集成了Hibernate ORM框架。使用Hibernate Search,我们可以很方便地实现复杂的搜索功能,例如全文搜索、过滤、排序和聚合等。 什么是分布式Hib…

    Java 2023年5月20日
    00
  • 深入浅析C#泛型类型

    深入浅析C#泛型类型 在C#中,泛型类型是一种很强大的特性,它可以让我们写出更加通用、灵活的代码。本文将对C#泛型类型进行深入浅析,包括泛型类型的定义、使用、约束、协变与逆变等方面的内容。 定义泛型类型 在C#中,泛型类型是指具有一个或多个类型参数的类型。我们可以通过在类型名后面使用<T>语法来定义一个泛型类型,其中T表示类型参数。例如,下面是一…

    Java 2023年5月19日
    00
  • 完美实现bootstrap分页查询

    实现 Bootstrap 分页查询的步骤如下: 1. 引入 Bootstrap 在 HTML 文件中引入 Bootstrap 的 CSS 和 JavaScript 文件: <!– 引入 Bootstrap CSS 文件 –> <link rel="stylesheet" href="https://cdn.…

    Java 2023年6月15日
    00
  • java高级用法之绑定CPU的线程Thread Affinity简介

    Java高级用法之绑定CPU的线程Thread Affinity简介 什么是Thread Affinity? Thread Affinity(线程亲和性)是指将一个线程绑定到一个指定的 CPU 上面,使得线程只在这个特定的 CPU 上运行。在高性能计算和计算机游戏等领域,Thread Affinity 被广泛使用,以提高应用的执行效率。 Thread Aff…

    Java 2023年5月19日
    00
  • SpringBoot中的五种对静态资源的映射规则的实现

    SpringBoot中的五种对静态资源的映射规则的实现 在SpringBoot中,我们可以使用五种不同的方式来映射静态资源,包括: 默认的映射规则 自定义的映射规则 使用WebMvcConfigurerAdapter来配置映射规则 使用@Configuration注解来配置映射规则 使用@EnableWebMvc注解来配置映射规则 下面将详细介绍这五种映射规…

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