您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,对象可以分为两类:可变对象(Mutable Objects)和不可变对象(Immutable Objects)。这两者的主要区别在于它们的状态是否可以在创建后被修改。
定义:可变对象是指在创建后其状态可以被改变的对象。
特点:
StringBuilder
、ArrayList
、HashMap
等。示例:
public class MutableExample {
private int value;
public MutableExample(int value) {
this.value = value;
}
public void setValue(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
public class Main {
public static void main(String[] args) {
MutableExample example = new MutableExample(10);
System.out.println(example.getValue()); // 输出 10
example.setValue(20);
System.out.println(example.getValue()); // 输出 20
}
}
定义:不可变对象是指在创建后其状态不能被改变的对象。
特点:
String
、Integer
、Long
、Double
、Float
、Boolean
、Date
(注意:Date
类本身是可变的,但它的不可变性通常通过Calendar
类来实现)等。示例:
public final class ImmutableExample {
private final int value;
public ImmutableExample(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
public class Main {
public static void main(String[] args) {
ImmutableExample example = new ImmutableExample(10);
System.out.println(example.getValue()); // 输出 10
// example.setValue(20); // 编译错误,因为setValue方法不存在
}
}
在设计类时,如果对象的状态不需要改变,或者希望对象是线程安全的,可以考虑将其设计为不可变对象。这样可以简化代码,提高性能,并减少并发问题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。