阿里校园招聘2017编程题

  1. hotspot是sun jdk默认虚拟机,堆内存结构主要分为新生代、老年代,新生代包含Eden空间、From Survivor空间、To Survivor空间。用JAVA程序模拟实现hotspot虚拟机的堆内存结构并且实现两个方法:
    方法1:模拟实现创建一个新对象后堆内存分配过程
    方法2:模拟实现垃圾回收过程(垃圾回收按分代回收算法,实现新生代和老年代的垃圾回收过程)
    最后写一个主函数,通过调用方法1,从而触发方法2

2 Maven的一个核心特征是依赖管理。他通过读取依赖项项目文件(pom.xml中)来发现所有需要依赖的库。pom.xml中maven依赖定义类似:

     <dependency>
          <groupId>org.springframework</groupId> 
          <artifactId>spring-core</artifactId> 
          <version>3.1.2.RELEASE</version> 
     </dependency> 
     <dependency>
          <groupId>commons-collections</groupId> 
          <artifactId>commons-collections</artifactId> 
          <version>3.2.1</version>
     </dependency>
     其中每个artifactId又有自己的pom.xml,里面也有类似的依赖定义。

    比如有一个java库A,依赖于其他库B,我们的项目引用A的时候,很可能也需要把B引入进来,maven就提供了这样的功能,可以管理各种间接的依赖。举个例子:一个项目依赖了A,B两个库,A又依赖了C,D,其中D又依赖了F;B依赖了E,他们的依赖树大概是这样的:
    项目__ |______A
               |          |____C
               |          |____D
               |               |____F
               |______B
                         |____E
    maven在打包过程中会把依赖A,B,C,D,E,F都引入进来。

    但这个依赖很可能会有一些冲突的情况:

    case1:我们在项目中分别引入了2个依赖A和B,A又依赖的C,C又依赖了D,B也依赖了D,但是这个时候C依赖的D和B依赖的D的版本是不同的:
    项目----A---C---D
    项目----B---D
    也就是说,当前项目引入了2次D依赖,那么这时,Maven将采用第一原则:路径最近原则

    case2:我们在项目中分别引入了2个依赖A和B,而A和B又都引入了C,但是,此时A依赖的C和B依赖的C版本是不一致的,那么这个时候Maven如何处理呢?
    这时,第一原则已经不起作用了,在Maven2.0.9之后的版本中,制定了第二原则:第一声明者优先

    请尝试用java代码描述maven的依赖关系建立过程,注意只能使用基本类型和数组(如用到map,list,set等需要自行实现)。

3.www.abc.com是一个视频点播网站,Arbergo是一个基础存储系统,它为该视频网站提供了基础服务描述如下:
该系统存储了全部需要下载的文件,并提供JAVA接口用于视频文件下载
接口允许指定1到n个文件名下载多个文件
接口返回的文件内容支持分片,例如file.part1, file.part2
接口定义时需考虑到异常情况
接口支持按照指定文件区间下载,例如,下载file1的第101个字节到文件末尾,下载file2的第1个字节到第100个字节。
该系统实现了基于SATA硬盘和SSD硬盘的混合存储。混合存储的特点是SATA硬盘的存储空间更大,但访问速度更慢,SSD硬盘存储空间较小,但访问速度更快。文件在两种磁盘类型中可以迁移。

问题1:请用Java语言完成该系统中描述的对外提供的接口定义,并用注释说明该接口各个参数的含义以及取值范围。
问题2:针对Arbergo系统在#6中描述的混合存储特点,请用文字描述该系统的设计思路。设计思路可以包括但不限于文件在磁盘中的分布,文件在不同磁盘类型中的迁移规则,访问规则。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值