【博学谷学习记录】超强总结,用心分享 | 第13周:java基础内容复习

文章介绍了Java中面向对象的四大特征:封装、继承、多态和抽象。同时,对比了String、StringBuffer和StringBuilder的区别,强调了线程安全和性能考虑。在异常处理方面,提到了Error和Exception的区别,以及常见的运行时异常示例。
摘要由CSDN通过智能技术生成

这周开始一些基础内容的复习

面相对象的特征有哪些?

封装:把属性和行为结合成一个独立的整体,隐藏内部实现细节,别人只能用我提供的功能,提高安全性

继承:子类继承父类的属性和行为,并且扩展自己的需求,提高代码复用性

多态:不同对象对同一消息做出相应,执行期间判断引用对象的实际类型,根据实际类型调用方法

抽象:问题领域分析,把看上去不同,本质相同的概念归类到一起,用abstract修饰

String, StringBuffer, StringBuilder 区别

String类用final修饰字符数组来保护字符串,不可变

AbstractStringBuilder是StringBuilder,StringBuffer的公共类,定义了各种字符串基本操作(append, insert)

StringBuffer调用方法添加了同步锁,线程安全

StringBuilder没有同步锁

少量操作用String,多线程操作字符串缓冲区用StringBuffer,单线程操作用StringBuilder

例子

class StringTest {

	
	public static void concat1(String s1)
	{
		s1 = s1 + "test1";
	}

	
	public static void concat2(StringBuilder s2)
	{
		s2.append("test1");
	}


	public static void concat3(StringBuffer s3)
	{
		s3.append("test1");
	}


	public static void main(String[] args)
	{

		String s1 = "Geeks";

		concat1(s1);

		System.out.println("String: " + s1);

		StringBuilder s2 = new StringBuilder("Geeks");

		concat2(s2);

		System.out.println("StringBuilder: " + s2);

		StringBuffer s3 = new StringBuffer("Geeks");

		concat3(s3);

		// s3 is changed
		System.out.println("StringBuffer: " + s3);
	}
}

java的异常列举

Throwable是错误处理的父类,有两个子类:Error,Exception

Error:jvm检测到无法预期的错误,是jvm层次的严重错误,jvm无法执行,不可捕捉,无法恢复,只能显示错误信息

Exception可以捕捉。运行异常:不检查异常,程序选择捕获处理,也可以不处理,java编译器不会检查它,没有try catch, throws也会抛出

常见:NullpointerException(空指针),ClassCastException(类型强制转换),IllegalArgumentException(传递非法参数),ArrayStoreException(向数组存放于生命类型不兼容的对象异常),IndexOutOfBoundsException(下标越界)

非运行异常(编译异常):程序必须处理的,IOException, SQLException等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值