BAT在路上——2019年阿里、腾讯最新Java面试题

前言

BAT,一直以来都代表着中国互联网公司三巨头是中国互联网公司百度公司(Baidu)、阿里巴巴集团(Alibaba)、腾讯公司(Tencent)三大互联网公司首字母的缩写。BAT已经成为中国最大的三家互联网公司。中国互联网发展了20年,现在形成了三足鼎立的格局。

内容

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.快速排序和冒泡的排序,怎么转换一下。

二、Spring mvc与Struts区别

Hibernate/Ibatis两者的区别

Hibernate一级和二级缓存

Hibernate实现集群部署

Hibernate如何实现声明式事务

简述Hibernate常见优化策略

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

Spring如何实现AOP和IOC

Spring bean注入方式

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

Spring事务的传播特性

springmvc原理

springmvc用过哪些注解

Restful有几种请求

Restful好处

Tomcat,Apache,JBoss的区别

memcached和redis的区别

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

如何理解分布式锁

你知道的开源协议有哪些

json和xml区别

三、设计模式:

设计模式的六大原则

常用的设计模式

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

如何理解MVC

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

四、数据结构:

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

编码实现队列、栈

操作系统:

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

产生死锁的必要条件

死锁预防

数据库:

范式

数据库事务隔离级别

数据库连接池的原理

乐观锁和悲观锁

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

SQL注入的原理,如何预防

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

SQL性能优化

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

10.Redis的存储结构

网络:

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

HTTP和HTTPS区别

HTTP报文内容

get提交和post提交的区别

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

TCP的三次握手和四次挥手

session和cookie的区别

HTTP请求中Session实现原理

redirect与forward区别

安全:

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

DDos攻击

DDos预防

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

其它:

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

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

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

平常如何学习的

如何评价自己

智力题:

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

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

总结:

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

以上面试题答案和资料获取方式

加群712477306即可获取

猜你喜欢

转载自blog.csdn.net/weixin_44074342/article/details/88664979