2017年终巨献:阿里、腾讯最新Java面试题,你准备好进BAT了吗?

Java基础

1.进程和线程的区别;

2.Java的并发、多线程、线程模型;

3.什么是线程池,如何使用?

4.数据一致性如何保证;Synchronized关键字,类锁,方法锁,重入锁;

5.Java中实现多态的机制是什么;

6.如何将一个Java对象序列化到文件里;

7.说说你对Java反射的理解;

8.同步的方法;多进程开发以及多进程应用场景;

9.在Java中wait和seelp方法的不同;

10.synchronized 和volatile 关键字的作用;

11.服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达;

12.抽象类与接口的区别;应用场景;抽象类是否可以没有方法和属性;

13.静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?

14.修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法;

15.说说你对泛型的了解;

16.Java的异常体系;

17.如何控制某个方法允许并发访问线程的个数;

18.动态代理的区别,什么场景使用;

19.Dex加载过程和优化方式;

20.Jvm和Gc机制;

21常用的设计模式。

22.数据结构与算法

23.堆和栈在内存中的区别是什么(数据结构方面以及实际实现方面);

24.最快的排序算法是哪个?给阿里2万多名员工按年龄排序应该选择哪个算法?堆和树的区别;写出快排代码;链表逆序代码;

25.求1000以内的水仙花数以及40亿以内的水仙花数;

26.子串包含问题(KMP 算法)写代码实现;

27.万亿级别的两个URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分组->多文件读写效率->磁盘寻址以及应用层面对寻址的优化)

28.蚁群算法与蒙特卡洛算法;

29.写出你所知道的排序算法及时空复杂度,稳定性;

30.自己集合实现一个队列

31.自己实现线程安全类

32.快速排序和冒泡的排序,怎么转换一下。

2017年终巨献:阿里、腾讯最新Java面试题,你准备好进BAT了吗?

二、Spring mvc与Struts区别

  1. Hibernate/Ibatis两者的区别

  2. Hibernate一级和二级缓存

  3. Hibernate实现集群部署

  4. Hibernate如何实现声明式事务

  5. 简述Hibernate常见优化策略

  6. Spring bean的加载过程(推荐看Spring的源码)

  7. Spring如何实现AOP和IOC

  8. Spring bean注入方式

  9. Spring的事务管理(推荐看Spring的源码)

  10. Spring事务的传播特性

  11. springmvc原理

  12. springmvc用过哪些注解

  13. Restful有几种请求

  14. Restful好处

  15. Tomcat,Apache,JBoss的区别

  16. memcached和redis的区别

  17. 有没有遇到中文乱码问题,如何解决的

  18. 如何理解分布式锁

  19. 你知道的开源协议有哪些

  20. json和xml区别

三、设计模式:

  1. 设计模式的六大原则

  2. 常用的设计模式

  3. 用一个设计模式写一段代码或画出一个设计模式的UML

  4. 如何理解MVC

  5. 高内聚,低耦合方面的理解

四、数据结构:

  1. 队列、栈、链表、树、堆、图

  2. 编码实现队列、栈

  3. 操作系统:

  4. 操作系统什么情况下会死锁

  5. 产生死锁的必要条件

  6. 死锁预防

2017年终巨献:阿里、腾讯最新Java面试题,你准备好进BAT了吗?

数据库:

  1. 范式

  2. 数据库事务隔离级别

  3. 数据库连接池的原理

  4. 乐观锁和悲观锁

  5. 如何实现不同数据库的数据查询分页

  6. SQL注入的原理,如何预防

  7. 数据库索引的实现(B+树介绍、和B树、R树区别)

  8. SQL性能优化

  9. 数据库索引的优缺点以及什么时候数据库索引失效

  10. 10.Redis的存储结构

网络:

  1. OSI七层模型以及TCP/IP四层模型

  2. HTTP和HTTPS区别

  3. HTTP报文内容

  4. get提交和post提交的区别

  5. get提交是否有字节限制,如果有是在哪限制的

  6. TCP的三次握手和四次挥手

  7. session和cookie的区别

  8. HTTP请求中Session实现原理

  9. redirect与forward区别

安全:

  1. 如果客户端不断的发送请求连接会怎样

  2. DDos攻击

  3. DDos预防

  4. 那怎么知道连接是恶意的呢?可能是正常连接

其它:

  1. 说一个你参与的项目、其中作为什么角色

  2. 遇到最困的问题是什么,怎么解决的

  3. 你认为自己有那些方面不足

  4. 平常如何学习的

  5. 如何评价自己

智力题:

  1. 给你50个红球和50个黑球,有两个一模一样的桶,往桶里放球,让朋友去随机抽,采用什么策略可以让朋友抽到红球的概率更高?

  2. 从100个硬币中找出最轻的那个假币?

总结:

以上这些考察的知识点,在强大的互联网上都可以搜索到答案,有些答案可能不是很全,所以需要自己去总结,但是对于一些需要知道原理的知识点,还是推荐看源代码或者对于的书,然后总结得到自己的东西,这样既学到真东西,还不会很容易忘。Java基础的知识点推荐《Java编程思想》,JVM的推荐《深入理解Java虚拟机》,Spring原理的推荐《Spring源码深度解析》,对于网站架构的推荐《大型网站技术架构核心原理与案例分析》。

针对上面的技术我特意整理了一下,有很多技术不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:671017482,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值