前言

这几年在Java工程师招聘时,会看到很多人的简历都写着使用了Spring Cloud做微服务实现,使用Docker做自动化部署,并且也会把这些做为自己的亮点。而比较有趣的这其中以小公司出来的人为绝大多数,大的公司出来的人简历上倒是很少提这些东西。

对于我自己来说,从15年就开始关注这一块,看过马丁.福勒最开始的关于微服务的论文、也看过不少对微服务的论证的英文文章和书,也研究过Spring Cloud、Sofa等开源实现以及Service mesh。考虑到我们公司研发团队人力不足、基础设施不完善,当初是没有推行微服务的。但随着看到上述的那种简历越来越多,有时候我也会疑问:难道真的不用微服务就落后了吗?公司的同事如果不掌握这些就真的没有竞争力了吗。而随着最近公司业务的逐步提升,研发人员越来越多,借着在梳理公司的微服务落地计划时,也梳理了一下微服务的相关知识点,也是本文的主要内容。

复习过程

  • 项目准备;
  • leetcode:刷完剑指之后每天会刷2-4道leetcode
  • java基础: 主要刷面经、重点掌握垃圾回收机制
  • 操作系统: 之前没学过,用几天时间看了一下最重要的进程线程、死锁、消费者生产者、哲学家问题、银行家算法
  • 计算机网络:花几天时间复习了一下,重点复习tcp(三次握手四次挥手拥塞控制流量控制)、udp、https
  • 数据库: 重点了解了索引的实现以及引擎的区别
  • 数据结构和算法: 主要通过剑指offer和leetcode进行复习
  • 其他:期间也做过大大小小好几次笔试,还有一些往届练习卷

腾讯

一面(3.13电话面)

  1. 自我介绍
  2. 介绍项目以及项目遇到的难点
  3. java的hashmap是否安全?hashmap、hashtable、concurrenthashmap的区别、底层和实现
  4. mysql索引的底层实现
  5. jvm垃圾回收机制
  6. tcp、udp区别和适用场景
  7. tcp三次握手、四次挥手,为什么挥手不能只有三次
  8. 线程和进程的区别
  9. 进程通信的方式有哪些
  10. 堆是线程共有还是私有,堆是进程共有还是私有,栈呢
  11. 了解过协程吗(我:携程???不了解呜呜呜)
  12. mysql查询优化
  13. 快速排序的时间复杂度、原理(口述算法)
  14. 最近在看什么书
  15. 除了腾讯还投了其他的公司吗
  16. 问我愿不愿意转go,并推荐我了解一下协程,最后让我耐心等待,面试的人太多,需要对面试的同学进行挑选,两周内会告知我结果
  17. 有什么想问的(对我的评价和学习建议)

二面(3.22现场面)

  1. 自我介绍
  2. 问我为什么发现自己不喜欢做客户端(简历中有一个安卓实习项目)而想做后台
  3. 介绍项目(一个电商小程序)
  4. 项目中的商品是否有考虑过xxx(忘记叫什么了,意思就是是否有考虑过同一种商品有不同的颜色、规格,在数据库中如何区分这些不同)
  5. 介绍项目的支付流程,并画一下流程(白板)
  6. 介绍一下订单状态码的含义,以及交易过程中订单状态码如何变化
  7. 如何防止商品的超卖现象
  8. 项目是否具有秒杀功能
  9. 并发的时候,如何保证性能
  10. 在分库之后,如何设计id
  11. 在分库后,一条插入请求,在上层不做处理,如何直接在数据库找到相应的库并插入库中的某个表
  12. 当服务器的cpu一直很高时,如何找出原因
  13. 是否用过调试工具
  14. 当项目一直无法访问的时候,如何定位错误
  15. 介绍一下aop和ioc
  16. 如何将一个ip地址由点分制(xxx.xxx.xxx.xxx)和int类型间进行相互转化
  17. 如何判断一个数是否为2的n次方
  18. 可实习时间
  19. 是否愿意转go
  20. 有什么想问的(对我的评价和学习建议)

hr面(3.26电话面)

  1. 自我介绍
  2. 介绍一下实习经历
  3. 实习中遇到的困难以及如何解决这些困难
  4. 未来计划,是否读研

面试总结

一面的问题都很中规中矩,唯一卡住的就是协程了,确实不会,只能和面试官说我不了解。
主要和大家分享一下二面的面试体验吧。因为二面自我感觉答得不是很好,有很多问题当时没记录下来,现在一时也想不起来。所以上面的面经并不完整。
当时面试完走出大厦以为自己挂掉了,结果刷新了一下状态发现变为hr面,真的超级意外。现在想想大概是因为我在遇到不会的问题时,没有直接说自己不会,尽量把答案往自己知道的方向回答。

  • 第7题,项目没有秒杀功能我也没做过,但是了解过一些,只能和面试官说确实没有,然后让他听我讲一下我的实现思路,期间又让面试官挖出了很多问题考我TAT
  • 第9题、第10题,面试官要求我在分库的场景下回答问题,我先回答了分表情况下如何实现,他肯定了我在分表下的做法,但是分库情况还需要另外考虑,我实在想不出来,才和他说自己没有办法实现,但这总比我直接说自己不会好。
  • 第13题,如何定位错误的时候,先讲了一下无法访问的几种情况,以及大量tcp处于time_wait、close_wait这两种状态的原因和解决方法。
  • 面试结束后,等电梯的时候突然想起面试中一个一直理解错误导致解不出的问题,发现自己想歪了之后赶紧编辑完答案又给面试官发了过去,这个答案后来得到了面试官的认可。

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

资料领取方式:戳这里免费下载

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

ngBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。**

[外链图片转存中…(img-SSEphRQE-1622025330246)]

2021Java面经:java封装的概念相关推荐

  1. Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package

                     oop三大特性:封装,继承,多态 oop一般指面向对象程序设计(一种计算机编程架构) 一.封装的概念:    将东西包在一起,然后以新的完整形式呈现出来       ...

  2. java 封装的概念_java封装的概念

    继承.封装.多态.抽象是面向对象编程的四大基本概念,其中封装尤为重要,因为从我们学习JAVA开始,就基本上接触了封装,因为JAVA中的所有程序都是写在类中的,类也能当做一种封装. 在面向对象中封装是指 ...

  3. 抽象类、抽象方法、封装的概念、接口的含义(Java 从自学到就业 第12天)

    Java 学习记录 第十二天 由于本渣渣是前端转行Java,所以编辑器的选择就直接用 webstorm 同公司的 idea 接下来的知识梳理有一部分会借鉴大佬 廖雪峰的博客 学习目标 结合抽象类对多态 ...

  4. JAVA SE、EE、ME,JRE、JDK,基本数据类型,访问修饰符、函数、封装的概念、UML类图、构造方法、this关键字、static关键字、方法重载、方法重写、包(packahe)

    运行第一个JAVA程序: 这里使用的开发环境是eclipse,新建一个java工程,然后可以看到src这个是存放java代码的地方,然后在src文件右击新建一个class(类),然后可以看到下图,同样 ...

  5. 封装的概念---(Java版)

    简言:封装是一个非常广泛的概念,小到对一个属性,一个变量的封装,大到一个项目,一个框架的封装.但是我们还需要学习Java中的三个基本特性就是封装,继承,多态,我们可以看到封装就是Java中的三大特性之 ...

  6. java 3D 第二章 java 3D基本概念

    java 3D 第二章 java 3D基本概念 java 3D基本概念 java 3D的包及其功能 java 3D 高分辨率大尺度坐标 Java 3D场景图(Scene Graph) VirtualU ...

  7. 一文读懂Java封装实例

    封装 一.封装的概念 当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值.这里,赋值操作要受到属性的数据类型和存储范围的制约.但是除此之外,没有其他 ...

  8. Java封装和封装的案例

    Java封装和封装的案例 目录 一.Java封装知识点简介 二.Java程序中的包 三.static关键字.代码块 四.封装的综合应用案例: 一.Java封装知识点简介 1.面向对象三大特性之封装的概 ...

  9. java封装的作用_Java的封装性

    描述 封装性的概念与操作方法 封装性是面向对象思想的三大特征之一(其他两个特性是继承和多态). 封装就是隐藏实现细节,仅对外提供访问接口. 封装有:属性的封装.方法的封装.类的封装.组件的封装.模块化 ...

最新文章

  1. VS2010在工具栏上创建查找组合框,即:CMFCToolBar中加入CMFCToolBarComboBoxButton
  2. centos6.8 配置 tomcat
  3. Microsoft Exchange 2010 安装配置
  4. 抽象代数的抽象方法本质
  5. 【渝粤题库】国家开放大学2021春2038财务管理题目
  6. 做一个常规的banner图——负边距的使用、banner图的拼法
  7. 信号与系统 matlab实验报告,信号与系统 MATLAB实验报告
  8. 基于 Spring 实现管道模式的最佳实践
  9. web前端基础(07style)
  10. 实现Trie(前缀树)
  11. Centos 7.4版本升级内核3.10+ 到4+过程
  12. 使用代码段遍历,枚举类型Enum
  13. 国外图片分享网站有哪些?20个国外免费、高清图片素材网站、图库全合集
  14. MTK 驱动 Kernel-3.18中如何配置和使用spi
  15. 阿里巴巴面试算法题目:25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马
  16. 英文词性标注PTB标准
  17. SparkLink星闪技术之SLB概述
  18. xp系统共享打印机服务器不可用,那种方式能够解决WinXP访问Win10共享打印机指定网络不可用的问题?...
  19. 【18-业务开发-基础业务-商品模块-分类管理-前后端管理系统的启动-为分类管理表增加数据-Json插件的下载-返回具有层级目录、父子关系结构的数据】
  20. 【XSY2733】Disembrangle DP

热门文章

  1. Python实现气象天气数据采集与分析【定时邮件发送最新天气提醒+基于时间轴制作Gif天气演变图】
  2. spring线程池的使用
  3. 鸿蒙系统微信怎么操作,鸿蒙系统无微信?为何腾讯如此恶心
  4. python里raise是什么意思_Python中raise与raise...from之间有何区别?
  5. 请问在C#中如何实现声音报警?
  6. Topsis模型小记
  7. [ARM+Linux] 基于全志h616外设开发笔记
  8. 9款高质量学习软件,原来学霸都是这么炼成的!
  9. webgl-画三角形
  10. Qt下QTableWidget 基本用法