2018/11/26
1.@Resource可以具体指明实现哪一个实现类的功能?接口为什么不能实例化?为啥能注入实例化接口?接口为什么就能实现实现类功能?arraylist是接口为什么能够创建对象?
接口不能实例化 所以不会出现调用接口,有多个实现类不知道用的哪个实现类的方法, 但是实现类可以实例化,接口声明对象然后new实现类,这样就具体到用到这个接口对应的实现类方法不会产生混乱,接口定义的变量通过内存到栈区寻址找到对应实现类的变量进行赋值取值返回,list是接口 arraylist是实现类所以可以创建对象 具体突出实现了list的哪一个功能,就像@Resource里面选择好一个实现类一样,@Resource可以具体指明哪一个实现类注入 @Autoie就是唯一个实现类或者最近实现类,接口不能实例化,实例化了就不知道具体需要实现哪个实现类对应的实现功能。
2.抽象类继承接口代表着什么?
抽象类是一种类别,大类,譬如鸟类,鱼类 接口则是对应类别的功能
普通类实现接口需要重写全部方法,抽象类实现接口可以全部不重写或者重写一部分方法,普通类继承抽象类说明这个普通类是这个抽象类的一种类别有共同属性共同方法,通过这个普通类来具体实现相当于间接实现接口中间只是多了个抽象类,抽象类没实现到接口普通类来,抽象类实现接口代表着这一类别有什么功能,接口继承接口,代表着这一类别有更多的功能
3.project为什么在包外不能通过该类对象进行访问?
弄了半天终于整明白了。。
protected的意思是本包可以访问..子类可以继承..
某类的protected 方法和属性在包外是不能通过该类对象进行访问的(你能在包外访问一个类的默认权限的方法和属性吗?当然不能),这就是为什么在某对象所在的包的以外的任何地方,你不可以通过该类的对象引用来调用它的protected 方法和属性,哪怕是在该类的子类中也不可以这样做。在该类包外的子类中能“看到“的只是子类自己继承来的protected 方法和属性,它是不能“看到“它的父类对象的protected方法和属性的。
也就是说你可以new 子类然后子类对象.protected属性..但是这样实际上访问的是子类继承来的属性..并不是父类的属性..
包内 类内 包外子类 上面是为啥包外自己对象不行的原因。
4.this与super
super是实现父类的某个方法 默认构造函数,this指向当前对象
5.mysql语法顺序
where group order
2018/11/28
6.传参,传对象,方法无参赋值
Java中的参数传递都是值复制过程。对象则复制指向对象的首地址,双方都可以通过自己的引用变量修改指向对象的相关属性。方法无参数时对全局或者某个变量赋值则直接覆盖
7.静态方法比构造函数优先级高
子类实例化时,会先执行父类的静态代码块,再执行子类的静态代码块,再执行父类构造函数,最后执行子类的构造函数,静态代码块只会执行一次,当同一个方法包类内再次实例化,静态代码块不会再执行。