String类

字符串常量池存放在方法区中. String类追根溯源最后都会变成对字符串常量池中字符串的引用.

String类是不可变的(final).

只有当两个数据均处于字符串常量池中时, 使用+连接操作得到的结果才位于字符串常量池, 否则会在堆空间中new新的对象.

Comparable表示自然排序, 例如第三方库中的类不方便修改其底层源代码, 但是那些类又没有实现Comparable接口, 而Comparator表示定制排序

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Person {
    private String name;
    private int age;
    private String id;

    public Person(String name, int age, String id) {
        this.name = name;
        this.age = age;
        this.id = id;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", id='" + id + '\'' +
                '}';
    }

    public static void main(String[] args) {
        List<Person> arrayList = new ArrayList<>();

        //使用lambda表达式实现Comparator接口, 更容易理解
        Comparator<Person> comparator =
                (p1, p2) -> {
                    if (p1.age == p2.age) {
                        return p1.name.compareTo(p2.name);
                    }
                    return Integer.compare(p2.age, p1.age);
                };

        arrayList.add(new Person("xiong", 24, "260424xxxx"));
        arrayList.add(new Person("hello", 24, "260424xxxx"));
        arrayList.add(new Person("hello", 25, "260424xxxx"));

        arrayList.sort(comparator);

        System.out.println("arrayList: " + arrayList);
    }
}

编码和解码

格式化和解析


   转载规则


《》 熊水斌 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
泛型 泛型类 泛型接口 泛型方法 /** * Order是泛型类 */ class Order<T>{ } /** * 此时SubOrder01不是泛型类, 因为指明了Integer */ class SubOrder0
2022-11-11
下一篇 
枚举类枚举类的使用类的对象只有有限个, 确定的. 例如: 星期: 一, 二, 三, 四, 五, 六, 日 性别: 男, 女 当需要定义一组常量时, 强烈建议使用枚举类 如果枚举类中只有一个常量, 则可以作为单例模式的一种实现方式 定义枚
2022-11-11
  目录