美团一面

1、Java的String类型可以被继承吗?

String被final关键字继承,不能被继承

2、String、StringBuilder、StringBuffer的区别?

String:不可变,写方法返回的是新对象

StringBuilder:可变,写方法返回的是当前对象;线程不安全,适用于单线程修改字符串

StringBuffer:可变,写方法返回的是当前对象;线程安全,适用于多线程修改字符串

3、ArrayList、LinkedList的区别?

ArrayList基于动态数组实现,适合查询,查询复杂度为o(1);

LinkedList基于链表实现,适合插入、删除,查询复杂度为o(n);

4、讲一下HashMap?

底层是数组 + 链表;

push过程:先将key通过哈希算法算出在数组中的位置,如果位置为空,则直接加入,否者判断值是否相等,相等覆盖,不相等则遍历后面的链表,不存在则添加。

5、HashMap中链表为什么要转为红黑树?

红黑树查找快

6、sleep和wait的区别

sleep属于thread类,不会释放锁,可以在任意位置调用,超时自动恢复

wait属于object类,会释放锁,只能在同步块内调用,需要notify/notifyall唤唤

7、Synchonize和ReentrantLock的区别

Synchronized可以修饰方法、代码块,ReentrantLock只能用于修饰代码块;

Synchronized会自动释放锁,ReentrantLock需要手动释放;

Synchronized是非公平锁,ReentrantLock可以是公平锁,也可以是非公平锁;

Synchronized可以响应中断,ReentrantLock不能相应中断;

8、进程之间如何通信

管道、消息队列、共享内存、信号量

9、get请求和post请求的区别

get一般用于从服务器获取指定的资源,安全且幂等,url的长度有限制;

post一般用于新增数据,不安全、不幂等,url的长度没有限制。

10、url请求的全过程

客户端输入url,DNS解析,建立tcp连接,发送http请求,服务器接受并处理请求,服务器返回http响应,客户端接受请求并处理,页面渲染。

全部评论

相关推荐

fe233:感觉你可以简历上只写北京大学
点赞 评论 收藏
分享
评论
2
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务