公司来了一位前阿里大神,分享8面阿里面经(Java岗面试题集锦)

说在最开头:

说一下最近几次面试大厂的经历,害,一言难尽,都让我觉得自己近期两个多月都没有学到东西,问的问题要说深入底层也深入了,但是你说是基础吗,其实也是,但就是没有回答好,这跟自己面试技巧也有关系吧,不会展现自己,也不会引导面试官,去展示自己的长处。当然,在面试之前我也逛了N多次后花园,也刷了很多牛客网上的面经,感觉还是有很多的出入的。

下面我说一下自己面试的流程:

刚开始的时候面试官会让自我介绍,闲聊一小会(主要是为了缓解紧张的气氛),下面就进入了正题(以下面试题都是涉及到的,没有一一都记清楚,记了个大概):

基础篇(面试完后期又整理了一下)

1、Java语言有哪些特点

2、面向对象和面向过程的区别

3、八种基本数据类型的大小,以及他们的封装类

4、标识符的命名规则。

5、instanceof 关键字的作用

6、Java自动装箱与拆箱

7、 重载和重写的区别

8、 equals与==的区别

9、 Hashcode的作用

10、String. String StringBuffer和StringBuilder的区别是什么?

11、ArrayListflinkedList的区别

12、HashMap和HashTable的区别

13、Collection包结构, 与Collections的区别

14、Java的四种引用, 强弱软虚

15、 泛型常用特点

16、Java创建对象有几种方式?

17、有没有可能两个不相等的对象有相同的hashcode

18、深拷贝和浅拷贝的区别是什么?

19、final有哪些用法?

20、static都有 哪些用法?

21、3*0.1==0.3返回值是什么

22、a=a+ b与a+ =b有什么区别吗?

23、try catch fnally, try里有return, fially还执行么?

24、Excption 与Error包结构

25、OOM你遇到过哪些情况,SOF你遇到过哪些情况

26、简述线程、 程序、进程的基本概念。以及他们之间关系是什么?

27、线程有哪些基本状态?

28、Java 序列化中如果有些字段不想进行序列化,怎么办?

29、Java中10流

30、Java 10与NIO的区别

31、java反射的作用与原理

(以上加粗的是在面试的时候问到过的,哈哈,当时紧张一批,记得也不是很清楚了,其他是自己刷过的面试题,还是很有作用的)

JVM篇(这个是可以吊打面试官的必杀技)

1、知识点汇总

2、知识点详解:

3、类加载与卸载

4、简述一下JM的内存模型

5、堆和栈的区别

6、什么时候会触发FullGC

7、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言?

8、Java内存结构

9、对象分配规则

10、描述一下JVM加载class文件的原理机制?

11、Java对象创建过程

12、类的生命周期

13、简述Java的对象结构

14、如何判断对象可以被回收?

(以上都是很重要的问题,必须都要会的一些知识点,你会了多少了呢?还有很多没有整理出来,有点小懒了~)

多线程&并发篇(害,对于我来说,这个是最难的)

1、Java中实现多线程有几种方法

2、如何停止一个正在运行的线程

3、notify0和notifyAll0有什么区别?

4、sleep0和wait0 有什么区别?

5、volatile 是什么?可以保证有序性吗?

6、Thread 类中的start0和run0方法有什么区别?

7、为什么wait, notify 和htftifyAll这些方法不在thread类里面?

8、为什么wait和notify方法要在同步块中调用?

9、Java中interrupted 和isInterruptedd方法的区别?

10、Java中synchronized 和ReentrantLock 有什么不同?

11、有三个线程T1,T2,T3,如何保证顺序执行? '

12、SynchronizedMap和ConcurrentHashMap有什么区别?

13、什么是线程安全

14、Thread类中的yield方法有什么作用?

15、Java线程池中submit0和execute(方法有什么区别?

16、说一说自己对于synchronized关键字的了解

17、说说自己是怎么使用synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式:

18、什么是线程安全? Vector是一 个线程安全类吗?

19、volatile关键字的作用?

20、常用的线程池有哪些?

21、简述一下你对线程池的理解

22、Java程序是如何执行的

(多线程高并发这方面我主要也是结合了视频在学习,只有理论的知识还是有点难的)

Spring篇(这个是我在面试中问的比较多的)

1、Spring的IOC和AOP机制?

2、Spring中Autowired和Resource关键字的区别?

3、依赖注入的方式有几种,各是什么?

4、讲一下什么是Spring

5、Spring MVC流程

6、SpringMVC怎么样设定重定向和转发的?

7、SpringMVC常用的注解有 哪些?

8、Spring的AOP理解:

9、Spring的IOC理解

10、解释一下spring bean的生命周期

11、解释Spring支持的几种bean的作用域。

12、Spring基 于xml注入bean的几种方式:

13、Spring框架中都用到了 哪些设计模式?

(Spring还是很重要的,我面试的时候好几个都是险过)

Mybatis篇

1、什么是MyBatis

2、MyBatis的优点和缺点

3、#}和$}的区别是什么?

4、当实体类中的属性名和表中的字段名不一样,怎么办?

5、Mybatis 是如何进行分页的?分页插件的原理是什么?

6、Mybatis是如何将sq|执行结果封装为目标对象并返回的?都有哪些映射形式?

7、如何执行批量插入?

8、Xml映射文件中,除了常见的selectinsertlupdae|delete标签之外还有哪些标签?

9、MyBatis实现-对一有几种方式?具体怎么操作的?

10、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

11、 Mybatis的一 级、二级缓存:

(以上都是SSM框架必须都知道的,相信不需要我多说了吧)

SpringBoot篇

1、什么是SpringBoot? 为什么要用SpringBoot

2、Spring Boot的核心注解是哪个?它主要由哪几个注解组成的?

3、运行Spring Boot有哪几种方式?

4、如何理解Spring Boot中的Starters?

5、如何在Spring Boot启动的时候运行-些特定的代码?

6、Spring Boot需要独立的容器运行吗?

7、Spring Boot中的监视器是什么?

8、如何使用Spring Boot实现异常处理?

9、你如何理解Spring Boot中的Starters?

10、springboot常用的starter有哪些

11、SpringBoot 实现热部署有哪几种方式?

12、如何理解 Spring Boot配置加载顺序?

13、Spring Boot的核心配置文件有哪几个?它们的区别是什么?

14、如何集成Spring Boot和ActiveMQ?

15、如何重新加载Spring Boot上的更改,而无需重新启动服务器?

16、Spring Boot. Spring MVC和Spring有什么区别?

17、能否举个例子来解释更多Staters的内容?

18、Spring Boot还提供了其它的哪些Starter Project Options?

MySQL篇(当时好像没有问到,脑子有点懵)

1、数据库的三范式是什么

2、数据库引擎有哪些

3、InnoDB与MyISAM的区别

4、数据库的事务

5、索引问题

6、SQL优化

7、简单说一说drop. delete 与truncate的区别

8、什么是视图

9、 什么是内联接、左外联接、右外联接?

10、并发事务带来哪些问题?

11、事务隔离级别有哪些?MySQL的默认隔离级别是?

12、大表如何优化?

13、分库分表之后,id主键如何处理?

14、mysq|有关权限的表都有哪几个

15、mysq|有哪些数据类型

16、创建索引的三种方式,删除索引

(这个当时刷题的时候没有很注重,是大数据方面的知识)

Redis篇

1、Redis持久化机制

2、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

3、热点数据和冷数据是什么

4、Memcache与Redis的区别都有哪些?

5、单线程的redis为什么这么快

6、redis的数据类型,以及每种数据类型的使用场景

7、redis的过期策略以及内存淘汰机制

8、Redis 为什么是单线程的

9、Redis 常见性能问题和解决方案?

10、为什么Redis的操作是原子性的,怎么保证原子性的?

11、Redis事务

(mybatis不是很难,但是也不能忽视)

SpringCloud篇

1、什么是SpringCloud

2、什么是微服务

3、SpringCloud有什么优势

4、什么是服务熔断? 什么是服务降级?

5、Eureka和zookeeper都可以提供服务注册与发现的功能, 请说说两个的区别?

6、SpringBoot和SpringCloud的区别?

7、负裁平衡的意义什么?

8、什么是Hystrix?它如何实现容错?

9、什么是Hystrix断路器?我们需要它吗?

10、说说RPC的实现原理

(SpringCloud也是微服务炙手可热的一部分,还是很有用的~)

Nginx篇

1、简述一下什么是Nginx,它有什么优势和功能?

2、Nginx是如何处理一个HTTP请求的呢?

3、列举一些Nginx的特性

4、请列举Nginx和Apache之间的不同点

5、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?

6、请解释Nginx服务器上的Master和Worker进程分别是什么?

7、请解释代理中的正向代理和反向代理

8、解释Nginx用途

(Nginx结合自己的实战项目还是很有说服力的)

MQ篇

1、为什么使用MQ

2、MQ优缺点

3、Kafka、 ActiveMQ. RabbitMQ、 RocketMQ 都有什么区别?

4、如何保证高可用的?

5、如何保证消息的可靠传输?如果消息丢了怎么办

6、如何保证消息的顺序性

7、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

8、设计MQ的思路

(用于服务器还是可以的,有解耦、异步、削峰的优点,哈哈专业了一点)

数据结构与算法篇

1、常用的数据结构

2、数据里有{1,2,3,4,5,6,7,8,9}. 请随机打乱顺序,生成一个新的数组(请以代码实现)

3、写出代码判断一 个整数是不是2的阶次方 (请代码实现,谢绝调用API方法)

4、假设今日是2015年3月1日, 星期日,请算出13个月零6天后是星期几,距离现在多少天(请用代码实现,谢绝调用API方法)

5、 有两个篮子,分别为A和B.篮子A里装有鸡蛋,篮子B里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)

6、更多算法练习

(数据结构与算法我主要是结合了一些左程云老师的视频,真的很详细哒)

Linux篇

1、 绝对路径用什么符号表示?当前目录、. 上层目录用什么表示?主目录用什么表示?切换目录用什么命令?

2、怎么查看当前进程? 怎么执行退出?怎么查看当前路径?

3、查看文件有哪些命令

4、列举几个常用的Linux命令

5、你平时是怎么查看日志的?

(这个主要是运维的,看的比较少)

偷偷告诉你:转发这篇文章+关注我,后台简信【666】即可全部打包面试题及答案解析~

下面分享一下自己在准备面试中刷过的题:

1.Java核心知识点

2.2020年多家互联网公司350道面试题

3.1000道互联网工程师面试真题

4.面试视频

左程云老师数据结构与算法

Spring面试视频

重中之重:简历篇

以上就是我在面试之前重点刷的一些面试题,除了面试题,还有很重要的一部分就是简历应该如何填写,简历是面试官对你的第一印象,至少要让面试官有想要深入了解你的冲动,吸引面试官的眼球,一张简历HR也就只会花十几秒的时间,简历就像是一个门面,在很大程度上决定了你是否会进入到下一轮面试,以下是我跟前辈讨的一点经验:

为什么说简历很重要?

先从面试来说

再从面试说起

必知必会的几点

必须了解的两大法则

项目经历怎么写

专业技能怎么写

排版注意事项

其他一些小tips

写在最后

经过这几次的面试,感觉自己还是挺菜的,很多地方和知识都是只知其一不知其二,都是了解的表面知识,面试官一深入问就慌了,还是因为知识不够牢固,不然就会脱口而出的。

其实觉得刷题还是很重要的,毕竟熟能生巧,然后再去运用这些知识点,而且我也相信每一份努力都会被看见,每份付出都会有回报,可能会迟到,但是不会缺席的(哈哈,一碗心灵鸡汤干掉)

领取方式

以上近1000页的Java面试专题:Java核心知识点+350道面试题+1000互联网面试题+学习视频,全部已经打包好,需要完整内容的朋友转发这篇文章+关注我,后台私信【666】即可免费获取~

你可能感兴趣的:(公司来了一位前阿里大神,分享8面阿里面经(Java岗面试题集锦))