【面经】软件开发实习生——北京大学信息技术高等研究院

引用部分均是之后学习得出的答案,仅供参考

1.抽象类和接口

更新,Java中接口和抽象类的区别和共同点

这个我都不清楚,居然也敢写熟悉Java

含有abstract修饰符的class即为抽象类,abstract
类不能创建实例对象。含有abstract方法的类必须定义为abstract class,abstract
class类中的方法不必是抽象的。abstract
class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public
abstract类型,接口中的成员变量类型默认为public static final。 下面比较一下两者的语法区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。

2.HashMap和HashSet

HashSet怎样做到不重复:hashset没了解

HashMap的key是不能重复的,而这里HashSet的元素又是作为了map的key,当然也不能重复了。
若要将对象存放到HashSet中并保证对象不重复,应根据实际情况将对象的hashCode方法和equals方法进行重写

HashSet使用数组链表的形式存储。列表称为桶。根据散列值对桶总数求余,得到桶的序号,如果桶没满就加入。如果桶满了就会从链表变成平衡二叉树。

3.多线程

什么时候用多线程:不知道没用过

一、高并发
二、线程后台处理大任务
三、大任务
大任务处理起来比较耗时,这时候可以起到多个线程并行加快处理(例如:分片上传)。

4.spring的ioc和aop原理

5.mybatis相关

优点:
动态sql:没用过

6.介绍项目

7.redis相关

redis为什么快:我回答了它的数据结构和内存

首先,采用了多路复用io阻塞机制
然后,数据结构简单,操作节省时间
最后,运行在内存中,自然速度快

8.git相关

分支:
和 svn区别:“我没用过svn”
git保存的是快照还是不同的地方:快照
如果有很多分支都是文件快照占的地方很大吗:不知道
回退:没用过
add,commit,push的意义:就按日常使用的理解

9.mysql

很多条数据怎么显示:我回答了limit。但被指出limit在数据大到一定程度就不行了,不知道

10.笔试

Q:“你抗拒笔试吗 你对笔试有信心吗”
A:“没有信心”
Q:“如果有信心的话就出一个题写写看 ”
我怕了怕了,最后没写

11.设计模式

没了解过

12.数组和链表的区别

这个很简单

13.restful api

可能是因为我在简历里写了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值