2015阿里java研发实习电话面试回忆

在3月10号在阿里校招网上完成了简历的投递,3月13号晚上快7点的时候接到了电话面试。

他问了一些问题,有些我答的不太确定,所以发上来,希望和大家讨论讨论。


首先问了我上学期系统监控项目的架构和实现。我简单描述了以后,他问用户怎么将数据传到数据库中,当时我回答的是发送url,用puch方法到服务器,然后在和数据库连接,插入到数据库。接着他问多个用户发送请求,服务器端是多线程还是单线程。当然是多线程吧,如果是单线程,那不是同时只有1个用户可访问。于是他又问如果用户想要保存这个线程返回的数据应该用什么方法。我说如果要实现保存,需要重写run()方法,使它有保存功能(这个是完全蒙的,这个答案肯定不对)。接着他就开始问我java多线程方面的问题:

1、java中怎么实现多线程。答:继承thread类或实现runable接口,然后重写里面的run()方法。

2、Synchronized关键字的作用。答:可以用在方法和属性上,是之成为同步的,给其加锁,保证线程安全。

3、进程和线程的区别。答:一个进程中可以有许多线程,一个进程中的线程共用进程的资源。他又接着问:资源是指什么?答:内存,cpu(不知道对不对,一下子就说了这两个)

接着就开始随便问了,什么都涉及到了。

4、sql语句,如何查询两个表,关键字是什么。答:join。(这个问题没答上来,因为很多项目中都不用自己写sql语句,是有jar包封装好的,都是调用其中方法,所以还是要从基础做起啊)

5、说说java设计模式。答:工程模式,巴拉巴拉,单例模式,巴拉巴拉。当我要说代理模式时,他打断我了,说可以了。

6、使用过Linux吗?答:用过。问:更改用户权限的命令行是什么?  我当时就蒙了,虽说用Linux,但是这种命令都是手册上查了用的,根本没有记住,就老老老实实讲了不知道。但是我又补充,知道top命令和free命令,用来显示进程状态和查看内存。这两个是调试java程序经常用的。(我希望说两个,能挽回点)

7、说说UTF-8和GBK编码的区别;答:不清楚具体的区别,我说我有使用过,当网页上出现中文乱码的时候,将编码模式改成UTF-8就能解决。具体的区别不知道。(真的不知道,当时就只管用了。乱码问题是挺头疼的,等会去搞搞清楚)

8、系统32位和64位的区别。答:(这个问题太傻了,我居然还答错了)当时就说64位支持更大的内存,32位系统只支持3g的内存。然后他追问,3g多少。然后我就秀逗了,说了3G少一点(明明是3g多一点)。我还补充是因为2的32方是3g少一点。然后他就问我2的10次方是多少。我又糊涂了,说了2048。(我以后永远都记得1024了)

9、问:堆和栈的区别;答:在java中堆是主要用来储存对象的实例而栈储存局部变量。他又追问,堆是存储什么?(他应该是没听清楚吧)然后我又重复说堆用来存储对象的实例。(现在知道了,应该是没有对象的实例这个说法吧,就是对象或者实例 = = 其实我本来的意思就是这个)

10、虚拟机是什么。答:(当时以为他问的是JVM)就回答说是java程序执行的地方。java程序只要编译一次,就可以在有虚拟机的地方运行,所谓的一次编译多处运行。

他说不是问这个,是什么是虚拟机。我说是模拟操作系统的环境。(这个应该是答错了,查到是模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整的计算机系统。)

11、HashMap和HashTable的区别。答:hashmap是map接口的实现类,而hashtable不是。hashmap不是线程安全的,而hashtable是线程安全的。他追问什么是线程安全,我说共享资源可以被两个线程同时获取则是线程不安全的,因为当一个线程对其修改,同时另一个线程获取到的还是没有修改前的值,这就是线程不安全,安全的是同时只有一个线程能获取,另一个线程要等待其释放后才才能获取它。他又问,既然是不安全的,为什么还要用hashmap?答:hashmap支持空键值,效率比较高(我也不知道对不对)

12、forward的作用;答:forward是服务器请求资源,服务器直接访问URL。(这个答的不好,我后来就去网上查了一下)

13、知道索引吗?答:索引用在数据库中需要经常被查找的字段上,比如主键。它一般通过B数实现,优点是可以快速查找,避免每次查找都遍历全表。代价是增加了数据库的储存空间和在插入删除数据是需要更多的时间,因为索引也要改变。他追问:字段中重复多的数据需要索引还是不重复的数据。答:不重复的。(很好理解,如果数据重复的多,极端情况下,字段中只有1个重复数据,那么索引就没用了)

14、知道缓存吗?答:知道。缓存可以快速读取数据,可以用在web读取上,比如将静态页面缓存,下次有访问的时候,就直接从缓存中读取页面,而不用加载。还要经常要从数据库读取的数据,也可以放在缓存中,这样每次请求就不用从数据中读取,可以直接从缓存中读,降低数据库的压力。他问实现方式是什么,我说是用key-value方式,将key和value数据对应,当请求的key与缓存中的key命中时,就直接从缓存中读取。。。我还想说,结果他打断我说时间差不多了,也20分钟了,于是就挂了电话。 也没有给我问问题的机会。



他这么匆忙挂电话我就觉得结果不会太好了。他问的比较基础,我也基本上也都答出来了。但是之后阿里校招网上简历状态就变成了待回绝,于是这次面试就挂了。

写出了也是为了总结一下,然后想和大家看看,我哪里几个问题其实答错了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值