如何在二三线城市月薪过万(三)java 偏功能实现的面试题,有备无患!!
以下为楼主根据经验整理的面试题 并无抄袭 偏向日常应用与开发 仅代表个人观点
本篇文章不适用于为 bat 奋战和一线城市偏向算法和数据结构的大佬,仅支持二三线城市,以接口编写和功能实现为主的默默在平凡岗位上奋斗的大多数码农们,当然,包括我自己。以下附带答案均为个人理解与简单总结,若想详细了解,请自行百度。
首先介绍以下大沈阳 java 的薪资水平,根据加班情况或者出差情况上下略有浮动
java 基础
介绍一下 break,return,continue(>4)
介绍一下 static,final 关键字(>4)
介绍一下内部类(>4)
介绍一下什么时候使用== 什么时候使用 equals(>4)
说说 int 和 integer(>4)
说说常用的工具类(>5)
描述一下集合类 list map hash 的区别(>5)
在小公司,回答上这些已经非常好了,
integer 使用什么比较数值(>7)
介绍一下 bigdecimal(>7)
说说 java 内存模型(>8)
这个网上比较多,篇幅有限,请自行百度吧。
说说 gc(>8)
这个网上比较多,篇幅有限,请自行百度吧。
说说 java 的反射,private 的类或方法是否能反射到(>8)
通过了解内存模式和 gc 说说自己的理解(>9)
两个 integer 类型 值都是 127 a=b 返回值,两个 integer 类型 值都是 128 a=b 返回值 (>10)
java 基础肯定是必不可少的问题,对于初中级开发,问的比较多,这是会伴随你职业生涯的技能,而且没有太难的知识点,需要大量准备。
数据库
简单的 sql 编写 如两表关联(>4k)
左连接与右连接(>5k)
为什么索引能提高查询速度(>7k)
此处只提供简单概括,具体自行百度
什么情况会不走索引(>7k)
是否了解 rbac 权限模型 介绍一下表(>7)
描述一下怎么实现分页(>7)
sql 优化经验或者 sql 编写技巧(>9k)
描述 mysql 的两种搜索引擎(>9k)
聚集索引与非聚集索引区别(>10)
说一下 mysql 的事务隔离级别(>10)
b tree 与 b+tree (>12k)
同样,必备技能,但是小公司没有问的那么深,能熟练的书写 sql 语句,掌握常用语法就已经达标。在 sql 优化方面 explain 可以说是必杀技了,建议了解。
设计模式
说说了解哪些设计模式 (在我这,一般到这就结束了。。)(>5)
详细描述一下工厂模式,代理模式。(>7)
篇幅有限 具体的请自行了解
说说在日常编码中使用过哪些设计模式(>7)
介绍一下外观模式(>8)
代理模式,装饰者模式,适配器模式三者类图相同 说说三者区别 (>9)
介绍策略模式和状态模式的区别(>10)
设计模式在日常使用中使用的不多,但是也需要了解一些基础来扩宽以后的视野。现在阶段可以适当了解应付一下面试。
mybatis
#{}与 %{}区别(>5)
说说 sql 注入(>5)
说说常用标签(>5)
mysql 自增主键怎么返回(>6)
说说 mybatis 的一级缓存和二级缓存 (>7)
mybatis 的实现原理(>9)
必备技能,但是以上基础部分需要重点掌握。根据自己的薪资可以自行提升难度。
分布式
介绍一下分布式,说说对分布式的理解(>5)
分布式事务(>10)
分布式锁(>10)
分布式事务分布式锁等小公司使用并不多,初级,中级了解即可,如果想拿到一个更高的薪资(装 b)建议掌握。
spring 全家桶(吃饭的家伙)
spring
介绍一下 spring 的理解(>5)
spring 的依赖注入和控制反转是什么意思(>5)
和 new()相比,spring 有什么优点(>6)
ioc 与 aop 的实现原理(>7)
说一下自己了解 spring 注入失败的原因(>6)
能介绍一下 spring 的循环依赖吗 (>10)
说一下 spring 的事务传播级别(>10)
bean 的初始化流程 (>10)
spring cloud
是否使用过微服务,说说对微服务的理解 (>5)
在项目中使用过哪些微服务组件(>6)(根据不同微服务生态)
说说微服务生态的各组件的选型(>7)
说说对网关的理解(>7)
说说对熔断的理解(>7)
在微服务体系中 服务的注册和暴露的过程 (>8)
服务间调用如果响应时间过慢造成无响应怎么办(>9)
spring mvc(如果简历写过)
spring mvc 的原理 (>7)
介绍一下 dispatchservlet (>8)
说说对上下文的理解(>8)
说说与 spring boot 的区别(>10)
spring boot
介绍一下编写接口的注解(>5)
介绍一下 spring boot 事务(>5)
描述一下 restful 风格(>7)
springboot 的启动原理(>8)
spring boot 是怎么实现约定大于配置的(>8)
描述一下 spring boot 中的异步(>8)
描述一下跨域是如何处理(>8)
介绍一下自定义注解(>9)
介绍一下 @resource 和 @Autowired 区别(>9)
对于小公司,技能要求真心不多,数据结构算法,完全用不上,那么最重要的还是 springboot 的使用,如果你能熟练的书写接口,熟练掌握 ssh,那么找个一个理想的工作是不难的。所以,springboot 接口编写一定要 6。
spring security
描述一下 spring security 作用,并分别介绍以下(>7)
spring security token 的存储方式 (>7)
jwt 和 redis 存储有什么区别 (>8)
描述一下 spring security 核心配置类 (>8)
简单介绍一下 spring security 的原理(>9)
怎么实现验证码功能(>9)
记住我功能怎么实现(>9)
在小公司 spring security+oauth2 人才真的少,所以学吧老铁。如果未来想成为公司的架构的参与者,或者不满于 curd,spring security 应该是值得你掌握的。
中间件
elasticsearch
简单介绍一下 es (如果简历有写)
说说 es 的倒排索引是怎么回事 (>6)
es 查询索引的语句怎么写 (>6) (以上两个问题答不上来说明不会 不用往下问了 二三线使用概率还是很小的)
es 使用的场景是什么(>7)
spring boot 整合中用了什么客户端 (>7)
查询前缀名相同的索引的查询语句 (>8)
使用的非常少,有写的咱就得问啊。不是必须掌握。
rabbitmq
mq 的作用是什么(>5)
rabbitmq 使用场景(>6)
说说交换机种类(>7)
怎么保证消息不丢失(>8)
说说 ack 和 nack
了解延时队列和死信队列吗 (>10)
mq 在小公司应用的也比较少,但是强烈建议了解一下,如果不写一般也不会问,但是如果使用一定要在一定程度保证消息的准确性,如:防止长期占用一个队列,消息不消费的情况。
redis
redis 的使用场景(>5)
redis 为什么比数据库快(>6)
redis5 个基本数据类型(>6)
redis 雪崩 击穿 穿透(>8)
雪崩 击穿 穿透的解决办法 (>9)
redis 单线程还是多线程 为什么单线程还是这么快(>10)
描述一下 redis 的持久化(>10)
redis 与数据库数据一致性如何解决(>12)
最常用中间件,建议必须掌握。小公司使用的背景大多数是利用 key 过期时间保存 token,或者利用 redis 原子性,计数使用,可能有少量从缓解数据库压力考虑。所以后几道题目应用的很少,但是,这种常用中间价在面试前应该背一下的。
mycat(简历有再问)
什么环境使用 mycat(>5)
分库分表的背景(>5)
当前环境是否适合分库分表
mycat 原理(>7)
分库分表后怎么关联查询,分页,排序(>8)
很少使用,楼主也没有过应用经验,但是简历有写还是会问的。这里就不献丑提供经验了。没必要死记硬背。
代码规范
idea 格式化代码的快捷键是什么(>5)
是否对自己编写的接口建立接口规范(>7)
是否对自己建立的表建立规范(>7)
是否对自己编写的代码树立规范(>7)(>7)
类和注释经常写吗,是怎么实现的(>7)
对于规范是否有插件或者自己的体系检查
使用什么接口文档,其中需要注意什么。
对于我来说,一个良好的编写习惯是优秀程序猿必不可少的品质,无论在日常的编写还是以后作为 teamleader 或是管理者,是一定需要的。否则怎么跟小弟装 b,这里我会重点问一下,可惜,达到要求的很少。我感觉如果在面试过程中突出表现自己有这方面经验,会脱颖而出。
多线程
如何理解多线程(>5)
描述一下线程状态 (>8)
介绍一下线程池(>8)
什么是线程安全 ,介绍几个 java 中线程不安全的类或方法 (>8)
Executors 的四个线程池为什么不建议使用 (>9)
介绍一下 volatile、ThreadLocal (>10)
介绍一下锁(>12)
多线程总体问的比较少,小公司使用场景不多。了解即可。或者会问但是用的真心少。
算法
总结
spring 基础概念和简单原理需要掌握。
spring boot 接口一定要写的 6,非常非常的溜。吃饭的家伙。
在接口编写的过程中,经常使用的 java 基础要熟练掌握,如数值比较,集合类处理等。
redis 中间件必须掌握,rabbitmq 建议至少了解。
mybatis,mysql 不都说,至少把上文面试题掌握,如果 explain 语法很熟练,这点可以干掉大多数竞争者。
spring cloud 建议掌握一种生态,建议爸爸版,这点是加分项。
spring security 和代码规范建是一个突出与他人等级差异很好技能,或许 spring security 比较花费时间,但是规范可以在日常中严格要求自己养成。也是加分项。
上其他不必须掌握,但是均为可以装 x。
评论