字符串String、StringBuffer、StringBuilder:
名称 | 类型 | 简介 |
---|---|---|
String | 字符串 | 底层是final修饰的char[]数组,栈不可更改,每次更改时,栈都会指向更改后的堆,堆上都会创建一个新的实例 |
StringBuffer | 字符串 | 底层是可变的char[]数组,常用作多线程同步操作,继承于Ab |
StringBuilder | 字符串 | 底层是可变的char[]数组,常用作单线程操作,继承于AbstractStringBuilder |
图像例子:
代码例子:
String s="abdcd";
s=s+"cdf";
String b=null;
StringBuilder su=null;//为空会有警告,StringBuffer与之相同
StringBuilder mv="sdaf";//线程不安全,常用做异步操作
StringBuffer sd="sdfa";//线程安全,常用做同步操作
执行速率:StringBuilder>StringBuffer>String
常用的修饰属性特性:
final:
- 修饰属性时不可改变。
- 修饰方法时不可被重载。
- 修饰类时不可被继承。
static:
- 修饰变量可以被所有对象共享。
- 修饰方法时可以不实列化,直接调用。
abstract
- 修饰类时为抽象类。
- 修饰方法时为抽象方法,只能通过子类来实现方法。
加载一个对象的顺序
- 先加载静态(static)修饰的区域。
- 再加载非静态修饰的区域。
- 最后加载构造方法(方法名与对应类的名字相同的为构造方法)。
例子:
public class Zhu{
public void Zhu()//构造方法常做初始化的工作
{
.......
}
}
访问权限:
类型 | 同类 | 子孙类 | 同包 | 其他 |
---|---|---|---|---|
public(公有访问权限) | 支持 | 支持 | 支持 | 支持 |
protect(受保护的访问权限) | 支持 | 支持 | 支持 | 不支持 |
default(默认访问权限) | 支持 | 不支持 | 支持 | 不支持 |
private(私有访问权限) | 支持 | 不支持 | 不支持 | 不支持 |