本文主要是介绍十一. 常用类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、包装类
- 1.1 包装类的继承关系
- 1.2 包装类和基本数据类型的转换
- 1.3 包装类与String之间的转换
- 1.4 包装类的常用方法
- 二、String类
- 2.1 String类的理解和创建对象
- 2.2 String的创建方式
- 2.3 字符串的特性
- 2.4 String的常用方法
- 三、StringBuffer和StringBuilder类
- 3.1 StringBuffer类
- 3.1.1 StringBuffer类基本介绍
- 3.1.2 String VS StringBuffer
- 3.1.3 StringBuffer的构造器
- 3.1.4 String与StringBuffer之间的转换
- 3.1.5 StringBuffer类常见方法
- 3.2 StringBuilder类
- 3.3 String、StringBuffer与StringBuilder的比较
- 四、Math类
- 五、Date日期类、Calender日历类以及新的日期
- 5.1 第一代日期类
- 5.2 第二代日期类
- 5.3 第三代日期类
- 六、System类
- 七、Arrays类
- 八、BigInterger类和BigDecimal
- 九、经典例题
- 9.1 Integer的创建机制
- 9.2 String 相关题
一、包装类
1.1 包装类的继承关系
1.2 包装类和基本数据类型的转换
public class Test{public static void main(String[] args){int n1 = 12;Integer n2 = n1; // 底层使用 valueOf 方法int n3 = n2; // 底层使用 intValue 方法}
}
1.3 包装类与String之间的转换
public class WrapperVSSring{public static void main(String[] args){// 包装类 (Integer) -> StringInteger i = 100; // 自动装箱// 方式1String str1 = i + "";// 方式2String str2 = i.toString();// 方式3String str3 = String.valueOf(i);// String -> 包装类(Integer)String str4 = "12345";Integer i2 = Integer.parseInt(str4); // 使用到自动装箱Integer i3 = new Integer(str4);}
}
1.4 包装类的常用方法
二、String类
2.1 String类的理解和创建对象
package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class String01 {public static void main(String[] args) {// 1. String 对象用于保存字符串,也就是一组字符序列// 2. "jack" 字符串常量,双引号括起来的字符序列// 3. 字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节// 4. String 类有很多构造器,构造器的重载// 常用的有 String s1 = new String();// String s2 = new String(String original);// String s3 = new String(char[] a);// String s4 = new String(char[] a,int startIndex,int count)// String s5 = new String(byte[] b)// 5. String 类实现 接口 Serializable 【String 可以串行化:可以在网络传输】// 接口 Comparable [String 对象可以比较大小]// 6. String 是final类,不能被其他类继承// 7. String 有属性 private final char value[];用于存放字符串内容// 8. 一定要注意: value 是一个final类型,赋值后,不可以修改(需要功力):// 即:value不能指向新的地址,但是单个字符内容是可以变化的String name = "jack";name = "tom";final char[] value = {'a','b','c'};char[] v2 = {'t','o','m'};value[0] = 'H'; // 可以修改堆中字符数组空间中的元素
// value = v2; // 不能修改value的指向}
}
2.2 String的创建方式
2.3 字符串的特性
package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class String02 {public static void main(String[] args) {String a = "a"; // 在常量池中创建"a"对象String b = "b"; // 在常量池中创建"b"对象// 解读// 1. 先 创建一个 StringBuilder sb = new StringBuilder();// 2. 执行 sb.append("a");// 3. sb.append("abc");// 4. String c = sb.toString()// 最后其实 c 指向堆中的对象(String),value[] -> 池中 "ab"String c = a + b;String d = "ab";System.out.println(c == d); // false}
}
2.4 String的常用方法
三、StringBuffer和StringBuilder类
3.1 StringBuffer类
3.1.1 StringBuffer类基本介绍
package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class StringBuilder01 {public static void main(String[] args) {// 老韩解读// 1. StringBuilder 的直接父类 是 AbstractStringBuilder// 2. StringBuilder 实现了 Serializable,即StringBuffer的对象可以串行化// 3. 在父类中 AbstractStringBuilder 有属性 char[] value,不是final!// 该 value 数组存放 字符串内容,指向堆中的对象(不同于String 的 value 指向常量池)// 4. String 是 final 类,不能被继承// 5. 因为 StringBuffer 字符内容是存在 char value, 所以在变化(增加/删除)// 不用每次都更换地址(即不是每次创建新对象),所以效率高于 StringStringBuilder stringBuilder = new StringBuilder;}
}
3.1.2 String VS StringBuffer
3.1.3 StringBuffer的构造器
3.1.4 String与StringBuffer之间的转换
3.1.5 StringBuffer类常见方法
3.2 StringBuilder类
package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class StringBuilder01 {public static void main(String[] args) {// 1. StringBuilder 继承 AbstractStringBuilder 类// 2. 实现了 Serializable ,说明 StringBuilder对象时可以串行化(对象可以网络传输,可以保存到文件)// 3. StringBuilder 是final类,不被继承// 4. StringBuilder 对象字符序列是存放在其父类 AbstractStringBuilder 的 char[] value;// 5. StringBuilder 的方法,没有做互斥的处理,即没有synchronized 关键字,因此在单线程的情况下使用// StringBuilderStringBuilder stringBuilder = new StringBuilder();}
}
3.3 String、StringBuffer与StringBuilder的比较
四、Math类
五、Date日期类、Calender日历类以及新的日期
5.1 第一代日期类
5.2 第二代日期类
5.3 第三代日期类
六、System类
七、Arrays类
八、BigInterger类和BigDecimal
九、经典例题
9.1 Integer的创建机制
public void main(String[] args){Integer i = new Integer(1);Integer j = new Integer(1);System.out.println(i == j); // 创建两个对象空间,falseInteger m = 1; // 底层 Integer.valueOf(1)Integer n = 1; // 底层 Integer.valueOf(1)System.out.println(i == j); // -128 ~ 127 范围内返回的是缓存中的 Integer 对象,trueInteger x = 128;Integer y = 128;System.out.println(x == y); // -128 ~ 127 范围内返回的是缓存中的 Integer 对象,falseInteger i1 = 127; // 底层 Integer.valueOf()int i2 = 127;System.out.print(i1 == i2); // 只要有基本数据类型,判断的是值是否相等(即:转换为基本数据类型相比较)
}
9.2 String 相关题
- String.intern方法解读
package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class String02 {public static void main(String[] args) {String a = "a"; // 在常量池中创建"a"对象String b = "b"; // 在常量池中创建"b"对象// 解读// 1. 先 创建一个 StringBuilder sb = new StringBuilder();// 2. 执行 sb.append("a");// 3. sb.append("abc");// 4. String c = sb.toString()// 最后其实 c 指向堆中的对象(String),value[] -> 池中 "ab"String c = a + b;String d = "ab";System.out.println(c == d); // false}
}
这篇关于十一. 常用类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!