【面经】2016年【阿里实习内推电面】

来源:互联网 发布:淘宝助理发布宝贝教程 编辑:程序博客网 时间:2024/06/06 00:24

Java基础:

1、对于Java的理解、Java的数据结构
2、TreeMap的结构。TreeMap与HashMap的不同之处
红黑树
3、HashMap的实现原理
常见的解决hash冲突的方法:
1、开放地址法;2、线性探测法;3、链地址法;4、二次探测法;5、伪随机探测法;6、再散列(双重散列,多重散列);7、建立一个公共溢出区
4、怎么解决Hash碰撞(重写hashcode函数,多次hash,多次不同算法hash)

常见的散列函数:直接定址法,数字分析法,平均取中法,取余法,折叠法,随机法

5、如果发生内存溢出怎么办
-Xmx:Java Heap最大值,默认值为物理内存的1/4,最佳设置应该视物理内存大小及计算机其他内存开销而定;
-Xms:Java Heap初始大小。
-Xmn:Java Heap young区大小,不熟悉最好保留默认值
-Xss:每个线程的Stack大小,不熟悉最好保留默认值

6、GC机制,新生代什么的
堆分为,新生代和老年代,对于不同的区域采用不同的算法
7、Java web容器
8、https SSl

多线程:

1、如何唤醒sleep线程
对线程实例调用interrupt方法,打断线程的暂停状态,从而线程立刻抛出InterruptedException。可以在catch块中return
2、多线程数据库操作如何避免读脏数据
3、乐观锁
4、线程抛出异常会发生什么

数据库:

1、乐观锁
2、多线程操作数据库,如何避免读取脏数据

数据结构与算法:

1、一个函数,输入整形,输出倒序字符串(处理整数和处理字符串,哪个效率高)
2、一个jvm只有1G内存,现在有一个3G的文件全部存放数字。问如何获取这个文件中的top100的数字。
实现:每次读入一部分。用什么排序算法最快
优化:充分利用内存,是否可以考虑多线程
3、排序算法,以及排序算法的选择,时间复杂度

hr:

印象最深的项目
收获最多的项目
为什么选择gis
成绩排名 奖学金

0 0
原创粉丝点击