一,构造方法的特点

面向对象的思想是如何在java展现的呢? 就是通过类和对象

类是一组相关的属性和行为的集合。是一个抽象的概念。

对象是该类事物的具体表现形式。具体存在的个体。

一、抽象类的抽象方法的特点是什么?

被abstract修饰的类称为抽象类

特点:

1、抽象类不能有对象(不能用new关键字来实例化对象)

2、抽象方法一定是在抽象类的,但是抽象类不一定有抽象方法

3、子类继承抽象类必须重写抽象类中的抽象方法

4、使用extends关键字来继承

要注意的是抽象方法没有方法体

二、抽象类的抽象方法的特点是什么?

一、使用abstract修饰符修饰的类被称为抽象类;

抽象类不能实例化对象,只能被继承;

二、使用abstract修饰符修饰的方法被称为抽象方法;

抽象方法不能有方法体,子类必须重写抽象类中所有的抽象方法;

三、抽象类中不一定包含抽象方法,但包含抽象方法的类一定是抽象类;

三、方法重载的方法重写是什么?有什么区别?

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同

重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法

四、使用继承有什么特点?继承的优点是什么?

子类是一种特殊的类型,而不只是父类的一个角色

子类的实例不需要变成另一个类的对象

子类扩展,而不是覆盖或者使父类的功能失效

优点

新的实现很容易,因为大部分是继承而来的

很容易修改和扩展已有的实现

缺点

打破了封装,因为基类向子类暴露了实现细节

白盒重用,因为基类的内部细节通常对子类是可见的

当父类的实现改变时可能要相应的对子类做出改变

不能在运行时改变由父类继承来的实现

五、多态的特点?有什么优点?

多态的特点:

一、要有继承;
二、要有重写;
三、父类引用指向子类对象

多态的优点:
1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。如图8.3 所示。图中超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,完善或者覆盖这两个接口方法。
4.灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

六、多态的实现方式是什么?

使用父类作为方法形参实现多态

使用父类作为方法返回值实现多态

七、如何编写接口?

编写接口:   public interface UsbInterface {

/**

* USB接口提供服务。

*/

void service();

}

实现接口:   public class UDisk implements UsbInterface {

public void service() {

System.out.println("连接USB口,开始传输数据。");

}

}

使用接口:    UsbInterface uDisk = new UDisk();

uDisk.service();

八、接口的作用是什么?

接口是一种协议。例如两个开发者,开发时间完全不一致,那么需要两个人的配合开发,则需要一个人讲接口写好,定义好其中所有的变量命名规范、函数定义规范。具体实现类的开发人员则只需要按照接口实现相应功能即可。

接口更像是一种定义的规范

九、接口和抽象类有什么异同?

相同点:

1.都不能被实例化

2.接口的实现类或者抽象的子类都必须实现类接口或者继承了抽象才可以被实例化

不同点

1.接口只有定义,方法不能再接口中实现,实现接口的类要实现接口中的所有方法;抽象类可以有定义与实现方法可以在抽象类中实现

2.接口要实现,抽象要继承,一个类可以实现多个接口,但只能继承一个抽象类

3.接口强调设计理念“has-a”的关系,抽象类强调“is-a”关系

4.接口中定义变量默认为public、static、final且要设定初始值方法必须是publicstatic只能是这两个抽象类可以有自己的成员变量也可以有非抽象的成员方法,成员默认值为:default

5.接口被运用于比较常用的功能,抽象更倾向于充当公共类的角色

6.接口是定义规范的,抽象是对公共部分的抽取

十、什么是异常,你是如何理解的?

一、运行时异常:我们可以不处理,当出现这种的异常时,总是由虚拟机接管;

二、检查时异常:我们经常遇到的IO异常及SQL异常就属于检查式异常;java编译器要求我们必须对出现的这些异常进行catch所以面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。

十一、如何处理异常,异常的关键字是什么?

Try:执行可能产生异常的代码

Catch:捕获异常;

Finally:无论是否发生异常,代码总能执行;

声明异常 throws:声明方法可能要抛出的各种异常;

抛出异常 throw:手动抛出异常;

十二、常见的异常种类有哪些?

Exception 异常层次结构的根类;

ArithmeticException 算术错误情形,如以零作除数;

ArrayIndexOutOfBoundsException 数组下标越界

NullPointerException 尝试访问 null 对象成员

ClassNotFoundException 不能加载所需的类

IllegalArgumentException 方法接收到非法参数

ClassCastException 对象强制类型转换出错

NumberFormatException 数字格式转换异常,如把"abc"转换成数字

十三、方法重载的方法重写是什么?有什么区别?

重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一

样,但是参数的类型或个数不同,此时B重载了A。

重写:一个类M继承另一个类N,N中有一个方法A,这时你在M写了一个方法B,方法B的名字、返回值以及参数都和A一样,此时B重写了A。

方法重写与方法重载的相同点

(1)方法的名称相同

(2)都可以用于抽象方法和非抽象方法之间。

方法重写与方法重载的不同点:

(1)方法重写要求参数签名必须相同,而方法的重载要求参数签名必须不同。

(2)方法重写要求返回类型必须相同,而方法重载对此没有限制。

(3)方法重写只能用于子类重写父类的方法,而方法的重载用于同一个类的所有方法(包括从父类中继承的方法)

(4)方法重写对方法的访问权限和抛出的异常有特殊的要求,而方法的重载对此没有任何限制

(5)父类的一个方法只能被子类重写一次,而一个方法在所在的类中可以被多次重载。

十四、多态的特点?有什么优点?

特点

1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。如图8.3 所示。图中超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,完善或者覆盖这两个接口方法。
4.灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

优点

减少类中代码量

提高代码的可扩展性和可维护性

十五、多态的实现方式是什么?

使用父类作为方法形参实现多态

使用父类作为方法返回值实现多态

十六、如何编写接口?

public interface MyInterface {

public void foo();

//其他方法

}

十七、接口的作用是什么?

1.可以被多继承

2.设计和实现完全分离

3.更自然的使用多态

4.更容易搭建程序框架

5.更容易更换实现

十八、接口和抽象类有什么异同?

相同点:

1.都不能被实例化

2.接口的实现类或者抽象的子类都必须实现类接口或者继承了抽象才可以被实例化

不同点:

1.接口只有定义,方法不能再接口中实现,实现接口的类要实现接口中的所有方法;抽象类可以有定义与实现方法可以在抽象类中实现

2.接口要实现,抽象要继承,一个类可以实现多个接口,但只能继承一个抽象类

3.接口强调设计理念“has-a”的关系,抽象类强调“is-a”关系

4.接口中定义变量默认为public、static、final且要设定初始值方法必须是publicstatic只能是这两个抽象类可以有自己的成员变量也可以有非抽象的成员方法,成员默认值为:default

5.接口被运用于比较常用的功能,抽象更倾向于充当公共类的角色

6.接口是定义规范的,抽象是对公共部分的抽取

十九、如何使用log4j记录日志?

1. 定义配置文件

2. 配置日志信息输出目的地APPender

3. 配置日志信息格式

二十、常见的集合有哪些?他们有什么常用方法?

ArraysList

Boolean add (Object o)

Void add (int index, Object o)

Int size()

Object get(int index)

Boolean contains(Object o)

Boolean remove(Object o)

Object remove(int index)

LinkedList

void addFirst(Object o)

void addLast(Object o)

Object getFirst()

Object getLast()

Object removeFirst()

Object removeLast()

二十一、list, set , map各有什么异同?

list:储存一组不唯一,有序的对象

set:储存一组唯一,无序的对象

map:储存一组成对的键-值对象,key不要求有序,不允许重复,value不要求有序,但允许重复

二十二、和数组类型采用相同结构的是哪个集合?

ArraysList

二十三、什么是foreach循环?

foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组

二十四、线程与进程的区别?

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。

线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。

区别:

地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。

资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。

执行过程:每个独立的进程程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

线程是处理器调度的基本单位,但是进程不是。

两者均可并发执行。

二十五、实现线程有哪几种方法?

继承Tread类

Runnable接口

实现Callable接口通过FutureTask包装来创建Tread线程

使用ExecutorService,Callable,Future实现有返回结果的多线程

二十六、线程的生命周期是什么?

创建状态   就绪状态   阻塞状态  运行状态   死亡状态

二十七、简单解释-一下线程休眠,线程强制执行,线程礼让.以及他们的实现方法

线性休眠:进入不可运行状态

sleep()方法

线性强制执行:暂停运行

join()方法

线程礼让:允许其他先执行

yeild()方法

二十八、什么情况下需要线程同步?

两个或多个线程需要访问同一资源时

二十九、什么是流?流的常见种类有哪些?使用流的过程中需要注意哪些问题?

流是指一连串流动的字符,是以先进先出方式发送信息的通道

字节流:

输出流:FileInputStream

输入流:FileOutputStream

字符流:

输入流:FileWriter

输出流:FileReader

缓冲流:

输入流:BufferedWriter

输出流:BufferedReader

注意事项:

创建了记得关闭流

注意线程安全的问题

先关闭输入流再关闭输出流

线程同步

三十、脏读,漏读,幻读

脏读:

所谓脏读是指一个事务中访问到了另外一个事务未提交的数据

漏读:

不可重复读:指在一个事务内根据同一个条件对行记录进行多次查询,但是搜出来的结果却不一致

幻读:指同一个事务内多次查询返回的结果集不一样

三十一、HashMap,Hashmap和hashtable?

HashMap和Hashtable的区别:

Hashtable是线程安全,而HashMap则非线程安全

HashMap可以使用null作为key,而Hashtable则不允许null作为key

HashMap是对Map接口的实现,HashTable实现了Map接口和Dictionary抽象类

ashMap的初始容量为16,Hashtable初始容量为11

Hashtable计算hash是直接使用key的,hashcode对table数组的长度直接进行取模

HashSet不是key value结构,仅仅是存储不重复的元素,相当于简化版的HashMap,只是包含HashMap中的key而已

构造方法的特点

面向对象的思想是如何在java展现的呢? 就是通过类和对象

类是一组相关的属性和行为的集合。是一个抽象的概念。

对象是该类事物的具体表现形式。具体存在的个体。

一、抽象类的抽象方法的特点是什么?

被abstract修饰的类称为抽象类

特点:

1、抽象类不能有对象(不能用new关键字来实例化对象)

2、抽象方法一定是在抽象类的,但是抽象类不一定有抽象方法

3、子类继承抽象类必须重写抽象类中的抽象方法

4、使用extends关键字来继承

要注意的是抽象方法没有方法体

二、抽象类的抽象方法的特点是什么?

一、使用abstract修饰符修饰的类被称为抽象类;

抽象类不能实例化对象,只能被继承;

二、使用abstract修饰符修饰的方法被称为抽象方法;

抽象方法不能有方法体,子类必须重写抽象类中所有的抽象方法;

三、抽象类中不一定包含抽象方法,但包含抽象方法的类一定是抽象类;

三、方法重载的方法重写是什么?有什么区别?

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同

重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法

四、使用继承有什么特点?继承的优点是什么?

子类是一种特殊的类型,而不只是父类的一个角色

子类的实例不需要变成另一个类的对象

子类扩展,而不是覆盖或者使父类的功能失效

优点

新的实现很容易,因为大部分是继承而来的

很容易修改和扩展已有的实现

缺点

打破了封装,因为基类向子类暴露了实现细节

白盒重用,因为基类的内部细节通常对子类是可见的

当父类的实现改变时可能要相应的对子类做出改变

不能在运行时改变由父类继承来的实现

五、多态的特点?有什么优点?

多态的特点:

一、要有继承;
二、要有重写;
三、父类引用指向子类对象

多态的优点:
1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。如图8.3 所示。图中超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,完善或者覆盖这两个接口方法。
4.灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

六、多态的实现方式是什么?

使用父类作为方法形参实现多态

使用父类作为方法返回值实现多态

七、如何编写接口?

编写接口:   public interface UsbInterface {

/**

* USB接口提供服务。

*/

void service();

}

实现接口:   public class UDisk implements UsbInterface {

public void service() {

System.out.println("连接USB口,开始传输数据。");

}

}

使用接口:    UsbInterface uDisk = new UDisk();

uDisk.service();

八、接口的作用是什么?

接口是一种协议。例如两个开发者,开发时间完全不一致,那么需要两个人的配合开发,则需要一个人讲接口写好,定义好其中所有的变量命名规范、函数定义规范。具体实现类的开发人员则只需要按照接口实现相应功能即可。

接口更像是一种定义的规范

九、接口和抽象类有什么异同?

相同点:

1.都不能被实例化

2.接口的实现类或者抽象的子类都必须实现类接口或者继承了抽象才可以被实例化

不同点

1.接口只有定义,方法不能再接口中实现,实现接口的类要实现接口中的所有方法;抽象类可以有定义与实现方法可以在抽象类中实现

2.接口要实现,抽象要继承,一个类可以实现多个接口,但只能继承一个抽象类

3.接口强调设计理念“has-a”的关系,抽象类强调“is-a”关系

4.接口中定义变量默认为public、static、final且要设定初始值方法必须是publicstatic只能是这两个抽象类可以有自己的成员变量也可以有非抽象的成员方法,成员默认值为:default

5.接口被运用于比较常用的功能,抽象更倾向于充当公共类的角色

6.接口是定义规范的,抽象是对公共部分的抽取

十、什么是异常,你是如何理解的?

一、运行时异常:我们可以不处理,当出现这种的异常时,总是由虚拟机接管;

二、检查时异常:我们经常遇到的IO异常及SQL异常就属于检查式异常;java编译器要求我们必须对出现的这些异常进行catch所以面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。

十一、如何处理异常,异常的关键字是什么?

Try:执行可能产生异常的代码

Catch:捕获异常;

Finally:无论是否发生异常,代码总能执行;

声明异常 throws:声明方法可能要抛出的各种异常;

抛出异常 throw:手动抛出异常;

十二、常见的异常种类有哪些?

Exception 异常层次结构的根类;

ArithmeticException 算术错误情形,如以零作除数;

ArrayIndexOutOfBoundsException 数组下标越界

NullPointerException 尝试访问 null 对象成员

ClassNotFoundException 不能加载所需的类

IllegalArgumentException 方法接收到非法参数

ClassCastException 对象强制类型转换出错

NumberFormatException 数字格式转换异常,如把"abc"转换成数字

十三、方法重载的方法重写是什么?有什么区别?

重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一

样,但是参数的类型或个数不同,此时B重载了A。

重写:一个类M继承另一个类N,N中有一个方法A,这时你在M写了一个方法B,方法B的名字、返回值以及参数都和A一样,此时B重写了A。

方法重写与方法重载的相同点

(1)方法的名称相同

(2)都可以用于抽象方法和非抽象方法之间。

方法重写与方法重载的不同点:

(1)方法重写要求参数签名必须相同,而方法的重载要求参数签名必须不同。

(2)方法重写要求返回类型必须相同,而方法重载对此没有限制。

(3)方法重写只能用于子类重写父类的方法,而方法的重载用于同一个类的所有方法(包括从父类中继承的方法)

(4)方法重写对方法的访问权限和抛出的异常有特殊的要求,而方法的重载对此没有任何限制

(5)父类的一个方法只能被子类重写一次,而一个方法在所在的类中可以被多次重载。

十四、多态的特点?有什么优点?

特点

1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。如图8.3 所示。图中超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,完善或者覆盖这两个接口方法。
4.灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

优点

减少类中代码量

提高代码的可扩展性和可维护性

十五、多态的实现方式是什么?

使用父类作为方法形参实现多态

使用父类作为方法返回值实现多态

十六、如何编写接口?

public interface MyInterface {

public void foo();

//其他方法

}

十七、接口的作用是什么?

1.可以被多继承

2.设计和实现完全分离

3.更自然的使用多态

4.更容易搭建程序框架

5.更容易更换实现

十八、接口和抽象类有什么异同?

相同点:

1.都不能被实例化

2.接口的实现类或者抽象的子类都必须实现类接口或者继承了抽象才可以被实例化

不同点:

1.接口只有定义,方法不能再接口中实现,实现接口的类要实现接口中的所有方法;抽象类可以有定义与实现方法可以在抽象类中实现

2.接口要实现,抽象要继承,一个类可以实现多个接口,但只能继承一个抽象类

3.接口强调设计理念“has-a”的关系,抽象类强调“is-a”关系

4.接口中定义变量默认为public、static、final且要设定初始值方法必须是publicstatic只能是这两个抽象类可以有自己的成员变量也可以有非抽象的成员方法,成员默认值为:default

5.接口被运用于比较常用的功能,抽象更倾向于充当公共类的角色

6.接口是定义规范的,抽象是对公共部分的抽取

十九、如何使用log4j记录日志?

1. 定义配置文件

2. 配置日志信息输出目的地APPender

3. 配置日志信息格式

二十、常见的集合有哪些?他们有什么常用方法?

ArraysList

Boolean add (Object o)

Void add (int index, Object o)

Int size()

Object get(int index)

Boolean contains(Object o)

Boolean remove(Object o)

Object remove(int index)

LinkedList

void addFirst(Object o)

void addLast(Object o)

Object getFirst()

Object getLast()

Object removeFirst()

Object removeLast()

二十一、list, set , map各有什么异同?

list:储存一组不唯一,有序的对象

set:储存一组唯一,无序的对象

map:储存一组成对的键-值对象,key不要求有序,不允许重复,value不要求有序,但允许重复

二十二、和数组类型采用相同结构的是哪个集合?

ArraysList

二十三、什么是foreach循环?

foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组

二十四、线程与进程的区别?

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。

线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。

区别:

地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。

资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。

执行过程:每个独立的进程程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

线程是处理器调度的基本单位,但是进程不是。

两者均可并发执行。

二十五、实现线程有哪几种方法?

继承Tread类

Runnable接口

实现Callable接口通过FutureTask包装来创建Tread线程

使用ExecutorService,Callable,Future实现有返回结果的多线程

二十六、线程的生命周期是什么?

创建状态   就绪状态   阻塞状态  运行状态   死亡状态

二十七、简单解释-一下线程休眠,线程强制执行,线程礼让.以及他们的实现方法

线性休眠:进入不可运行状态

sleep()方法

线性强制执行:暂停运行

join()方法

线程礼让:允许其他先执行

yeild()方法

二十八、什么情况下需要线程同步?

两个或多个线程需要访问同一资源时

二十九、什么是流?流的常见种类有哪些?使用流的过程中需要注意哪些问题?

流是指一连串流动的字符,是以先进先出方式发送信息的通道

字节流:

输出流:FileInputStream

输入流:FileOutputStream

字符流:

输入流:FileWriter

输出流:FileReader

缓冲流:

输入流:BufferedWriter

输出流:BufferedReader

注意事项:

创建了记得关闭流

注意线程安全的问题

先关闭输入流再关闭输出流

线程同步

三十、脏读,漏读,不可重复读

脏读:

所谓脏读是指一个事务中访问到了另外一个事务未提交的数据

漏读:

不可重复读:指在一个事务内根据同一个条件对行记录进行多次查询,但是搜出来的结果却不一致

幻读:指同一个事务内多次查询返回的结果集不一样

三十一、HashMap,Hashmap和hashtable?

HashMap和Hashtable的区别:

Hashtable是线程安全,而HashMap则非线程安全

HashMap可以使用null作为key,而Hashtable则不允许null作为key

HashMap是对Map接口的实现,HashTable实现了Map接口和Dictionary抽象类

ashMap的初始容量为16,Hashtable初始容量为11

Hashtable计算hash是直接使用key的,hashcode对table数组的长度直接进行取模

HashSet不是key value结构,仅仅是存储不重复的元素,相当于简化版的HashMap,只是包含HashMap中的key而已

java 面向对象面试题,问答题,构造方法,抽象类,继承,多态,接口,异常总结;的更多相关文章

  1. php面向对象 封装继承多态 接口、重载、抽象类、最终类总结

    1.面向对象 封装继承多态  接口.重载.抽象类.最终类 面向对象 封装继承多态  首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一 ...

  2. 黑马程序猿——JAVA面向对象的特性:封装,继承,多态

                                           - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  ...

  3. Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)

    Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 ​ 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...

  4. Java面向对象理解_代码块_继承_多态_抽象_接口

    面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生 ...

  5. java面向对象(三)之抽象类,接口,向上转型

    java类 java类分为普通类和抽象类,接口,上一节我大概讲了java类的一般格式,今天将抽象类和接口.同时讲一下它们是怎样存储的. 最重要的是理解为什么要有抽象和接口,这样学下来你猜不会迷茫,才能 ...

  6. Java 面向对象面试题

    1.Java面向对象的三种特性 封装:封装是把数据和操作数据的方法封装起来,对数据的访问只能通过已定义的接口进行访问. Java的四种访问控制符: - 默认的(default):不使用任何修饰符,在同 ...

  7. Java面向对象笔记 • 【第3章 继承与多态】

    全部章节   >>>> 本章目录 3.1 包 3.1.1 自定义包 3.1.2 包的导入 3.1.3 包的访问权限 3.1.4 实践练习 3.2 继承 3.2.1 继承概述 3 ...

  8. Java基础系列 - 抽象类继承和接口实现

    package com.inter; /** * 继承和接口的关系,单继承,多接口 * java不支持多继承,但可通过接口实现多重继承 */ public class test2 { public s ...

  9. java 面向对象(二十四):interface:接口

    interface:接口1.使用说明: 1.接口使用interface来定义 * 2.Java中,接口和类是并列的两个结构 * 3.如何定义接口:定义接口中的成员 * * 3.1 JDK7及以前:只能 ...

  10. 学习博客之Java继承多态接口

    这一篇博客主要是对软工前一阶段学习的总结,主要是对Java的学习总结,包括三部分:Java的继承.多态和接口 Java的继承 继承是面向对象的三大特性之一,能够实现软件的复用. Java子类继承父类的 ...

随机推荐

  1. 9、flink的状态与容错

    1.理解State(状态) 1.1.State 对象的状态 Flink中的状态:一般指一个具体的task/operator某时刻在内存中的状态(例如某属性的值) 注意:State和Checkpoint ...

  2. sqlliab7-8

    less-7 https://www.jianshu.com/p/20d1282e6e1d ?id=0')) union select 1,'2','<?php @eval($_POST[&qu ...

  3. 关于小程序中textarea内的字体浮动问题

    因为map.canvas.video.textarea 是由客户端创建的原生组件,原生组件的层级是最高的,所以页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上. 原生组件暂时还无 ...

  4. MarkDown排版测试

    1.标题设置 标题(大标题) 标题(小标题) 标题(一级标题) 标题( 二级标题) 标题(三级标题) 标题(四级标题) 备注:大标题与一级标题一样,小标题与二级标题一样,"#"前无 ...

  5. CSRF与平行越权的区别

    .CSRF攻击者不需要登录,越权攻击者也得登录,只是没有做针对性的控制: .CSRF攻击者自己不访问受攻击页面,诱导受害者在登录被攻击系统后点击攻击页面:越权攻击者可以直接访问受攻击页面: .CSRF ...

  6. java内存模型(JMM)和happens-before

    目录 重排序 Happens-Before 安全发布 初始化安全性 java内存模型(JMM)和happens-before 我们知道java程序是运行在JVM中的,而JVM就是构建在内存上的虚拟机, ...

  7. zabbix自动监控钉钉报警

    钉钉报警 一:设置钉钉机器人  二:zabbix服务器server端配置 1.修改zabbix_server.conf文件 [root@server ~]# vim /usr/local/zabbix ...

  8. 【Linux常见命令】diff命令

    diff - compare files line by line diff命令用于比较文件的差异. diff以逐行的方式,比较文本文件的异同处. 如果指定要比较目录,则diff会比较目录中相同文件名 ...

  9. 15.Why lambda forms in python does not have statements?

    Why lambda forms in python does not have statements? A lambda form in python does not have statement ...

  10. js中的this指针的用法

    首先看下面代码: function funcA() { this.name = "hello"; console.log(this.name); this.show = funct ...