StringBuffer & StringBuilder & String,常用类
来源:互联网 发布:淘宝牛皮钱包 编辑:程序博客网 时间:2024/04/29 18:50
String类的本质StringBuffer和StringBuilder 常见包装类
一、 String类
特点
String用于保存字符串
String创建对象
“hello” 默认就是 一个String的对象(实例)
1、通过构造方法
String str = new String(“hello”);
2、直接赋值
String str = “hello”;
1、★★问题思考?
两种创建对象方式的区别:
直接赋值:
先去常量池中查看 是否有字面值一样的 空间,如果没有则创建,如果有,则直接 指向。
通过构造方法:
肯定会在堆中创建空间,空间中的字符串值引用了 常量池中的字面上的值。如果常量池中有和字面值一样的空间,则直接引用,否则 就创建
2、★★问题思考?
String str=new String("hello");创建了几个对象创建了两个对象
3、★★问题思考?
String str="hello"+"world";创建了几个对象创建了 三个对象"hello"/"world"/"helloworld"str+="xiaohua";每次拼接都要新开空间,所以效率比较低原因:字符串保存的是常量,一旦开辟空间,里面的值不能更改!
String类的常用方法
见已发布String相关javaSe基础博客文章
二、 StringBuffer类
(1)特点
String类的增强版
实质上也是保存字符串,但 增删改的话是在原来的空间上,不需要新开辟空间,效率 比较高!!
StringBuffer
1、创建对象 通过构造器2、常用方法 append追加 insert插入 replace修改 delete删除 reverse反转 length获取长度 indexOf获取字符或字符串第一次出现的索引 lastIndexOf 获取字符串或字符串最后一次出现的索引3、String和StringBuffer的转换 String——StringBuffer 通过构造器 StringBuffer——String 通过toString4、StringBuffer和StringBuilder、String对比 《1》效率不同,StringBuilder>StringBuffer>String 《2》StringBuffer和StringBuilder都是保存字符串变量 《3》增删改操作都是在自身基础上修改,不用重新开辟空间,String 保存字符串常量 每次增删改都需要重新开辟空间。 《4》StringBuffer 线程安全、同步、效率低、版本老的, StringBuilder线程不安全、不同步、 《5》效率高、版本新的
1、★★思考问题
String和StringBuffer的区别
String 保存字符串 常量
StringBuffer 保存字符串 变量
(2)创建对象
StringBuffer s = new StringBuffer(“hello”);
(3)StringBuilder/StringBuffer/String对比
String 保存字符串常量,里面的值不能更改StringBuffer和StringBuilder保存字符串变量,里面的值可以更改 线程安全 同步 效率 版本 StringBuilder 不安全 不同步 高 新(1.5)StringBuffer 安全 同步 低 老(1.0)效率StringBuilder>StringBuffer>String
常见方法
见代码:
public class TestStringBuffer { public static void main(String[] args) throws Exception { //创建StringBuffer对象 StringBuffer s = new StringBuffer("hello"); //方法一:append 追加 /* * 特点: * * ☆可以在本身基础上追加 * ★可以追加任意类型 * ★返回类型 :StringBuffer */// s.append("张三");// s.append("李四");// s.append(true);// s.append('男');// s.append(1.5);// s.append(100); System.out.println(s.append("张无忌").append("周芷若").append("小昭")); //方法二:insert 插入 System.out.println(s.insert(8, true));; //方法三:replace 修改 /* * 参数1: 要替换的起始索引(包含) * 参数2:要替换的结束索引(不包含) * 参数3: 新的元素 */ System.out.println(s.replace(8, 12, "曹小华"));; //方法四:delete 删除 /* * 参数1: 要删除的起始索引(包含) * 参数2:要删除的结束索引(不包含) */ System.out.println(s.delete(11, s.length()));; //indexOf、lastIndexOf、length、substring //-------------String类和StringBuffer的转换-------------- /* * String——StringBuffer,通过构造器 * StringBuffer——String,通过 toString方法 */ StringBuffer bu1=new StringBuffer("hlll"); String string = bu1.toString();
三、包装类
1、概念:
将基本类型 包装成 对应的引用类型,保存的数值一样,但可以有属性和方法
2、对应关系
byte-Byteshort-Shortint-Integerlong-Longfloat-Floatdouble-Doublechar-Characterboolean-Boolean
3、自动装箱和拆箱
自动装箱(基本类型——包装类) Integer i = 10;自动拆箱(包装类——基本类型) int a= i; int x=i+3;
4、类型转换
《1》Integer和String之间
Integer——String 调用方法toString 拼接字符串String——Integer Integer i=new Integer(string); 调用方法valueOf
《2》Integer和int之间
Integer——int 自动拆箱 调用方法intValue int——Integer 自动装箱 Integer i=new Integer(int);
《3》int和String之间
int——String 拼接字符串 String——int 调用方法parseInt
《4》Character类的常见方法
isLetter 确定指定字符是否为字母。isUpperCase 确定指定字符是否为大写字母。isLowerCase 确定指定字符是否为小写字母。isDigit 确定指定字符是否为数字toUpperCase 使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。toLowerCase 使用取自 UnicodeData 文件的大小写映射信息将字符(Unicode 代码点)参数转换为小写。
四、常用类方法
1、此类用于演示Date类的使用
按格式显示当前日期
public class TestDate {public static void main(String[] args) { Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String strDate = sdf.format(d); System.out.println(strDate);}}
2、此类用于演示日历(Calendar)类的使用
public class TestCalendar {public static void main(String[] args) { //创建Calendar对象 Calendar c=Calendar.getInstance(); System.out.println(c); //调用方法 int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); int second = c.get(Calendar.SECOND); System.out.println(year+"年"+(month+1)+"月"+day+"日 "+hour+":"+minute+":"+second);}
}
3、此类用于演示(System)类的使用
public class TestSystem {public static void main(String[] args) { //方法一:exit退出程序 System.out.println("hehehhe");// System.exit(0);// System.out.println("hhahahha"); 已退出未执行 //方法二:arrayCopy /* * 参数1:源数组 * 参数2:源数组 复制的起始索引 * 参数3:目标数组 * 参数4:目标数组的起始索引 * 参数5:复制的个数 */ int[] src={1,2,3}; int[] dest=new int[src.length]; System.arraycopy(src, 0, dest, 1, src.length-1); for (int i = 0; i < dest.length; i++) { System.out.println(dest[i]); } //方法三:currentTimeMillens,单位ms long start = System.currentTimeMillis(); //执行某段代码花费了一定时间 long end = System.currentTimeMillis(); //方法四:getProperties 获取系统属性 System.out.println("-----------------------------------"); Properties properties = System.getProperties(); properties.list(System.out);}
}
4、此类用于演示(Character)类的使用
public class TestCharacter {public static void main(String[] args) { Character c=new Character('a'); Character c2 ='a';//自动装箱 char ch=c2;//自动拆箱 //调用方法 // 判断 System.out.println(Character.isLetter('4')); System.out.println(Character.isLetter('x')); System.out.println(Character.isDigit('4')); System.out.println(Character.isDigit('*')); System.out.println(Character.isUpperCase('M')); System.out.println(Character.isLowerCase('M')); //和String之间的转换 //将String 转换成 char[] String str="abc"; char[] chs = str.toCharArray();
// for (int i = 0; i < chs.length; i++) {
// System.out.println(chs[i]);
// }
//
//将char 转换成 String String string = c2.toString(); System.out.println(string);}
}
0 0
- StringBuffer & StringBuilder & String,常用类
- Java 常用类String、StringBuffer和StringBuilder
- String,StringBuffer, StringBuilder类的常用方法
- string类 stringBuffer stringBuilder
- String StringBuffer StringBuilder类
- 【Java-常用类】String类,StringBuffer类,StringBuilder类
- 常用类 StringBuffer类、StringBuilder类、String类
- java常用类——String、StringBuffer、StringBuilder类
- 黑马程序员 常用对象API-- String类、Stringbuffer、StringBuilder总结
- JavaSE06_常用类之String StringBuffer StringBuilder比较
- 黑马程序员《常用对象API string类 stringbuffer、stringBuilder》
- String StringBuffer StringBuilder 类的区别 和 常用方法
- java常用类--String,StringBuffer,StringBuilder的区别
- 07.【String类】【StringBuffer】【StringBuilder】
- String、StringBuffer和StringBuilder类
- String、StringBuffer和StringBuilder类
- 关于String StringBuilder StringBuffer 类
- String、StringBuffer和StringBuilder类
- Homebrew 安装
- 源码带你分析View的工作原理
- Mysql数据库主要系统表说明
- 设计模式之状态模式19
- 文件实用程序
- StringBuffer & StringBuilder & String,常用类
- 防止jQuery Load使用缓存的方法
- 技术博客汇总
- Android ViewTreeObserver简介
- kube-scheduler 组件源码阅读笔记
- Html 播放MP4
- 算法学习 -- Staple: Complementary Learners for Real-Time Tracking
- 处理字符串的一些小的实用的函数
- LeetCode 207. Course Schedule 题解