`

Integer

阅读更多
Integer

1.类不可继承

2.值不可改变

    /**
     * The value of the <code>Integer</code>.
     *
     * @serial
     */
    private final int value;


3.包装类拆箱与装箱

在编译器自动完成

		Integer a = 100 ;
		Integer b = 100 ;
		Integer c = 200 ;
		Integer d = 200 ;
		Integer e = c + d ;
		System.out.println(a==b);
		System.out.println(a==100);
		System.out.println(c==d);
		System.out.println(c==200);
		System.out.println(e);



编译结果

    Integer localInteger1 = Integer.valueOf(100);
    Integer localInteger2 = Integer.valueOf(100);
    Integer localInteger3 = Integer.valueOf(200);
    Integer localInteger4 = Integer.valueOf(200);
    Integer localInteger5 = Integer.valueOf(localInteger3.intValue() +    localInteger4.intValue());
    System.out.println(localInteger1 == localInteger2);
    System.out.println(localInteger1.intValue() == 100);
    System.out.println(localInteger3 == localInteger4);
    System.out.println(localInteger3.intValue() == 200);
    System.out.println(localInteger5);


4.Number 父类

是所有数值类型的父类

5.toBinaryString  输出十进制数的相应二进制表达式



    public static String toBinaryString(int i) {
	return toUnsignedString(i, 1);
    }

    private static String toUnsignedString(int i, int shift) {
	char[] buf = new char[32];
	int charPos = 32;
	int radix = 1 << shift;
	int mask = radix - 1;
	do {
	    buf[--charPos] = digits[i & mask];
	    i >>>= shift;
	} while (i != 0);

	return new String(buf, charPos, (32 - charPos));
    }



String binaryString = Integer.toBinaryString(2);
System.out.println(binaryString);


执行流程分析:
radix = 1 << 1 ==> 2 ;
mask = radix - 1 = 1 ;
charPos = 32
循环,do while 先执行,然后判断是否满足条件
-- charPos ==> charPos = 31 数组最后一位,数组总容量32 ,Java中int 占 4字节,32bit
i & mask ==> 10 & 01 = 0
buf[31] = digits[0] = 0
i >>>= 1 ==> 2 向右移动一位 ==》 1

-- charPos ==> charPos = 30
i & mask = 01 & 01 = 01 ==> 1
buf[32] = digits[1] = 1
i >>>= 1 ==> 1 向右移动一位 ==》 0

退出循环

流程总结:
mask 为标记位,每次与目标值相与操作后,得到目标值的最后一位
新建数组存放得到的数据值
将目标值向右移动,左侧补零;再重复上述过程,直到目标值为0

分享到:
评论

相关推荐

    Transform Coding with Integer-to-Integer Transforms.pdf

    ### Transform Coding with Integer-to-Integer Transforms #### 概述 《Transform Coding with Integer-to-Integer Transforms》一文由Vivek K Goyal撰写,发表于2000年3月的IEEE Transactions on Information ...

    HugeInteger大整数计数器作业

    HugeInteger Class) Create a class HugeInteger that uses a 40-element array of digits to store integers as large as 40 digits each. Provide member functions input, output, add and subtract. For ...

    Clock_Integer 指令库应用例程.rar

    《Clock_Integer 指令库应用详解》 在嵌入式系统开发中,精确的时钟管理是至关重要的。Clock_Integer 指令库提供了一种高效、灵活的方式来处理与时间相关的任务,尤其是在实时操作系统(RTOS)或者微控制器(MCU)...

    Mybatis Generator将tinyint映射成Integer的解决办法.pdf

    在使用MyBatis Generator生成Java DAO层代码时,可能会遇到将数据库中的tinyint类型映射成Integer类型的问题。这个问题在上述描述中得到了详细的解释。首先,我们来看一下问题的背景和原因。 在Java环境中,使用...

    bigdecimal转integer.docx

    在 Java 编程中,`BigDecimal` 和 `Integer` 是两个不同类型的数值表示。`BigDecimal` 用于处理精确的浮点数运算,适合财务或金融计算,因为它可以避免浮点数计算中的精度问题。而 `Integer` 是 Java 中的整数类型,...

    mybatis返回Integer

    在使用MyBatis进行数据操作时,我们经常会遇到关于返回值类型的困扰,特别是涉及到基本类型int和对象类型Integer之间的转换。标题"mybatis返回Integer"指的是在MyBatis的映射文件或者Mapper接口中,使用Integer作为...

    mybatis逆向工具generator,中文注释,Byte改Integer

    在给定的标题中,“mybatis逆向工具generator,中文注释,Byte改Integer”表明这是一个定制版的MyBatis Generator,特别之处在于它对生成的代码进行了修改,将原本自动产生的`Byte`类型字段改为了`Integer`类型。...

    android数组资源string-array integer-array的用法

    本篇文章将深入探讨`string-array`和`integer-array`的用法,以及如何在XML中定义和使用它们。 首先,`string-array`是Android中用于存储字符串数组的资源。在Android的资源XML文件(通常位于res/values/strings....

    convert string to integer

    在本篇文章中,我们将深入探讨如何在不同的编程语言中实现`convert string to integer`的功能,以帮助开发者更好地理解和应用这个概念。 首先,让我们以 Ruby 为例,这可能与提供的压缩包文件 `string_to_integer....

    义一个整数集合类integerSet。这种类型的对象可以存储10个20~80之间的整数,即他的内部有一个整型数组存储数据。编程:

    根据给定文件的信息,我们可以对整数集合类`integerSet`进行详细的知识点解析与功能实现探讨。 ### 整数集合类integerSet #### 类定义 `integerSet`类用于存储10个位于20至80之间的整数。此类包含了一个整型数组...

    c++ 大整数库 big integer

    在C++编程中,大整数(Big Integer)是指能够表示超出普通整型变量范围的数值类型。在标准C++库中,没有内置的大整数支持,因此开发人员需要依赖第三方库来处理这类需求。"big integer"库是其中一个解决方案,它由...

    Integer类的使用方法

    ### Integer类的使用方法详解 在Java编程语言中,`Integer`类是一个非常重要的封装类,它用于将基本数据类型`int`封装成对象。这不仅增强了数据的灵活性,还提供了许多实用的方法来处理整数相关的操作。下面,我们...

    JAVA-int和Integer的区别

    在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型(Primitive Type),它...

    Java8 将List<Integer> 转换成以逗号分割的String字符串

    在Java编程中,将一个`List&lt;Integer&gt;`转换成以逗号分隔的`String`字符串是一种常见的需求,尤其是在处理数据展示或格式化输出时。Java 8引入了新的特性和方法,使得这种转换变得更加简洁和高效。下面我们将深入探讨...

    POJ1503-Integer Inquiry

    【标题】"POJ1503-Integer Inquiry"是一个编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。这类题目通常要求参赛者编写程序来解决特定的算法问题,以此锻炼和测试编程技能。 【描述】"解题...

    JAVA-int和Integer的区别1.zip

    在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型之一,它直接存储在栈...

    创建一个IntegerSet(集合类).zip

    本文将深入探讨如何在C++中创建一个名为`IntegerSet`的集合类,以及在这个过程中涉及的关键知识点。 首先,集合类通常用于存储和操作一组特定类型的元素,比如整数。在C++中,我们可以通过定义一个类来实现这个概念...

    ninteger_ninteger_分数阶系统_分数阶_

    总的来说,"ninteger_ninteger_分数阶系统_分数阶_"工具箱为研究和工程应用提供了强大的分数阶系统建模和控制手段,有助于推动分数阶系统理论的发展和实际应用的进步。对于控制系统设计者和研究人员来说,掌握和利用...

    170: Warning: (1681, ‘Integer display width is deprecated and will be removed in a future release.’)

    在Python的数据库操作中,尤其是当你使用pymysql库连接MySQL数据库时,可能会遇到一个警告,提示"Integer display width is deprecated and will be removed in a future release." 这个警告源于MySQL数据库的一个...

    分数阶的两个工具箱.zip_SIMULINK_fotf_matlab_ninteger_分数阶 工具箱

    本资源包含两个重要的分数阶工具箱——ninteger和FOTF,它们是MATLAB用户进行分数阶系统建模、分析和仿真的重要工具。 1. **ninteger工具箱**: ninteger工具箱是专为MATLAB设计的一个用于分数阶微积分运算的库。...

Global site tag (gtag.js) - Google Analytics