Java中接口的使用你得知道,附面试答案
Posted 数据库面试题
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中接口的使用你得知道,附面试答案相关的知识,希望对你有一定的参考价值。
前言
进程和线程的提出极大的提高了操作提供的性能。进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。
多进程的方式也可以实现并发,为什么我们要使用多线程?
多进程方式确实可以实现并发,但使用多线程,有以下几个好处:
- 进程间的通信比较复杂,而线程间的通信比较简单,通常情况下,我们需要使用共享资源,这些资源在线程间的通信比较容易。
- 进程是重量级的,而线程是轻量级的,故多线程方式的系统开销更小。
由此可见多线程的学习对程序员来说是至关重要的,这也是为什么不论是大大小小的公司面试官都会问到的问题。金九银十即将来临,我特意花了时间搜集了一些相关的资料整理出了这份“Java多线程核心笔记”,我把多线程分为十一个模块进行解读。让我们来看看文档的内容
复习过程
- 项目准备;
- 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 cloud alibaba,那对于整个微服务架构,如果想要进一步地向上提升自己,到底应该掌握哪些核心技能呢?
就个人而言,对于整个微服务架构,像RPC、Dubbo、Spring Boot、Spring Cloud Alibaba、Docker、kubernetes、Spring Cloud Netflix、Service Mesh等这些都是最最核心的知识,架构师必经之路!下图,是自绘的微服务架构路线体系大纲,如果有还不知道自己该掌握些啥技术的朋友,可根据小编手绘的大纲进行一个参考。
如果觉得图片不够清晰,也可来找小编分享原件的xmind文档!
且除此份微服务体系大纲外,我也有整理与其每个专题核心知识点对应的最强学习笔记:
-
出神入化——SpringCloudAlibaba.pdf
-
SpringCloud微服务架构笔记(一).pdf
-
SpringCloud微服务架构笔记(二).pdf
-
SpringCloud微服务架构笔记(三).pdf
-
SpringCloud微服务架构笔记(四).pdf
-
Dubbo框架RPC实现原理.pdf
-
Dubbo最新全面深度解读.pdf
-
Spring Boot学习教程.pdf
-
SpringBoo核心宝典.pdf
-
第一本Docker书-完整版.pdf
-
使用SpringCloud和Docker实战微服务.pdf
-
K8S(kubernetes)学习指南.pdf
需要下载的请**点击传送门:《出神入化——SpringCloudAlibaba》**
另外,如果不知道从何下手开始学习呢,小编这边也有对每个微服务的核心知识点手绘了其对应的知识架构体系大纲,不过全是导出的xmind文件,全部的源文件也都在此,照样可免费分享给有需要的你!
存中…(img-Or7cfQd8-1624594954301)]
另外,如果不知道从何下手开始学习呢,小编这边也有对每个微服务的核心知识点手绘了其对应的知识架构体系大纲,不过全是导出的xmind文件,全部的源文件也都在此,照样可免费分享给有需要的你!
以上是关于Java中接口的使用你得知道,附面试答案的主要内容,如果未能解决你的问题,请参考以下文章
2020年Java多线程与并发系列22道高频面试题(附思维导图和答案解析)
10道精选阿里+华为Java面试题JVM+多线程+Redis+Mysql(附答案)