概述
技术问题准备(不限于以下问题)
一、强调:一定要充分熟悉自己的简历,简历上写到的项目一定要很 清晰的描述出来,自己参与过哪些部分,担任什么角色,功能如何实 现等。
二、要准备英文自我介绍,以防万一。如果面试官要求用英文就用英 文,如果没有特别要求就用中文就可以。
三、Zoom 面试(线上面试),约好的面试时间提前 10 分钟接入,选择通过网络 接入调试设备和麦克风,打开麦克风和摄像头,视频面试。
四、面试基础问题(多复习 Java 基础问题即可,如果非常简单的基础问题都答不上来就算其他问题回答很好也会直接影响面试结果)
-
是否是使用过 jenkins,Jira,如果没有,现在使用的代码管理工具 是什么?
git 那莫就会扯出git的常用命令
-
java 的最新版本多少?
JDK16,目前使用的是jdk1.8
-
Java JDK 1.8 新特性?Lambda 表达式,stream API, 什么场景下会 用 Stream,说一个以前项目用过的实际案例?
Lambda表达式 函数式接口 方法引用 StreamApi 接口中的默认方法和静态方法 新时间日期API HashMap数据结构优化 ConcurrentHashMap采用的是CAS算法 Stream流:比如说要遍历一个集合,并且需要过滤的一些元素,就可以使用Stream流加过滤条件,最后再将元素从Stream流聚合。 limit:对流元素进行截取,取前几个元素 skip:跳过前几个元素,取剩下的元素 filter:过滤,加过滤条件,内部用lambda表达式 最后.count聚合,获取过滤后的流元素
-
Java 常用排序有哪些?底层逻辑是什么?
冒泡排序:依次比较两个相邻的数,将小的值放左边,大值放右边,最后遍历出一个最大值,然后进行多次遍历,将数据变成一个有序数组(效率低,实现简单) 选择排序:先默认第一个为最小值,记录下他的下标,然后和后面的无序数组进行比较,找出最小值和下标,将最小值和本次循环出来的值进行交换,然后跳过前面有序的数组,再进行比较循环完成排序。 快速排序:选取一个元素作为中心轴,定义两个下标,左下标从左向右移动,右下标从右向左移动,分别与中心轴进行比较,将小的放在左边,大的放在右边,左右下标交替执行,当左右下标重叠的时候将中心轴元素放在重叠的位置,然后再依次循环上述操作对左子序列和右子序列进行排序,当序列的长度位子则不需再进行排序。
-
Java 多线程和进程的区别,两个或者两个以上进程的交互方式,多线程条件下如何保证线程安全?
进程是指一个正在运行的程序,线程则是这个正在运行程序中的一个子任务。 多个进程可以通过磁盘上的普通文件交换信息,也可以通过其他数据库交互 微服务之间可以通过rpc进行交互,fegin 保证线程安全的方法一般有:三种 1,同步代码块 2,同步方法 3,使用lock锁 使用synchronized关键字给线程加锁,让一个线程执行完再让其他线程执行 使用lock锁,手动加锁手动释放
-
Java 集合框架的分支结构是什么?集合实现类的特性和线程安全
collection -List -ArrayList -LinkedList -Set -TreeSet -HashSet -Map -TreeMap -HashMap(线程不安全) -HashTable(线程安全,synchronized修饰,效率低) -ConcurrentHashMap(线程安全,采用CAS算法,效率高)
-
spring 的控制反转,依赖注入是什么意思?实际的业务场景中分别 用来做什么
控制反转:本来创建对象是通过new对象进行创建,现在交由spring来控制对象的创建于销毁 依赖注入:从应用程序的角度来说是等待ioc容器来提供本类以外的资源 ioc容器初始化创建bean 依赖注入就是spring中常用的@autowired来注入资源
-
说一下 spring cloud 里面都有什么组件?主要是用来干什么的?
eureka:服务注册中心 -一个service管理服务提供方,一个client去发现服务 ribbon:实现客户端负载均衡 -随机、轮询(默认)、最小并发、响应时间、轮询重试、过滤、性能可用性 hystrix:断路器 -隔离 线程池隔离(将线程池拆分均分给每个服务)、信号量隔离(访问数凉) -降级 异常,超时给出降级方案 -熔断 当一个服务一段时间内出现多次问题会启动熔断,20个请求中有一半失败时则打开熔断器,过5秒后会为半开状态,重新尝试访问服务,成功则关闭,不成功则继续打开,5秒后再试 -限流 gateway:网关 -统一入口:对外只暴露一个端口,提高后台安全 -鉴权:类似登录,写一个filter判断请求路径以及请求头是否包含token -路由:将请求分发到不同的服务中 -限流:rateLimit,配置多少秒内访问多少次,超过则抛异常 springcloudcongif:分布式配置 -统一管理配置文件,配合bus消息总线广播刷新配置文件
-
springboot 的特点,相对于以前传统的 spring,springMVC,springboot 的优点?
可以快速搭建spring开发环境 自动配置: springbootapplication中开启了EnableAutoConfiguration,EnableAutoConfiguration是利用AutoConfigurationImportSelector将MAT-INFO下spring.factories中的bean创建出来 起步依赖:我们的工程继承parent,引入start后通过依赖传递获取需要的jar包,不用考虑版本冲突问题
-
springboot 的 test 组件有没有用过,有没有写过 unit test 和 intergration test.
@RunWith @SpringBootTest spring-boot-starter-test unit test(单元测试) 使用java的单元测试框架Junit,测试某一个dome,方法是否正确 intergration test(集成测试) 在微服务中,分别在测试环境中进行测试,保证A微服务可以调通B微服务
-
lunix 常用的命令;
cd、ls、mkdir、rm、mv、cp、vim、tar -zcvf、tar-zxvf、unzip、whereis(文件定位)
-
对 Sprint IOC 和 AOP 有什么理解?
控制反转:是一种设计思想 AOP:面向切面编程,面向对象编程的补充
-
对敏捷开发有多少了解?
这就要和传统的瀑布流式开发做比较,瀑布流式开发,严格遵循了 需求分析,设计,编码,测试,运行维护这几个步骤。必须完整的经历每个阶段,死板,不灵活,后期需求发生变化,难以调整。 而敏捷开发:敏捷开发解决了传统瀑布流的缺点,具有应对快速变化的需求的能力。敏捷开发是一种思想 敏捷开发自己总结有一下的特点: 1,迭代式开发 2,增量交付 3,开发团队和用户反馈推动产品开发 4,持续集成 将项目拆分多个子模块,快速的开发出核心功能,再集成到一起完成整个项目的功能,通过后期的迭代升级完善项目。
-
一个用户,在浏览器输入网址到敲下回车进入网页界面,一共经 历了哪些步骤?
springmvc 的执行流程 前端发送请求到后台的前端控制器(DispatcherServlet),通过处理器映射器(HandlerMapping)找到对应的Handler,返回处理器执行链,然后到HandlerAdapter执行对应的Handler返回ModelAndView,最终将ModelAndView交给ViewResolver解析返回View到前端 前段发送请求到后台,先进入 前段控制器,DispatcherServlet ,
最后
以上就是眼睛大毛巾为你收集整理的汇丰面试题的全部内容,希望文章能够帮你解决汇丰面试题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复