常用类
1.外部类与内部类
1.成员内部类
一个类里边定义另外一个类,里边的类就叫内部类,外边的就叫外部类
内部类可以访问外部类的成员,即使是私有的。但是要想创建内部类之前就必须先创建外部类。
public class Outer {
private int id = 10;
void show(){
System.out.println("我是外部类");
}
class Inner{
private String name = "zhangsan";
void show(){
System.out.println(id);
System.out.println("我是内部类");
}
}
}
测试
public class Demo01 {
public static void main(String[] args) {
Outer outer = new Outer();
outer.show();
Outer.Inner inner = outer.new Inner();
inner.show();
}
}
2.静态内部类
他和外部类是一个等级,外部类可以用静态内部类的东西,而静态内部类调用外部类的东西需要创建外部类的对象
注意:只有内部类才能用static修饰

3.局部内部类
定义在外部类的方法里,只在方法内有效,可以直接访问外部类的属性。
局部内部类访问所属方法的属性值都是加了final修饰的常量

4.匿名内部类
没有类名的局部内部类,一切特征与局部内部类相同
必须继承一个父类或是实现一个接口

2.整数缓冲区

-128--127之间是一个整数的缓冲区,如有Integer数字在这里边就直接在缓冲区取(前提是你没有用new创建,而是直接定义实现自动装修的),若不在之间就会重新new一个对象来创建,所以上述图片代码结果为FTF
3.String
概述
代码:

描述:
- 字符串第一种创建方式,栈中有一个name保存一个地址指向方法区中字符串池中的具体值hello
- 先去寻找字符串池有没有zhangsan这个值,没有就创建这个值,并将他的地址值赋给name。所以是改的name的地址,地址指向的地方才是新赋的值
- 创建name2后去寻找字符串池有没有这个值,有就直接将地址赋值给name2
- 字符串的的第二中创建方式,会产生两个对象(推和字符串常量池中),new就会在堆中有一个对象(第一个对象),堆中对象指向字符串常量池中的java对象(第二个对象),而str则存储堆中对象的地址值
- str2也会在堆中创建一个对象,虽然str与str2在堆中的对象都指向字符串常量池中的同一个对象,但是他们只是内容相同,而自己本身存的是地址却不相同,所以字符串比较内容用equals,==是比较地址值
内存图:

常用方法
-
split:按条件拆分字符串,返回拆分后的一个字符串数组
split("[ ,]+")表示的条件是以空格或逗号进行拆分,+表示可以按多个空格或多个逗号拆
4.StringBuffer与StringBuild
- StringBuffer:可变长字符串,线程安全,运行效率慢(相对于StringBuild)
- StringBuild:可变长字符串,线程不安全,运行效率快
一些方法(StringBuffer/StringBuild通用):

BigDecimal

SimpleDateFormat

System


浙公网安备 33010602011771号