网易+阿里面经

网易

一面

1.项目
2.学java几年了,平时学java怎么学的啊,看过哪些书?
3.http状态码3xx 4xx 5xx分别是啥
答:
重定向,客户端错误,服务器端错误
2XX类状态码信息表示:服务器成功的接收了客户端请求
3XX类状态码信息表示:客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同页面,或者通过代理服务器重复该请求
4XX类状态码信息表示:发生错误,客户端似乎有问题。例如:客户端请求不存在的页面,客户端未提供有效的身份验证信息
5XX类状态码信息表示:服务器遇到错误而不能完成该请求

二面

1.hashmap的原理(看源码)

2.哪些方法实现线程安全

synchronized,reentrantlock,volatile然后重点说了下volatile在某些情况下可以实现线程安全,然后就把面试官注意力往volatile上引,因为volatile这个专门看了一下,果然,面试官马上问了volatile。

3、volatile是实现了什么功能呢?
然后就把自己看得乱扯了一通,比如volatile修饰汇编时会在修饰字段前加LOCK字段啊,内存屏障啥啥啥的扯了一通,就是想让面试官觉得对某些方面了解还是蛮深的。

4、如果想实现一个线程安全的队列,可以怎么实现?
JUC包里的ArrayBlockingQueue 还有LinkedBlockingQueue啥的又结合源码说了一通。

5、说说http报文的header里面有什么?

GET http://download.google.com/somedata.exe
Host: download.google.com
Accept:/
Pragma: no-cache
Cache-Control: no-cache
Referer: http://download.google.com/
User-Agent:Mozilla/4.04en

上例第一行表示HTTP客户端(可能是浏览器、下载程序)通过GET方法获得指定URL下的文件

Host头域
Host头域指定请求资源的Intenet主机和端口号

Range头域
Range头域可以请求实体的一个或者多个子范围。例如,
表示头500个字节:bytes=0-499
表示第二个500字节:bytes=500-999
表示最后500个字节:bytes=-500
表示500字节以后的范围:bytes=500-
第一个和最后一个字节:bytes=0-0,-1
同时指定几个范围:bytes=500-600,601-999

6、给了一个类加载时先后顺序的问题,给了段代码,让你写出输出结果,就静态代码段啊构造函数之类的加载顺序。

7、JVM的内存分区

8、数据库的事务管理级别,默认什么级别,会出现哪些问题

9、最后让写个SQL语句。

  1. 快排,口述了下快排的实现,时间复杂度,会不会退化,然后问快排的优化,怎么选基准,我就说随机化,防止退化

11.n个数里取两个和为s的数,剑指offer上的题

猜你喜欢

转载自blog.csdn.net/qq_22174059/article/details/52863759