一:浅拷贝与深拷贝:
对于基本数据类型,直接进行拷贝,String类型,有两种拷贝方式:
1:直接将原对象中的name的引用值拷贝给新对象的name字段。<浅拷贝>
2:根据原对象中的name指向的字符串对象创建一个新的相同字符的对象,将新字符的引用符赋给新拷贝的对象的name字段<深拷贝>
深拷贝一个对象,这个对象必须实现Cloneable接口,实现clone方法,并且在clone内部,把该对象引用的对象也要clone一份,所以被引用的对象也必须实现Cloneable接口和clone方法
jpg来源java宝典
二:如果两个对象相同(equals方法返回true),那么他们的hashcode一定相同。
如果hashcode相同,他们并不一定相同。
三:String类是finla类,不能继承
四:方法的重载和重写都是实现在实现多态,重载实现编译时的多态,后者实现运行时的多态。
重载原则(1、方法名一致,参数列表中参数的顺序、类型、个数不变。2、与方法的返回值无关,存在与父类与子类,同类中。3、可以抛出不同的异常,可以有不同的修饰符)
重写原则(1、参数列表必须完全一样返回值也必须一样2、;构造方法不能被重写,声明为final、static的不能被重写,3、访问权限不能比父类低)
五:抽象方法需要子类冲重写,静态方法是无法被重写的
六:依赖注入(DI)
一个java对象(调用者)需要调用另一个java对象(被调用者,即被依赖对象)时,以前会采用“new被调用对象”。
使用Spring框架,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制,这样子,控制权由应用代码转移到Spring容器,控制权发生了反转,这就是Spring的控制反转。
Spring容器负责将依赖对象赋值给调用者的成员变量,这相当于为调用者注入了他依赖的实例,这就是Spring的依赖注入。
依赖注入的实现方式:
依赖注入的作用就是使用Spring框架创建对象时,动态地将其所依赖的对象注入Bean组件中,其实现方式通常有两种,一种时属性setter方法注入,另一种时构造方法注入。
属性setter方法注入:指ioC容器使用setter方法注入被依赖的实例,通过调用无参构造器或无参静态工厂方法实例化Bean后,调用Bean的setter方法,即可实现基于setter方法的依赖注入。
构造方法注入:指ioC容器使用构造方法注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。