前言
今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令。
如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!笔芯!
正式开始 Linux 之前,简单花一点点篇幅科普一下操作系统相关的内容。
复习过程
- 项目准备;
- leetcode:刷完剑指之后每天会刷2-4道leetcode
- java基础: 主要刷面经、重点掌握垃圾回收机制
- 操作系统: 之前没学过,用几天时间看了一下最重要的进程线程、死锁、消费者生产者、哲学家问题、银行家算法
- 计算机网络:花几天时间复习了一下,重点复习tcp(三次握手四次挥手拥塞控制流量控制)、udp、https
- 数据库: 重点了解了索引的实现以及引擎的区别
- 数据结构和算法: 主要通过剑指offer和leetcode进行复习
- 其他:期间也做过大大小小好几次笔试,还有一些往届练习卷
腾讯
一面(3.13电话面)
- 自我介绍
- 介绍项目以及项目遇到的难点
- java的hashmap是否安全?hashmap、hashtable、concurrenthashmap的区别、底层和实现
- mysql索引的底层实现
- jvm垃圾回收机制
- tcp、udp区别和适用场景
- tcp三次握手、四次挥手,为什么挥手不能只有三次
- 线程和进程的区别
- 进程通信的方式有哪些
- 堆是线程共有还是私有,堆是进程共有还是私有,栈呢
- 了解过协程吗(我:携程???不了解呜呜呜)
- mysql查询优化
- 快速排序的时间复杂度、原理(口述算法)
- 最近在看什么书
- 除了腾讯还投了其他的公司吗
- 问我愿不愿意转go,并推荐我了解一下协程,最后让我耐心等待,面试的人太多,需要对面试的同学进行挑选,两周内会告知我结果
- 有什么想问的(对我的评价和学习建议)
二面(3.22现场面)
- 自我介绍
- 问我为什么发现自己不喜欢做客户端(简历中有一个安卓实习项目)而想做后台
- 介绍项目(一个电商小程序)
- 项目中的商品是否有考虑过xxx(忘记叫什么了,意思就是是否有考虑过同一种商品有不同的颜色、规格,在数据库中如何区分这些不同)
- 介绍项目的支付流程,并画一下流程(白板)
- 介绍一下订单状态码的含义,以及交易过程中订单状态码如何变化
- 如何防止商品的超卖现象
- 项目是否具有秒杀功能
- 并发的时候,如何保证性能
- 在分库之后,如何设计id
- 在分库后,一条插入请求,在上层不做处理,如何直接在数据库找到相应的库并插入库中的某个表
- 当服务器的cpu一直很高时,如何找出原因
- 是否用过调试工具
- 当项目一直无法访问的时候,如何定位错误
- 介绍一下aop和ioc
- 如何将一个ip地址由点分制(xxx.xxx.xxx.xxx)和int类型间进行相互转化
- 如何判断一个数是否为2的n次方
- 可实习时间
- 是否愿意转go
- 有什么想问的(对我的评价和学习建议)
hr面(3.26电话面)
- 自我介绍
- 介绍一下实习经历
- 实习中遇到的困难以及如何解决这些困难
- 未来计划,是否读研
面试总结
一面的问题都很中规中矩,唯一卡住的就是协程了,确实不会,只能和面试官说我不了解。
主要和大家分享一下二面的面试体验吧。因为二面自我感觉答得不是很好,有很多问题当时没记录下来,现在一时也想不起来。所以上面的面经并不完整。
当时面试完走出大厦以为自己挂掉了,结果刷新了一下状态发现变为hr面,真的超级意外。现在想想大概是因为我在遇到不会的问题时,没有直接说自己不会,尽量把答案往自己知道的方向回答。
- 第7题,项目没有秒杀功能我也没做过,但是了解过一些,只能和面试官说确实没有,然后让他听我讲一下我的实现思路,期间又让面试官挖出了很多问题考我TAT
- 第9题、第10题,面试官要求我在分库的场景下回答问题,我先回答了分表情况下如何实现,他肯定了我在分表下的做法,但是分库情况还需要另外考虑,我实在想不出来,才和他说自己没有办法实现,但这总比我直接说自己不会好。
- 第13题,如何定位错误的时候,先讲了一下无法访问的几种情况,以及大量tcp处于time_wait、close_wait这两种状态的原因和解决方法。
- 面试结束后,等电梯的时候突然想起面试中一个一直理解错误导致解不出的问题,发现自己想歪了之后赶紧编辑完答案又给面试官发了过去,这个答案后来得到了面试官的认可。
Spring全套教学资料
Spring是Java程序员的《葵花宝典》,其中提供的各种大招,能简化我们的开发,大大提升开发效率!目前99%的公司使用了Spring,大家可以去各大招聘网站看一下,Spring算是必备技能,所以一定要掌握。
资料领取方式:点击这里前往蓝色传送门
目录:
部分内容:
Spring源码
- 第一部分 Spring 概述
- 第二部分 核心思想
- 第三部分 手写实现 IoC 和 AOP(自定义Spring框架)
- 第四部分 Spring IOC 高级应用
基础特性
高级特性 - 第五部分 Spring IOC源码深度剖析
设计优雅
设计模式
注意:原则、方法和技巧 - 第六部分 Spring AOP 应用
声明事务控制 - 第七部分 Spring AOP源码深度剖析
必要的笔记、必要的图、通俗易懂的语言化解知识难点
脚手框架:SpringBoot技术
它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。
Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。
- SpringBoot入门
- 配置文件
- 日志
- Web开发
- Docker
- SpringBoot与数据访问
- 启动配置原理
- 自定义starter
微服务架构:Spring Cloud Alibaba
同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
- 微服务架构介绍
- Spring Cloud Alibaba介绍
- 微服务环境搭建
- 服务治理
- 服务容错
- 服务网关
- 链路追踪
- ZipKin集成及数据持久化
- 消息驱动
- 短信服务
- Nacos Confifig—服务配置
- Seata—分布式事务
- Dubbo—rpc通信
Spring MVC
目录:
部分内容:
片转存中…(img-5Hb6UAZL-1622038745314)]
[外链图片转存中…(img-UfYVDhZG-1622038745315)]
部分内容:
[外链图片转存中…(img-IYMLrX58-1622038745316)]
[外链图片转存中…(img-sUXtyMQV-1622038745317)]