说在最开头:

说一下最近几次面试大厂的经历,害,一言难尽,都让我觉得自己近期两个多月都没有学到东西,问的问题要说深入底层也深入了,但是你说是基础吗,其实也是,但就是没有回答好,这跟自己面试技巧也有关系吧,不会展现自己,也不会引导面试官,去展示自己的长处。当然,在面试之前我也逛了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、你平时是怎么查看日志的?

 

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

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

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

1.Java核心知识点

 

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

 

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

 

4.面试视频

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

 

  • Spring面试视频

 

重中之重:简历篇

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

  • 为什么说简历很重要?
  • 先从面试来说
  • 再从面试说起
  • 必知必会的几点
  • 必须了解的两大法则
  • 项目经历怎么写
  • 专业技能怎么写
  • 排版注意事项
  • 其他一些小tips

 

写在最后

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

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

领取方式

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