Java经典知识点&面试题整理03

本文整理了Java面试中常见的知识点,包括String、StringBuffer、StringBuilder的区别,ArrayList和LinkedList的特性对比,List、Set与Map的差异,以及HashMap、Hashtable、TreeMap的特点。并提供了示例代码帮助理解。
摘要由CSDN通过智能技术生成

这次是第三期Java经典知识点以及面试题了,希望能给广大面试的童鞋提供帮助哈!

1.试比较String,StringBuffer,StringBuilder三者间的区别。

①:String的值不可变,每次对String操作都会生成新的String对象,这样会浪费内存空间,而StringBuffer和StringBuilder的值能多次修改,并且不会产生新的对象

②:StringBuilder执行速度快,但线程不安全;StringBuffer执行速度慢,但线程安全

可参照这篇博客查看具体的区别以及细节,这里不作过多的解释,链接为https://blog.csdn.net/u011702479/article/details/82262823

下面分别对StringBuffer以及StringBuilder分别写一个Demo,代码如下:

public class StringBufferDemo {

	public static void main(String[] args) {
		//内容可以改变的字符串,相比String节省开销
		StringBuffer sb = new StringBuffer();
		//初始容量默认16字符
		StringBuffer sb1 = new StringBuffer(20);
		System.out.println(sb.capacity());//16 初始容量
		System.out.println(sb1.capacity());//20
		//使用StringBuffer和String显示0-9
		for(int i=0;i<10;i++) {
			sb1.append(i);
		}
		System.out.println(sb1);
		//反转
		System.out.println(sb1.reverse());
		String str = new String();
		for(int i=0;i<10;i++) {
			str += i;
		}
		System.out.println(str);
		String str2 = new String();
		for(int i=9;i>=0;i--) {
			str2+=str.charAt(i);
		}
		System.out.println(str2);
		//希望显示¥6,577.55(按银行方式显示)
		double sal = 6577.55;
		StringBuffer sb2 = new StringBuffer("6577.55").insert(0, '¥');
		sb2.insert(2, ',');
		System.out.println(sb2);
	}

}

StringBuilder的Demo代码如下: 

public class StringBuilderDemo {

	public static void main(String[] args) {
		//如果项目与线程相关,请使用StringBuffer
		StringBuilder sb = new StringBuilder();
		sb.append("今天星期四");
		sb.insert(4,"hello");
		System.out.println(sb);
	}

}

这里

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值