Java基础知识_查漏补缺篇

时间:2022-06-22 20:03:44

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.单例模式

顾名思义:只有一个实例对象存在的类。