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

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

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
版权声明:本文为博主原创文章,未经博主允许不得转载。

java初中级工程师面试笔试题目及心得(全部实战经验)(答案)

21.在servlet中怎么获取页面传过来的 name=”a” 或者 id=”b” 的输入框的值?name: String name = arg0.getParameter("req...

java初中级工程师面试笔试题目及心得(全部实战经验)

本人15年参加工作(实习),16年毕业,满打满算一年半开发,其中一年是做的java,还有半年是C# .net。 17年3月初离职,想找一份java的工作,由于之前忘的太多,所以边面试边复习,也总算找到...

java初中级工程师面试笔试题目及心得(全部实战经验)(答案)

JAVA SE部分:1.string类的常用方法有哪些? 2.String,StringBuffer,StringBuilder的区别。 String 字符串常量 线程安全 操作少量数据 ...

最近面试笔试的经验

最近在找实习,java研发工程师类的,偏后端,上周四开始的七个工作日内面了九个公司(包括笔试、面试等),拿到五个offer,也不想再找了,周一还有复试也不去了,明天就入职  ,暂时回忆一些最近遇到的问...

程序员面试笔试宝典学习记录(三)(数据库相关知识)

程序员面试笔试宝典学习记录(三)(数据库相关知识)     关系数据库系统与文件数据库系统的区别如下:     (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构...
  • liuuze5
  • liuuze5
  • 2016年08月14日 18:54
  • 219

面试笔试---数据库重点知识

(网上搜集) 1.数据库事务   事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从...

【面试笔试复习笔记】——数据库

*注:如无特殊说明则例子中的SQL语句均操作于下表 student(sno, sname, ssex, sbirthday, class) teacher(tno, tname, tsex, tb...

面试笔试---数据库知识点

原文链接 第一节       一、相关概念        1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。        2. Database:数据库,是长期储存在计算...

面试笔试常考的mysql 数据库操作group by .

IT 面试中,数据库的相关问题基本上属于必考问题,而其中关于sql语句也是经常考察的一个重要知识点。 下面介绍下sql语句中一个比较重要的操作group by,他的重要行一方面体现在他的理解...

数据库面试笔试题

数据库基础(面试常见题) 一、数据库基础 1. 数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式 2. SQL语言包括数据定义、数据操纵(Data Manipulation),数据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面试笔试经验-java重载、重写及数据库索引
举报原因:
原因补充:

(最多只允许输入30个字)