一.数组的定义
用来存储固定大小的同类型元素
二.构造器
用于创建对象并初始化对象属性的方法,叫“构造方法”,也叫“构造器”;构造器在类中定义
三.冒泡算法
冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量。
四.队列和栈的区别
(1)操作的名称不同。队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。
(2)可操作的方式不同。队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。
(3)操作的方法不同。队列是先进先出(FIFO),即队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾(不能从中间插入),每次离开的成员总是队列头上(不允许中途离队)。而栈为后进先出(LIFO),即每次删除(出栈)的总是当前栈中最新的元素,即最后插入(进栈)的元素,而最先插入的被放在栈的底部,要到最后才能删除。
五.final,finally,finalize的区别
final是关键字,用于修饰;finally是异常处理的一种补充机制;finalize是object中定义的方法,用于垃圾回收,一般有GC调用
六.sleep跟wait的区别
sleep是让线程休眠,到时间后会继续执行,wait是等待,需要唤醒再继续执行;
sleep可以在任何地方使用,而wait只能在同步方法或者同步块中使用
sleep需要捕获或者抛出异常,而wait不需要
七.Java中类的修饰符具体有哪些?简要描述他们之间的区别
public,abstract,final
public:完全访问
abstract:抽象类修饰符
final:不开继承类
八.描述一下Java泛型中类型擦除的概念
正确理解泛型概念的首要前提是理解类型擦除(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节代码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会被编译器在编译的时候去掉。这个过程就称为类型擦除。如在代码中定义的List<Object>和List<String>等类型,在编译之后都会变成List。JVM看到的只是List,而由泛型附加的类型信息对JVM来说是不可见的。Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法避免在运行时刻出现类型转换异常的情况。类型擦除也是Java的泛型实现方式与C++模板机制实现方式之间的重要区别。
九.Redis中常用的数据结构
String——字符串
Hash——字典
List——列表
Set——集合
Sorted Set——有序集合
十.MySQL中连表查询内连接和外连接的区别
外连接分为左右两种
1.内连接,显示两个表中有联系的所有数据;
2.左链接,以左表为参照,显示所有数据;
3.右链接,以右表为参照显示数据;