Java笔记
来源:互联网 发布:微信假红包软件 编辑:程序博客网 时间:2024/06/14 14:04
包装类Wrapper
在Java中一切都是对象,为了方便操作基本数据类型值,所以将基本数据类型也封装成了对象,每个基本数据类型都有一个与之相对应的类,这些类统称包装类(Wrapper Class)。
该包装类主要用于基本数据类型和字符串之间的转换。
基本数据类型和字符串相互转换
- 基本数据类型—>字符串
- 基本数据类型值+”“
- String类中的静态方法static String valueOf(基本数据类型)
- 包装类的静态方法static String toString(基本数据类型)
- 字符串—>基本数据类型
- 使用包装类中的静态方法 static xxx parseXxx(“xxx类型的字符串”);
int parseInt(“intstring”);
long parseLong(“longstring”);
boolean parseBoolean(“booleanstring”);
只有Character没有parse方法 - 如果字符串被包装类(Integer等)进行对象的封装,可以使用包装类中另一个非静态的方法
xxx xxxValue();将一个包装类(Integer等)的对象转成基本数据类型值。
- 使用包装类中的静态方法 static xxx parseXxx(“xxx类型的字符串”);
//基本数据类型--->字符串System.out.println(123+""+1);System.out.println(String.valueOf(21)+1);System.out.println(Integer.toString(56)+1);//字符串--->基本数据类型System.out.println(Integer.parseInt("123")+1);Integer in = new Integer("12");System.out.println(in.intValue()+1);
输出结果:
1231
211
561
124
13
进制转换
1. 十进制—>其他进制
Integer类中的静态方法:
static String toBinayrString(int i):以二进制无符号整数形式返回一个整数参数的字符串表示形式,i - 要转换为字符串的整数,返回类型是字符串
static String toOctalString(int i):八进制
static String toHexString(int i):十六进制
static String toString(int i, int radix):radix - 自定义进制
2. 其他进制—>十进制
1. Integer类中的静态方法:
static int parseInt(String s):将字符串参数作为有符号的十进制整数进行解析
static in parseInt(String s, int radix):自定义进制,将字符串参数解析为有符号的整数
2. 使用Integer类中的静态方法static Integer valueOf(String s, int radix)返回字符串用自定义进制解 析出的Integer对象,然后将这个Integer对象使用toString()方法变成字符串。
//二进制转十进制
System.out.println(Integer.valueOf(“10”,2).toString()+1);
// 八进制转成十进制
System.out.println(Integer.valueOf(“125”,8).toString()+1);
//十六进制转成十进制
System.out.println(Integer.valueOf(“3c”,16).toString()+1);
例:
System.out.println(Integer.toBinaryString(2)+3);System.out.println(Integer.toHexString(60)+3);System.out.println(Integer.parseInt("3c",16));//二进制转十进制 System.out.println(Integer.valueOf("10",2).toString()+1);// 八进制转成十进制 System.out.println(Integer.valueOf("125",8).toString()+1);//十六进制转成十进制 System.out.println(Integer.valueOf("3c",16).toString()+1);
输出结果:
103
3c3
60
21
851
601
Integer a = new Integer("3");Integer b = new Integer(3);System.out.println(a==b);System.out.println(a.equals(b));
输出结果:
false//比较的是地址值
true//Integer覆盖了equals方法,比较的是数值是否相同
一般情况下,==和equals比较的都是地址值,如果使用的是同一个对象的引用,返回true,否则返回false
特殊情况下复写equals方法比较的是两个对象的内容是否相同
平时我们可以比较基本数值的大写,但是当封装成对象后怎么进行大小的比较?
可以使用Integer类中的方法int compareTo(Integer anotherInteger);相等返回0,大于参数Integer返回1,小于参数Integer返回-1。(String类比较返回的是在ASCII码中的差值)
自动装箱与自动拆箱
JDK1.4版本Integer i = new Integer(4);
JDK1.5版本Integer i = 4;//自动装箱
Double d = 123.456;
Character c = ‘a’;
Boolean b = false;
i = i +6;//i = new Integer(i.intValue()+6);//i.intValue就是自动拆箱的过程,但是由于Integer是引用型变量,所以有可能Integer指向的地址是null,所以有必要做健壮性判断
Integer in1 = 127;Integer in2 = 127;System.out.println(in1==in2);System.out.println(in1.equals(in2));Integer in3 = 128;Integer in4 = 128;System.out.println(in3==in4);System.out.println(in3.equals(in4));
输出结果:
true
true
false
true
分析:Integer类复写了equals方法,比较的是内容,内容相同则返回true
引用类型用==判断的时候只有指向同一个地址才返回true,当自动装箱的是一个字节(-128~127)的时候,该数据会被共享,每次复制总是指向这个数字的地址值,不会重新开辟空间,所以用==对比的时候返回true
- java笔记
- JAVA笔记
- java笔记
- java笔记
- JAVA笔记
- java笔记
- Java 笔记
- java笔记
- java 笔记
- java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- 利用commons-dbutils获取xml内容
- 学习日记 --泛型
- Java程序片段 之动态生成表格
- (ZT)Change default Program Files installation directory location in Windows
- fastjson和jackson的简单对比
- Java笔记
- 软件开发--面试笔试题集锦
- LeetCode 113. Path Sum II
- [BZOJ2196]Brownie Slicing 二分答案
- NotePad++快捷键大全
- 数据库技术
- #include< > 和 #include” ” 的区别以及绝对地址引用\\以及cvLoadImage和imread
- Huffman编解码
- notepad++的好用快捷键整理