面试笔试经验-java重载、重写及数据库索引

在毕业季的各大公司校招笔试面试过程中,发现自己对于之前掌握的一些概念或者技术实现理解不够深刻,所以对于每个校招公司笔试面试后总结出来的一些问题重新进行了整理和归纳,加深自己的理解。

1.Java中重载(Overloading)与重写(Overriding)
1.1重载(Overloading)
简单来说重载就是在一个类中对一个方法的不同处理方法,在同一个类中方法名相同,参数列表不同。重载只和类名、参数列表有关。和方法修饰符、返回值类型没有任何关系。
如:

public class class_name{
    public void method_name(){
        System.out.println("I am the body of method");
    }
    public void method_name(String str){
        System.out.println("I am the body of method"+"str");
    }
}

1.2重写(Overriding)
重写通常发生在子类和父类之间,子类对继承的父类同一个方法的覆盖。子类在对父类进行重写时,重写的方法返回值类型、参数列表要和父类的方法返回值类型、参数列表一致。
如:

public class father{
    public void method_name(String str){
        System.out.println("I am the father");
    }
}
public class son extends father{
    public void method_name(String str){
        System.out.println("I am the son");
    }
}
注意:重写只能实现在具有继承关系的类中,但要注意父类方法的权限修饰符,如只能重写父类非私有方法,即private的父类方法无法重写。

1.3小结
1.3.1对于方法的重载和重写都是java类多态性的一种体现,不同的是重载是对一个类内同一个方法的不同处理。重写则是具有继承关系类之间的方法的重写。
1.3.2重载规则
1.相同方法名的方法必须具有不同的参数列表
2.可以设定不同的方法返回值类型
3.可以有不同的访问权限修饰符(public、private等)
1.3.3重写规则
1.子类对父类方法的重写时,方法的参数列表必须相同(否则是方法的重载而不是重写)
2.子类对父类方法的重写时,方法的返回值类型必须和父类方法返回值类型一致。(否则是方法的重载而不是重写)
3.子类方法的访问修饰符的限制一定要大于父类重写方法的访问修饰符(public>protected>default>private)

2.数据库索引
索引是由数据库中一列或者多列组合而成,索引建立的目的就是提高对表中数据的查询速度。
2.1索引的优点与缺点
2.1.1优点
正如索引建立的目的一样,优点就是可以提高数据库检索数据的速度,节省时间。
2.1.2缺点
创建和维护索引需要消耗时间,时间随数据量的增加而增加。同时索引需要占用物理空间,增加、删除和修改数据时,要动态维护索引,造成数据操作速度减慢。 所以对于经常进行数据增加、删除、修改操作的数据库不适合建立索引。
2.2索引的类型
2.2.1普通索引
对表中任意数据类型都可建立,建立后查询时可根据索引进行查询。
2.2.2唯一性索引
通过UNIQUE参数设置唯一性索引,该字段的值必须是唯一的
2.2.3全文索引
使用FULLTEXT参数设置全文索引,全文索引只能在CHAR、VARCHAR和TEXT类型的字段上。在查询数据量较大的字符串类型字段时,全文索引可以提高查询速度。
2.2.4单列索引
在表中对单个字段创建索引,可以为普通索引也可以为唯一性索引。
2.2.5多列索引
在表的多个字段创建索引,但是只有查询条件中使用了索引字段中第一个字段时,索引才会被使用。
2.2.6空间索引
使用SPATIAL参数对空间数据建立索引。
2.3创建索引的原则
2.3.1选择唯一性索引
对唯一性字段建立索引,字段的唯一性可以更快的进行查询。
2.3.2为经常排序、分组和联合操作的字段建立索引
对经常需要ORDER BY、GROUP BY、DISTINCT、UNION等操作的字段设立索引。
2.3.3为常用作查询条件的字段建立索引
对于经常用作查询条件的字段建立索引,对该字段的索引会提高整个表的查询速度。
2.3.4限制索引数目
索引并非越多越好,索引对于字段的操作及占用存储空间有很大影响。
2.3.5尽量使用数据量少的索引
如果索引的字段值很长,那么查询速度会受到影响。
2.3.6尽量使用前缀来索引
如果索引的字段值很长,可以通过对字段的前缀设立索引来提高对字段查询的速度。
2.3.7删除不再使用和很少使用的索引
当数据表中数据大量更新时,原有的索引可能不再需要,需尽快更新索引。
2.4创建索引
2.4.1在创建表时创建索引

create table table_name(
[UNIQUE|FULLTEXT|SPATIAL] INDEX index_name(column_name)
                        );

2.4.2在已有的表上建立索引

create [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON        table_name(column_name)

2.4.3用ALTER TABLE来创建索引

alter table table_name ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name(column_name)

2.5删除索引

drop index index_name ON table_name
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenqi15/article/details/49839783
文章标签: 面试 索引 java
个人分类: 笔试面试总结
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭