String方法和Integer方法

String方法摘要
static int bitCount(int i)
返回指定 int 值的二进制补码表示形式的 1 位的数量。
byte byteValue()
以 byte 类型返回该 Integer 的值。
int compareTo(Integer anotherInteger)
在数字上比较两个 Integer 对象。
static Integer decode(String nm)
将 String 解码为 Integer。
double doubleValue()
以 double 类型返回该 Integer 的值。
boolean equals(Object obj)
比较此对象与指定对象。
float floatValue()
以 float 类型返回该 Integer 的值。
static Integer getInteger(String nm)
确定具有指定名称的系统属性的整数值。
static Integer getInteger(String nm, int val)
确定具有指定名称的系统属性的整数值。
static Integer getInteger(String nm, Integer val)
返回具有指定名称的系统属性的整数值。
int hashCode()
返回此 Integer 的哈希码。
static int highestOneBit(int i)
返回具有至多单个 1 位的 int 值,在指定的 int 值中最高位(最左边)的 1 位的位置。
int intValue()
以 int 类型返回该 Integer 的值。
long longValue()
以 long 类型返回该 Integer 的值。
static int lowestOneBit(int i)
返回具有至多单个 1 位的 int 值,在指定的 int 值中最低位(最右边)的 1 位的位置。
static int numberOfLeadingZeros(int i)
在指定 int 值的二进制补码表示形式中最高位(最左边)的 1 位之前,返回零位的数量。
static int numberOfTrailingZeros(int i)
返回指定的 int 值的二进制补码表示形式中最低(“最右边”)的为 1 的位后面的零位个数。
static int parseInt(String s)
将字符串参数作为有符号的十进制整数进行解析。
static int parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
static int reverse(int i)
返回通过反转指定 int 值的二进制补码表示形式中位的顺序而获得的值。
static int reverseBytes(int i)
返回通过反转指定 int 值的二进制补码表示形式中字节的顺序而获得的值。
static int rotateLeft(int i, int distance)
返回根据指定的位数循环左移指定的 int 值的二进制补码表示形式而得到的值。
static int rotateRight(int i, int distance)
返回根据指定的位数循环右移指定的 int 值的二进制补码表示形式而得到的值。
short shortValue()
以 short 类型返回该 Integer 的值。
static int signum(int i)
返回指定 int 值的符号函数。
static String toBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
static String toHexString(int i)
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
static String toOctalString(int i)
以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
String toString()
返回一个表示该 Integer 值的 String 对象。
static String toString(int i)
返回一个表示指定整数的 String 对象。
static String toString(int i, int radix)
返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
static Integer valueOf(int i)
返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)
返回保存指定的 String 的值的 Integer 对象。
static Integer valueOf(String s, int radix)
返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait


Java String的常用方法,String中的final用法,用String常量池问题的四个例子对String对象的intern方法理解和分析。
String中的final用法和理解final StringBuffer a = new StringBuffer("111");
final StringBuffer b = new StringBuffer("222");
a=b;//此句编译不通过
final StringBuffer a = new StringBuffer("111");
a.append("222");//编译通过
可见,final只对引用的"值"(即内存地址)有效,它迫使引用只能指向初始指向的那个对象,改变它的指向会导致编译期错误。至于它所指向的对象的变化,final是不负责的。
String常量池问题的四个例子
下面是几个常见例子的比较分析和理解:
[1]
String a = "a1";
String b = "a" + 1;
System.out.println((a == b)); //result = true
String a = "atrue";
String b = "a" + "true";
System.out.println((a == b)); //result = true
String a = "a3.4";
String b = "a" + 3.4;
System.out.println((a == b)); //result = true
分析:JVM对于字符串常量的"+"号连接,将程序编译期,JVM就将常量字符串的"+"连接优化为连接后的值,拿"a" + 1来说,经编译器优化后在class中就已经是a1。在编译期其字符串常量的值就确定下来,故上面程序最终的结果都为true。
[2]
String a = "ab";
String bb = "b";
String b = "a" + bb;
System.out.println((a == b)); //result = false
分析:JVM对于字符串引用,由于在字符串的"+"连接中,有字符串引用存在,而引用的值在程序编译期是无法确定的,即"a" + bb无法被编译器优化,只有在程序运行期来动态分配并将连接后的新地址赋给b。所以上面程序的结果也就为false。
[3]
String a = "ab";
final String bb = "b";
String b = "a" + bb;
System.out.println((a == b)); //result = true
分析:和[3]中唯一不同的是bb字符串加了final修饰,对于final修饰的变量,它在编译时被解析为常量值的一个本地拷贝存储到自己的常量池中或嵌入到它的字节码流中。所以此时的"a" + bb和"a" + "b"效果是一样的。故上面程序的结果为true。
[4]
String a = "ab";
final String bb = getBB();
String b = "a" + bb;
System.out.println((a == b)); //result = false
private static String getBB()
{
return "b";
}
分析:JVM对于字符串引用bb,它的值在编译期无法确定,只有在程序运行期调用方法后,将方法的返回值和"a"来动态连接并分配地址为b,故上面程序的结果为false。
通过上面4个例子可以得出得知:
String s = "a" + "b" + "c";
就等价于String s = "abc";
String a = "a";
String b = "b";
String c = "c";
String s = a + b + c;
这个就不一样了,最终结果等于:
StringBuffer temp = new StringBuffer();
temp.append(a).append(b).append(c);
String s = temp.toString();
由上面的分析结果,可就不难推断出String 采用连接运算符(+)效率低下原因分析,形如这样的代码:
public class Test {
public static void main(String args[]) {
String s = null;
for(int i = 0; i < 100; i++) {
s += "a";
}
}}
每做一次 + 就产生个StringBuilder对象,然后append后就扔掉。下次循环再到达时重新产生个StringBuilder对象,然后 append 字符串,如此循环直至结束。 如果我们直接采用 StringBuilder 对象进行 append 的话,我们可以节省 N - 1 次创建和销毁对象的时间。所以对于在循环中要进行字符串连接的应用,一般都是用StringBuffer或StringBulider对象来进行append操作。
String对象的intern方法理解和分析
public class Test4 {
private static String a = "ab";
public static void main(String[] args){
String s1 = "a";
String s2 = "b";
String s = s1 + s2;
System.out.println(s == a);//false
System.out.println(s.intern() == a);//true
} }
这里用到Java里面是一个常量池的问题。对于s1+s2操作,其实是在堆里面重新创建了一个新的对象,s保存的是这个新对象在堆空间的的内容,所以s与a的值是不相等的。而当调用s.intern()方法,却可以返回s在常量池中的地址值,因为a的值存储在常量池中,故s.intern和a的值相等。


Integer方法摘要
static int bitCount(int i)
返回指定 int 值的二进制补码表示形式的 1 位的数量。
byte byteValue()
以 byte 类型返回该 Integer 的值。
int compareTo(Integer anotherInteger)
在数字上比较两个 Integer 对象。
static Integer decode(String nm)
将 String 解码为 Integer。
double doubleValue()
以 double 类型返回该 Integer 的值。
boolean equals(Object obj)
比较此对象与指定对象。
float floatValue()
以 float 类型返回该 Integer 的值。
static Integer getInteger(String nm)
确定具有指定名称的系统属性的整数值。
static Integer getInteger(String nm, int val)
确定具有指定名称的系统属性的整数值。
static Integer getInteger(String nm, Integer val)
返回具有指定名称的系统属性的整数值。
int hashCode()
返回此 Integer 的哈希码。
static int highestOneBit(int i)
返回具有至多单个 1 位的 int 值,在指定的 int 值中最高位(最左边)的 1 位的位置。
int intValue()
以 int 类型返回该 Integer 的值。
long longValue()
以 long 类型返回该 Integer 的值。
static int lowestOneBit(int i)
返回具有至多单个 1 位的 int 值,在指定的 int 值中最低位(最右边)的 1 位的位置。
static int numberOfLeadingZeros(int i)
在指定 int 值的二进制补码表示形式中最高位(最左边)的 1 位之前,返回零位的数量。
static int numberOfTrailingZeros(int i)
返回指定的 int 值的二进制补码表示形式中最低(“最右边”)的为 1 的位后面的零位个数。
static int parseInt(String s)
将字符串参数作为有符号的十进制整数进行解析。
static int parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
static int reverse(int i)
返回通过反转指定 int 值的二进制补码表示形式中位的顺序而获得的值。
static int reverseBytes(int i)
返回通过反转指定 int 值的二进制补码表示形式中字节的顺序而获得的值。
static int rotateLeft(int i, int distance)
返回根据指定的位数循环左移指定的 int 值的二进制补码表示形式而得到的值。
static int rotateRight(int i, int distance)
返回根据指定的位数循环右移指定的 int 值的二进制补码表示形式而得到的值。
short shortValue()
以 short 类型返回该 Integer 的值。
static int signum(int i)
返回指定 int 值的符号函数。
static String toBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
static String toHexString(int i)
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
static String toOctalString(int i)
以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
String toString()
返回一个表示该 Integer 值的 String 对象。
static String toString(int i)
返回一个表示指定整数的 String 对象。
static String toString(int i, int radix)
返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
static Integer valueOf(int i)
返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)
返回保存指定的 String 的值的 Integer 对象。
static Integer valueOf(String s, int radix)
返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait


1.Integer类的使用方法
Interger:整数类型
a、属性。
static int MAX_VALUE:返回最大的整型数;
static int MIN_VALUE:返回最小的整型数;
static Class TYPE :返回当前类型。
例子:
System.out.println("Integer.MAX_VALUE: " + Integer.MAX_VALUE );
结果为:Integer.MAX_VALUE: 2147483647
b、构造函数。
Integer(int value) :通过一个int的类型构造对象;
Integer(String s) :通过一个String的类型构造对象;
例子:
Integer i = new Integer("1234");
生成了一个值为1234的Integer对象。
c、方法。
说明:
1. 所有方法均为public;
2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])>
如:
static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
1. byteValue():取得用byte类型表示的整数;
2. int compareTo(Integer anotherInteger) :比较两个整数。相等时返回0;小于时返回负数;大于时返回正数。
例子:
Integer i = new Integer(1234);
System.out.println("i.compareTo: " + i.compareTo(new Integer(123)) );
结果为:i.compareTo: 1
3. int compareTo(Object o) :将该整数与其他类进行比较。如果o也为Integer类,进行方法2 的操作;否则,抛出ClassCastException异常。
4. static Integer decode(String nm) :将字符串转换为整数。
5. double doubleValue() :取得该整数的双精度表示。
6. boolean equals(Object obj) :比较两个对象。
7. float floatValue() :取得该整数的浮点数表示。
8. static Integer getInteger(String nm) :根据指定名确定系统特征值。
9. static Integer getInteger(String nm, int val) :上面的重载。
10. static Integer getInteger(String nm, Integer val) :上面的重载。
11. int hashCode() :返回该整数类型的哈希表码。
12. int intValue() : 返回该整型数所表示的整数。
13. long longValue() :返回该整型数所表示的长整数。
14. static int parseInt(String s) :将字符串转换成整数。s必须是时进制数组成,否则抛出NumberFormatException异常。
15. static int parseInt(String s, int radix) :以radix为基数radix返回s的十进制数。所谓的基数,就是“几进制”。
例子:
String s1 = new String("1010");
System.out.println("Integer.parseInt(String s, int radix): " + Integer.parseInt(s1,2) );
结果为:Integer.parseInt(String s, int radix): 10
16. short shortValue() :返回该整型数所表示的短整数。
17. static String toBinaryString(int i) :将整数转为二进制数的字符串。
18. static String toHexString(int i) :将整数转为十六进制数的字符串。
19. static String toOctalString(int i) :将整数转为八进制数的字符串。
20. String toString() :将该整数类型转换为字符串。
21. static String toString(int i) :将该整数类型转换为字符串。不同的是,此为类方法。
22. static String toString(int i, int radix) :将整数i以基数radix的形式转换成字符串。
例子:
int i1 = 54321;
System.out.println("Integer.toString(int i, int radix): " + Integer.toString(i1,16) );
结果为:Integer.toString(int i, int radix): d431
23. static Integer valueOf(String s) :将字符串转换成整数类型。
24. static Integer valueOf(String s, int radix) :将字符串以基数radix的要求转换成整数类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值