this是本类对象的引用,哪个对象调用,this就表示哪个对象。
因为java中的就近原则,方法中局部变量和类中成员变量重名就会产生问题。this关键字的作用就是用来区分成员变量和局部变量的。this.变量。就代表成员变量。
枚举类,枚举中的每一个值都可以看做是一个常量,也会生成class文件。
四季枚举类
public enum Season{
SPRING,SUMMER,AUTUMN,WINTER
}
对static修饰的方法的理解
第一句好理解:于静态方法来说,是没有this的,因为不依附于任何对象,既然都没有对象,就谈不上this了;
第二句有点难:在静态方法中不能访问类的非静态成员变量和非静态方法,因为非静态成员变量和非静态方法都必须依赖于具体的对象才能被调用。
第三句是对第二句补充:虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法和静态成员变量。
对static修饰的变量和static代码块理解
static静态变量被所有的对象所共享,而非静态变量是具体对象所拥有的。
static代码块,在类加载的时候只执行一次
throw和throws
throws: 跟在方法声明后面,后面跟的是异常类名 。表示该方法可能抛出一个异常,由该方法的调用者来处理。
throw: 用在方法体内 ,是某个语句明确要抛出一个异常,由方法体内的语句处理。
StringBuffer 和 StringBuilder 类
执行速度::StringBuilder > StringBuffer > String
StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。