java数据类型封装_Java 数值计算 (二) 基本数据类型封装类

二 Java 语言基本数值封装类

Java

语言中基本数据类型和复合数据类型(数组和类)有严格的区分。

复合类型都是面向对象的,都继承Object,而基本数据类型都不是对象,为了使其具备对象的属性,Java

语言提供了装类。此外,封装类也提供了一些有用的数值转换和计算的方法。

byte, short, int, long,

float, double 的封装类是 Byte, Short,

Integer, Long, Float, Double.

因为 Java 语言提供了 auto boxing 的

特性,使得基本类型和封装类之间可以无缝切换,如:

Integer i = new

Integer(100);

Integer j =

100;

需要注意的是, 这种转换是在编译时进行的, 上面两个语句的字节码其实是一样的。 Integer

Integer 封装了 int

类型, 可以用下面三种方式构造:

Integer i1 = new

Integer("100"); // 字符串中只要有一个不能解析的字符就抛出 NumberFormatException

Integer i2 = new

Integer(100); Integer i3 =

100; // 运用 auto boxing 编译时转换成第一个构造方法

6个输出基本数据类型的对象方法(即非静态方法):

byte byteValue()

short shortValue()

int intValue()

long longValue()

float floatValue()

double doubleValue()

1个对象比较方法:

int compareTo(Integer anotherInteger)

重载了 3 个Object 方法:

boolean equals(Object obj)

int hashCode()

String toString()

8个继承Object的方法:

clone, finalize, getClass, notify, notifyAll,

wait, wait, wait

此外,就是用于数值转换和计算的37个类方法(即静态方法):

4个字符串转 int

static int parseInt(String s)

static int parseInt(String s, int

radix) //

可以指定字符串的(任意)进制, 如: Integer.parseInt("Y1X", 26+10);

static int parseUnsignedInt(String

s) static int parseUnsignedInt(String s, int radix)

3个 Integer 构造器(类似 Integer 构造方法):

static Integer valueOf(int i)

static Integer valueOf(String s)

static Integer valueOf(String s, int radix)

5个 int 转字符串的方法,:

static String toString(int i)

static String toString(int i, int radix)

static String toBinaryString(int i)

static String toOctalString(int i)

static String toHexString(int i)

3个无符号字符串:(在某些场合比较实用)

static long toUnsignedLong(int x)

static String toUnsignedString(int i)

static String toUnsignedString(int i, int radix)

7个很简单的数据计算方法:

static int sum(int a, int

b) static int max(int a, int b)

static int min(int a, int b)

static int compare(int x, int y)

static int compareUnsigned(int x, int y)

static int divideUnsigned(int dividend, int

divisor) //三个数都按无符号数处理

static int

remainderUnsigned(int dividend, int divisor)  // 求无符号余数

9个位操作方法:

static int reverse(int

i) // 按位倒过来

static int reverseBytes(int

i) // 按字节倒过来

static int bitCount(int

i) // 非零位数

static int numberOfLeadingZeros(int

i) // 开头0的位数

static int numberOfTrailingZeros(int

i) // 结尾0的位数

static int lowestOneBit(int

i) static int highestOneBit(int i)

static int rotateLeft(int i,

int distance)  // 向左移位

static int rotateRight(int i, int

distance)  // 向右移位

又1个转换字符串为基本类型的方法,可以读取不同进制标识:

int de =

Integer.decode("0x100"); // 0x 表示16进制

System.out.println(de); //

结果:256

de =

Integer.decode("#100"); // # 也标识16进制

System.out.println(de); //

结果也是 256

de =

Integer.decode("010"); // 0 开头表示8进制,没错就是阿拉伯数字0,

剧情很狗血 System.out.println(de); // 结果是 8

de =

Integer.decode("10"); //

用于反衬上述狗血剧情 System.out.println(de); // 结果是 10

如果你的系统属性是数字类型:这里有3个方法,封装了 System.getProperty() 方法:

static Integer getInteger(String

nm) // 相当于:

Integer.parseInt(System.getProperty(nm));

static Integer getInteger(String nm, int

val)

static Integer getInteger(String nm, Integer

val)

个人认为这个三个方法晦涩,没用, 多余。

数字的符号: 返回值:1表示正,-1表示负

static int signum(int i)

返回数字的哈希代码:

static int hashCode(int value)

最后,5个静态常量:

System.out.println(Integer.BYTES); // 4

System.out.println(Integer.SIZE); // 32

System.out.println(Integer.MAX_VALUE); // 2147483647

System.out.println(Integer.MIN_VALUE); // -2147483648

System.out.println(Integer.TYPE); // int

Long:

Long的类接口几乎和Integer一样:

对象方法:

byte byteValue()

short shortValue()

int intValue()

long longValue()

float floatValue()

double doubleValue()

int compareTo(Long anotherLong)

boolean equals(Object obj)

int hashCode()

String toString()

类方法:

static long max(long a, long b)

static long min(long a, long b)

static long sum(long a, long b)

static int compare(long x, long y)

static int compareUnsigned(long x, long y)

static long divideUnsigned(long dividend, long

divisor)

static long

remainderUnsigned(long dividend, long

divisor)

static long parseLong(String s)

static long parseLong(String s, int radix)

static long parseUnsignedLong(String s)

static long parseUnsignedLong(String s, int

radix)

static String toBinaryString(long i)

static String toHexString(long i)

static String toOctalString(long i)

static String toString(long i)

static String toString(long i, int radix)

static String toUnsignedString(long i)

static String toUnsignedString(long i, int

radix)

static Long valueOf(long l)

static Long valueOf(String s)

static Long valueOf(String s, int radix)

static long reverse(long i)

static long reverseBytes(long i)

static int bitCount(long i)

static int numberOfLeadingZeros(long i)

static int numberOfTrailingZeros(long i)

static long highestOneBit(long i)

static long lowestOneBit(long i)

static long rotateLeft(long i, int

distance)

static long rotateRight(long i, int

distance)

static Long decode(String nm)

static Long getLong(String nm)

static Long getLong(String nm, long val)

static Long getLong(String nm, Long val)

static int hashCode(long value)

static int signum(long i)

5个静态属性同 Integer

Float

12个对象方法:

byte byteValue()

short shortValue()

int intValue()

long longValue()

float floatValue()

double doubleValue()

int compareTo(Float anotherFloat)

boolean isInfinite()

boolean isNaN()

int hashCode()

boolean equals(Object obj)

String toString()

17个类方法:

static float max(float a, float b)

static float min(float a, float b)

static float sum(float a, float b)

static Float valueOf(float f)

static Float valueOf(String s)

static float parseFloat(String s)

static String toHexString(float f)

static String toString(float f)

static int compare(float f1, float f2)

static float intBitsToFloat(int bits)

static int floatToIntBits(float value)

static int floatToRawIntBits(float value)

static int hashCode(float value)

static boolean isFinite(float f)

static boolean isInfinite(float v)

static boolean isNaN(float v)

11 个静态属性:

static int BYTES

static int SIZE

static Class TYPE

static float MAX_VALUE

static float MIN_VALUE

static int MAX_EXPONENT  // 最大指数

static int MIN_EXPONENT  // 最小指数

static float MIN_NORMAL  //正的最小值

static float NaN

static float NEGATIVE_INFINITY  //最小负值

static float POSITIVE_INFINITY  // 最大正值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值