1. java中 connection 与 connections 的区别:
- <1> Java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。 Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。我们比较熟悉的继承该接口的集合有set和list。
- <2>java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架 ,Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全等操作。
2.StringBuffer和StringBuilder的使用:
这两个类所拥有的方法基本一致(delete,append,insert,capacity等方法),都是字符创变量,看起来差别不大,最大的不同点就是,StringBuffer可以做到线程安全,StringBuilder不可以。
当我们在字符串缓冲区被多个线程使用时,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。
使用场景:
单线程操作字符串缓冲区 下操作大量数据 —>StringBuilder
多线程操作字符串缓冲区下操作大量数据 —>StringBuffer
3.继承和多态:
1.如果父类中没有无参构造方法,那么必须在子类的构造方法中第一行显式调用父类的有参构造函数。
代码示例:
父类:
public class Father{
int a;
int b;
//空构造方法被注释
//public Father(){};
public Father(int a,int b){
this.a=a;
this.b=b;
}
//省略无关代码..........
}
子类
public class Son extends Father{
int a;
int b;
String c; //子类独有的参数
public Son(int a,int b,String c){
*/第一行插入super关键字(super关键字代表父类,即super()等价于Father())*/
super(a,b,c);
this.a=a;
this.b=b;
this.c=c;
}
}
4.final关键字
final本身带有最终的意思,所以被final关键字修饰的对象都是最终形态,无法改变自身的属性。因此被final修饰的变量都是常量,被final修饰的方法都是最终方法,无法被子类重写,被final修饰的类是最终类,无法被继承。
5.内部类
- 局部内部类访问的局部变量都需要用final关键字修饰。
- 内部类可以访问自身所在这个外部类中的所有成员方法。
- 内部类只能在当前类中使用,对类外对象隐身。
- 匿名内部类没有名字,适合只需要使用一次的类。
6.单例模式
顾名思义:只有一个实例对象存在的类。