java学习笔记 day09常用类 Object,String,StringBuilder

1391-王同学

发表文章数:51

首页 » Java » 正文

1、Object

是所有层次类的基类,所有

1.1 toString

Object中的 toString方法一般用于返回对象的哈希值,但是哈希值是没有意义的,我们想要返回对象中元素的内容,一般建议重写,普通的编辑器中右键选择generate即可生成重写toString方法的代码。

1.2 equals

Object 中equals方法默认是比较地址,一般建议重写,普通的编辑器中右键即可自动生成重写后的比较两个对象内容是否相等的equals方法。
下面是重写equals方法后的学生类

import java.util.Objects;

public class Student {
    private String name;
    private int age;
    public Student(){};
    public Student(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '/'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Student)) return false;
        Student student = (Student) o;
        return getAge() == student.getAge() &&
                Objects.equals(getName(), student.getName());
    }

}

,再次进行测试时,发现已经可以比较两个对象的内容是否相等

public class ObjectDemo {
    public static void main(String[] args) {
        Student s1= new Student("w",30);
        Student s2= new Student("w",30);
        System.out.println(s1);
        System.out.println(s1.equals(s2));
    }
}

java学习笔记 day09常用类 Object,String,StringBuilder

2. String类

String类创建对象的特点:

A:通过构造方法创建对象
B:通过直接赋值的方式创建对象

这两种方式的创建是有区别的。

通过构造方法创建的字符串对象是在堆内存。
通过直接赋值的方式创建的字符串对象是在方法区的常量池

public class StringDemo {
	public static void main(String[] args) {
		String s1 = new String("hello");
		String s2 = new String("hello");
		
		String s3 = "hello";
		String s4 = "hello";
		
		System.out.println(s1 == s2);//false
		System.out.println(s1 == s3);//false
		System.out.println(s3 == s4);//true
	}
}

java学习笔记 day09常用类 Object,String,StringBuilder

3. StringBuilder

是可变的字符串类,用来解决String拼接时内存浪费的问题。

  • 添加功能
  public StringBuilder append(任意类型):添加数据,并返回对象本身。
  • 反转功能
  public StringBuilder reverse()
public class StringBuilderDemo {
	public static void main(String[] args) {
		//创建对象
		StringBuilder sb = new StringBuilder();
		
		//链式编程
		sb.append("hello").append("world").append(true).append(100);
		
		System.out.println("sb:"+sb);
		
		//public StringBuilder reverse()
		sb.reverse();
		System.out.println("sb:"+sb);
	}
}

java学习笔记 day09常用类 Object,String,StringBuilder
String与StringBuilder相互转换

  • String —StringBuilder :

新建一个StringBuilder 对象即可: StringBuilder sb = new StringBuilder(s)

  • StringBuilder —String:

用toString方法:
StringBuilder sb = new StringBuilder();
sb.append(“hello”);
String s = sb.toString();

未经允许不得转载:作者:1391-王同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《java学习笔记 day09常用类 Object,String,StringBuilder》 发布于2020-11-10

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录