常用类知识点整理(Object类,String类,StringBuffer类和StringBuilder类)

本文详细介绍了Java中常用的字符串处理类,包括Object类的clone()和finalize()方法,String类的特性、构造方法及一系列常用方法,以及线程安全的StringBuffer和非同步的StringBuilder类的构造与方法。强调了String的不可变性,以及在多线程环境下选择StringBuffer,单线程环境下选择StringBuilder以提高效率。
摘要由CSDN通过智能技术生成

Object类

概念:
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。所有的类都直接或者间接的继承自Object类。该类的设计也符合面向对象中“万事万物皆对象”的思想。

构造方法 :

public Object()

任何一个类都会调用这个方法,访问子类构造方法的首先会先访问父类无参的构造方法。

clone方法

protected Object clone()
创建并返回此对象的一个副本。

public class ObjectDemo {
   
	public static void main(String[] args) throws CloneNotSupportedException {
   
		Student s1 = new Student("张飞", 20);
		Student s2 = new Student("曹操", 30);
		
		Object s1Clone = s1.clone();
		
		Student s3 = (Student)s1Clone;
		System.out.println(s3.getName() + "|" + s3.getAge());
		
		Student s4 = s1;
		System.out.println(s1 == s4); // true
		System.out.println(s1 == s3); // false
		
		s3.setName("刘备");
		s3.setAge(30);
		
		System.out.println(s1.getName() + "|" + s1.getAge());
		System.out.println(s3.getName() + "|" + s3.getAge());
	}
}
public class Student extends Object implements Cloneable{
   
	@Override
	protected Object clone() throws CloneNotSupportedException {
   
		return super.clone();
	}
}
public interface Cloneable {
   
}

finalize()方法

当垃圾回收器确定不存在对该对象的更多引用时,
由对象的垃圾回收器调用此方法。用于垃圾回收,但是什么时候回收不确定。

public class ObjectDemo {
   
	public static void main(String[] args) throws Throwable {
   
		Student s1 = new Student();
		s1.finalize();
		s1 = null;
		
	}
}

public class Student{
   
	@Override
	protected void finalize() throws Throwable {
   
		
		super.finalize();
	}
}

String类

概念 : 多个字符组成的字符序列,也可以理解为字符数组。

特点:
1.Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
2.字符串是常量,它们的值在创建之后不能更改;字符串缓冲区支持可变的字符串,因为 String 对象是不可变的,所以可以共享。
3.所有的常量在内存的方法区的常量池中
4.频繁的字符串拼接操作会导致常量池容器增加,浪费内存资源
5.字符串缓冲区【StringBuffer,StringBuilder】支持可变的字符串
6.Java在编译时期会针对字符串的拼接操作使用StringBuilder改进,提高效率,节约内存资源
s = (new StringBuilder(String.valueOf(s))).append(“efg”).toString();
System.out.println((new StringBuilder(“s:”)).append(s).toString());
7.因为 String 对象是不可变的,所以可以共享
8.字符串本质是字符数组

String类构造方法

字符串常用方法1

  • public String()

  • public String(String original)

  • public String(char[] value)

  • public String(char[] value, int offset, int count)

  • public String(byte[] bytes)

  • public String(byte[] bytes, int offset, int length)

  • String(byte[] bytes, String charsetName)

public class StringDemo {
   
	public static void main(String[] args) throws UnsupportedEncodingException {
   
		String s1 = "";
		String s2 = new String();
		
		System.out.println(s1 == s2);
		System.out.println(s1.equals(s2));
		
		// public String(String original)
		String s3 = new String("abc");
		System.out.println(s3);
		
		// public String(char[] value)
		char[] chs = {
   'a', 'b', 'c', 'd'};
		String s4 = new String(chs);
		System.out.println(s4);
		
		// public String(char[] value, int offset, int count)
		String s5 = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值