2019-06-24 面试题

1.算法题: 一个圆环上有10(0~9)个点,判断走了n步后能不能重新回到原点0。

2.java基础题 override和overload的区别。如果方法名参数类型都一样,会有什么影响。

override 子类重写父类的方法,当子类调用这个方法时,无论子类是否有强转为父类,子类自调用自己重写的方法。
overload 一个类中的返回类型和参数名必须相同,不同的只有参数类型以及参数个数。如果方法名以及参数都一样,只有返回类型不一样,会导致编译不通过。

3.java基础 overwrite父类方法,父类方法有抛异常,子类重写的方法需要抛异常吗?

当父类方法抛出异常时,子类去Override这个方法,需要抛出父类异常的子类,或者是不抛出异常。
假设父类方法抛出两个异常,那么子类重写这个方法,只能抛出这两个异常,其中一个,或者不抛出异常。

子类重写方法的返回值必须比父类方法的返回值小(返回类型是父类的子集 例如Object和String),否则报错。
因为假设父类方法抛出一个异常,但是子类方法重写的方法抛出的异常大于父类。我们一般接口编程都是使
用父类对象来接收子类对象,抛出的异常也是父类的异常。此时如果子类的重写方法抛出的异常是父类方法
没有的,那么就会导致无法捕捉到。

4.数据库题:索引的作用,索引是如何加快查询速度的,数据库如何建立索引,一个索引里面怎么才能有两个字段

首先建立索引需要额外的空间,大约占数据量5%左右,索引字段都是排好序的,索引的实现一般采用b树及其变种b+树。
由于索引是排好序的,所以采用二分查找法,只需log2N,极大的提高了数据的查询效率。由于二分查找的原因,索引的重复性要尽可能的低,如性别只有男或者女是不建议用来建立索引的。而且对于每次的update/insert/delete操作都需要去更新索引。
数据库建表时,一般会默认把主键设置为索引,而且是聚集索引,但是外键不会默认建立索引。对于手工建立的索引一般是非聚集索引,创建聚集索引的语法如下:create clustered index 索引名 on 表名(字段名)。

对于聚集索引,一般是存索引值以及物理地址,所以当找到聚集索引后,直接访问物理地址可以拿到所有的数据。对于非聚集索引,找到后可以拿到主键,然后拿着主键通过聚集索引可以查出所有数据。

对哪些字段添加索引
1、表的主键、外键必须有索引; 
2、数据量超过300的表应该有索引; 
3、经常与其他表进行连接的表,在连接字段上应该建立索引; 
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 
5、索引应该建在选择性高的字段上; 
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: 
A、正确选择复合索引中的主列字段,一般是选择性较好的字段; 
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引; 
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; 
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; 
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引; 
8、频繁进行数据操作的表,不要建立太多的索引; 
9、删除无用的索引,避免对执行计划造成负面影响;

mysql一般是左联查询,where语句一般先从最左边条件开始查询,所以应把过滤条件最大的写在最左边。oracle应写在最右边。

5.数据库题:对于有大的数据量的查询,如何做性能优化

1.查询时select 尽量不要用*,只查出关键字段,select的字段尽量不要做运算。
2.合理建立索引,在 where 及 order by 涉及的列上建立索引。注意索引失效的情形
(1)where 语句索引字段查询一般不要用is null 和is not null、<>、 in和not in、like的前面用‘%’,索引字段进行运算。
(2)如果条件中有索引,用了or连接,也会失效
3.尽可能用UNION ALL取代UNION
4.分区、分表以及分库
5.大量数据插入的时候,考虑先删除索引,然后重建索引。这样做的缺点是业务不能同时进行
6. 避免在查询时使用表连接
7.在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。
8.很多时候用 exists 代替 in 是一个好的选择:

6.http协议:http协议是如何发送请求的。

 当我们在浏览器地址栏输入www.baidu.com后,就会发起一个http请求,
(1)应用层的DNS服务会把域名转换为ip地址。
(2)传输层决定用哪种传输方式,是tcp还是udp。
(3)网络层报文首部会加上ip,决定这条请求该走哪条线路,ip表示网卡在网络中的通讯地址。
(4)数据链路层加上mac头,决定最终发送的网卡mac地址。
(5)物理层将数据转换为比特流。
(6)服务器再按照从底层到顶层一层层封装回去。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容