做题

1.数组逆序(直接两个指针一头一尾交换,还有栈,先入后出,然后我说栈不好,占用空间大)

2.找到一个数组中K个最大的数,我说建一个K个数组的小顶堆,然后发现比最小值大的,就更新堆,复杂度为(nlogk)

3.spring,IOC和AOP的原理,已经应用,以及实现(AOP实现可能答得不太好,动态代理JDK反射,以及过滤器)

4.如果有一组重复数字,我要你找出来,你怎么解决,这个我当时就说HashSet集合,可以去重复,然后我又问,是要找出重复数字?面试官说是的,然后我就说用HashMap,将数字作为Key,出现次数作为value,然后再遍历,找出value大于1的Key,就是所要答案了,面试官说好的

4.java垃圾回收

(这个有些地方记得有些模糊,内存不够的时候垃圾回收,其实确切的来讲是这样 Eden space 完成内存分配,当Eden满了,再创建对象。会因为申请不到空间,除法Minor GC.进行 (Eden+S0或者Eden+S1)新生代垃圾回收,Minor GC时,Eden Space不能被回收的对象被放入到空的survivor(S0或者S1,Eden肯定会被清空),另一个Survivor里不能被GC的也会放入这个,必须保证有个Survivor为空。step3 如果survivor满了,则这些对象会被copy到old区,或者survivor没有满,但是有些对象足够被放到old space,当old space满了的时候,进行full GC.

问我项目中遇到的问题,有一个内存泄露,内存泄漏就是有一个长期存活的对象持有短命对象的引用,导致短命对象无法被释放。还有些性能优化。


阿里二面,技术大哥,直接问并发编程。syntronized 内部实现,我说加锁(还有些别的东西,暂时未整理)。

Runnable 和 Thread的区别,一个是类一个是接口,还有(当时并不知道)Runnable可以方便的进行资源共享,thread并不能,thread实现了runnable接口

相关资料参考http://developer.51cto.com/art/201203/321042.htm 

run()和 statr()的区别 我觉得还有更详细专业的答法http://www.cnblogs.com/linjiqin/archive/2011/04/10/2011272.html

问了设计模式 单例模式 与装饰者模式

问了重写和重载 返回值不一样 算不算重载

问了hashmap的实现


阿里三面:

自我介绍

项目经验

spring

抽象类与接口的区别

Java垃圾回收


列一个我读过的书单吧:

Java编程思想 细读

Java核心技术  扫过其中几章

数据结构与算法分析-java语言描述 细读 手写代码实现

effective Java 读了1/2  关于java常用知识点的思考 目前正在看

深入理解java虚拟机 重点看了内存回收 以及类加载

java并发编程  看了一些章节 目前正在看

算法设计与分析基础 

算法导论  看了一些章节

编程珠玑 主要是讲编程思想

深入理解计算机网络  看了其中几章TCP-UDP  HTTP

大话设计模式 21种设计模式 有些东西讲的不是很清楚

heard First设计模式  常用的13种设计模式 讲解清晰

heard First sevelet &JSP 读了1/2了解了一些基本的东西

程序员面试宝典  感觉是三本书里面 看着最顺眼的

剑指offer 很多例子用C++实现 看着不爽

编程之美  很多游戏题 想法很有意思


1、有没有登过网页版微信,问我用手机扫二维码登录是怎么实现的?

2、多线程,线程与进程有什么区别?结合内存说下

3、spring,IOC和AOP的原理,以及它的应用和实现?

4、Spring相关,要把一个组件注入到Spring中该怎么做? 

5、collection的理解,选择一种说下底层实现?

6、JVM内存模型,JVM加载原理。

7、spring的理解,如何进行bean的配置,用ssh做没做过什么项目?

8、有什么想问我的?

1、根据大部分阿里巴巴java开发工程师面试经验,java的多线程和并发安全性及数据库相关这些都非常重要。

一面通常是聊一些java基本功,二面就是聊项目,三面谈理想和人生。

2、对于java一面问题,通常面试官的提问都有逻辑性,抓住他的逻辑主线,你就可以大致知道他下面要问什么。

所以,你可以尽量往他想要问的方向去说,这样你也可以游刃有余,进退自如。

3、多阅读和总结开源框架的具体底层实现源码。

4、建议还是准备一些秘密武器,譬如Java的虚拟机的内容、IO包和NIO包中的内容、Java的数据结构相关的类实现原理、Java并发包当中的(类、作用、实现原理)这四块你能够非常精通,那基本上面试不会有太多问题。


分布式对于阿里完全就是灵魂的存在,阿里构架就是基于分布式构架搭建的框

消息队列也是解决高并发消息传递的技术,类似缓存一样,将消息存入队列,然后供消费者异步调用,解决阻塞,以及秒杀,采用的也是消息队列技术。 

说一下JAVA8新特性

http://blog.csdn.net/u012073449/article/details/50990546

http://blog.csdn.net/vacblog/article/details/44277599

http://blog.csdn.net/u011958281/article/details/77050966?locationNum=6&fps=1

http://blog.csdn.net/u011958281/article/details/77098013

http://www.mianshi365.com/561.html

http://blog.csdn.net/no_endless/article/details/60880436

https://mp.weixin.qq.com/s/qRwDowetBkJqpeMeAZsIpA

http://www.ujiuye.com/shaanxi/2017/15185.html



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值