-
s1 + "abc"
在堆空间创建 -
s.intern()
强制要求返回值在常量池中 -
还是
abc
因为String
不可变性,形参s
改变不影响main
中的s
public static void change(String s) { s = "bcd"; } public static void main(String[] args) { String s = "abc"; change(s); System.out.println(s); }
-
String
中的方法:charAt() length() isEmpty() compareTo() subString(begin, end)
-
StringBuffer
可变的字符序列 线程安全 效率低 初始化长度为字符串长度+16 扩容为扩容一倍+2 -
StringBuilder
可变的字符序列 线程不安全 效率高 -
String
不可变的字符序列 -
StringBuilder
的方法:reverse() append setCharAt()
-
JDK8
之前Date
类toString
时间getTime
时间戳 毫秒Date() Date(毫秒数L)
SimpleDateFormate
类 可以指定格式解析Calendar
日历类 抽象类 静态方法getInstance
-
JDK8
LocalDate
LocalTime
LocalDateTime
Instant Instant i = Instant.now()
DateTimeFormatter
格式化或解析日期、时间
-
自然排序
Comparable
接口 重写compareTo
方法订制排序
Comparator
接口 重写compare
方法 -
BigInteger
BigDecimal
-
枚举
enum Season1 { SPRING("春天", "hhhh"), SUMMER("夏天", "gggg"); private final String a; private final String b; private Season1(String a, String b) { this.a = a; this.b = b; } }
class Season { private final String a; private final String b; private Season(String a, String b) { this.a = a; this.b = b; } public static final Season SPRING = new Season("春天", "hhhh"); public static final Season SUMMER = new Season("夏天", "gggg"); public String getA() { return a; } public String getB() { return b; } @Override public String toString() { return "Season{" + "a='" + a + '\'' + ", b='" + b + '\'' + '}'; } }
-
values
返回枚举类对象的数组Season1[]
valueOf(SPRING")
根据提供的参数返回对应的枚举类中对象 -
枚举类实现接口
interface x { void show(); } enum Season1 implements x{ SPRING("春天", "hhhh") { public void show() { } }, SUMMER("夏天", "gggg") { public void show() { } }; private final String a; private final String b; private Season1(String a, String b) { this.a = a; this.b = b; } }
-
元注解:对现有的注解进行修饰的注解
Retention
指明生命周期 只有RUNTIME
生命周期的注解才能被反射获取Target
指明修饰哪些元素Documented
在被javadoc
解析时可以保留Inherited
被修饰的注解将有继承性public @interface MyAnnotation { String value(); } @MyAnnotation(value = "hello") class c { }