lession 3 接口与String类
1.接口中所有声明的方法都是抽象的方法。接口中的方法都是public的
2.接口中也可以定义成员变量。接口中成员变量都是public final static 的,我们实际开发中很少在接口中定义成员变量。
3.final 和 abstract不能同时修饰一个类(final不希望被继承、abstract希望被继承。所以矛盾)
4.Design Pattern(设计模式)。单例模式(Singleton):表示一个类只生成唯一的一个对象实例。
备注:核心在于构造器私有化、提供静态方法
5.(package).开发中包就相当于文件夹分门别类,包的命名规则:全部小写字母
6.编译带有package声明的java源文件有两种方式:
a) 直接编译,然后更具类中所定义的包名,逐一手工建立目录结构,最后嫁给你生成的class文件放入到该目录结构中(很少使用,比较麻烦)
b) 使用编译参数 -d,方式为javac -d.源文件.java, 这样编译会自动帮我们建立好包所对应的目录结构
7.有com.xuyi.dao和com.xuyi.dao.impl那么我们称后一个包是前一个包的子包
8.导入(import),将使用package分离的各个类导入回来,让编译器一起能够找到所需要的类
9.导入包示例:import java.util.Date;或java.util.*;
10.如果两个类在同一个包下,那么就可以直接使用
11.访问修饰符(access modifier)
a) Public(公共的):可以被所有类访问
b) Protected(受保护的):可以被同包和它的子类所访问
c) Private(私有的):只能在类的内部访问
d) 默认(不要加任何修饰符):同包可以访问
12.instanceof: 判断某个对象是否是某个类的实例。比如person instanceof Person,返回值是boolean值
13.相等的比较(==)
a) 对于原生数据类型来说,比较的是左右两边的值是否相等
b) 对于引用数据类型来说,比较的是左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同
14.API(Application Programming Interface),应用编程接口
15.equals()方法,该方法定义在Object类中,因此java中每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用equeals()方法引用雨传递进来的引用是否一致,即这两个引用是否指向同一个对象。对于Object类的equals()方法来说,它等价于==。
16.对于String类的equals()方法来说,它是判断当前字符串与传进来的字符串内容是否一致。
17.对于String对象的相等性判断来说,请使用equals()方法,而不要使用==。
18.String是常量,其对象一旦创建就无法改变。当使用+拼接字符串时,会生成新的String对象,而不是对原来的String对象的追加内容
19.String Pool(字符串池)
20.String string=”test”;(使用字面值得方式赋值)
a) 首先查找String Pool中是否存在“test”这个对象,如果不存在,则在String Pool中创建一个”test”对象,然后将String Pool中的这个”test”对象地址返回来,赋给引用变量string,这样string就会指向String Pool中这个”test”字符串对象。
b) 如果存在,则不创建任何对象,直接在String Pool中的这个“test”对象地址返回来,赋给string引用。
21.String string=new String(“test”);
a) 首先在String Pool中查找有没有”test”这个字符串对象,如果有,则不在String Pool中再去创建”test”这个对象,直接在堆(heap)中创建一个”test”字符串对象,然后给你堆中的这个对象地址返回来,赋给string引用,导致string指向了堆中指向堆中创建的这个”test”字符串对象
b) 如果String Pool中没有,则首先在String Pool中创建一个”test”对象,然后再在堆中创建一个”test”对象,然后将堆中的这个”test”对象的地址返回,赋给string引用,导致string指向了堆中所创建的这个”test”对象