Docker步步实践
目录文档:
①Docker简介
②基本概念
③安装Docker
④使用镜像:
⑤操作容器:
⑥访问仓库:
⑦数据管理:
⑧使用网络:
⑨高级网络配置:
⑩安全:
⑪底层实现:
⑫其他项目:
=============================================================================
-
先介绍一下自己吧
-
说一下自己的优缺点
-
具体讲一下之前做过的项目
-
你觉得项目里给你最大的挑战是什么?
-
Hashmap为什么不用平衡树?
-
AQS知道吗?知道哪一些呢?讲一讲。
-
CLH同步队列是怎么实现非公平和公平的?
-
ReetrantLock和synchronized的区别
-
讲一下JVM的内存结构
-
JVM 里 new 对象时,堆会发生抢占吗?你是怎么去设计JVM的堆的线程安全的?
-
讲一下redis的数据结构
-
redis缓存同步问题
-
讲一讲MySQL的索引结构
-
你有什么问题要问我吗?
=======================================================================
-
根据项目问了一些细节问题
-
说一下HashMap的数据结构
-
红黑树和AVL树有什么区别?
-
如何才能得到一个线程安全的HashMap?
-
讲一下JVM常用垃圾回收器
-
redis分布式锁
-
再描述一下你之前的项目吧
-
你觉得这个项目的亮点在哪里呢?
-
你设计的数据库遵循的范式?
-
你有没有什么问题?
========================================================================================
-
如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?
-
怎么理解强一致性、单调一致性和最终一致性?
-
分布式锁有哪些解决方案?
-
如何解决Redi缓存穿透的问题?
-
Redis hash算法用的是什么?
-
Redis集群方案应该怎么做?都有哪些方案?
-
elasticsearch为什么检索快,它的底层数据结构是怎么样的?
-
JVM内存模型
-
netty应用在哪些中间件和框架中呢?
-
线程池的参数
-
讲一下B树和B+树的区别
-
为什么要用redis做缓存?
-
了解Springboot吗?那讲一下Springboot的启动流程吧
-
如何解决bean的循环依赖问题?
-
Java有哪些队列?
-
讲一讲Spring和Springboot的区别
-
最近看了什么书?为什么?
-
你平时是怎么学习Java的呢?
=======================================================================
1.手画自己项目的架构图,并且针对架构和中间件提问2.之后就是和hr谈
==========================================================================
下面,我给你们分享一下今年我面试的主要知识点:
-
**Java基础,**其中包括线程池(创建线程池的参数有哪些,分别可以取什么值,为什么不推荐使用JDK提供的默认实现线程池)、锁(主要是AQS,如何进队出队,一定要看透,必问)、synchronize、集合(set、list、map所有的集合都要知道,ConcurrentHashMap不一定问,问了就要将源码全部屡清楚,包括cas、volatile特性)、多线程我倒是没有遇到问的,但是以防万一还是要学习的。这些都是必须掌握的!!!其实不管你去不去大厂,如果想要在技术行业上一直向上走,就必须要掌握这些重要的知识点,要不为啥让你当teamleader呢。
-
**JVM:**核心包括JVM的内存结构,垃圾回收算法和垃圾回收器,线上问题排查思路及命令,类加载过程,双亲委派模式等。最好能够梳理成知识树,将内容一次性完整的输出给面试官,这样我认为才是合格的。这也不仅仅是为了应付面试,在哪家公司你都要用到这些内容,这会帮助你更深入的理解Java,不懂的话,为啥让你当teamleader?
-
**Mysql调优:**主要就是innodb搜索引擎,因为其他的不太常用,考察的也少。包括为什么采用B+tree作为索引数据类型,创建索引需要注考虑的内容,如何优化sql,ACID是什么,事务隔离级别以及如何解决的脏读、幻读、不可重复读(结合MVCC和锁就可以解释清楚)
-
**中间件:**可能有redis,mq,kafka,es等等,这就是结合具体项目具体说了。比如redis用作分布式锁,先暂停一下,你思考面试官会问什么内容呢?为什么选用redis做分布式锁,和zk有什么不同;redis分布式锁如何实现的;redis分布式锁和zk分布式锁有什么问题,有没有解决方案(对于客户端长时间GC导致的key过期,目前没有太好解决方案)。再比如mq,你们用的是哪种,如何保证消息不丢失不重复消费,集群如何设计从而达到灾备。以上内容不管你是否参与了设计,或者系统的实现是否进行了考虑,你都需要自己进行了解并结合项目进行思考(可以看书学习方案,再结合项目,这样理解更深刻)。这一点很重要也是必备条件!!!
-
**算法:**大厂面试100%会考
-
**框架源码:**今年面试就遇到一个问框架的,然后就把spring、springMvc和mybatis的源码一怼就够了。
补充一点,也是最重要的一点——简历!简历必须排版整齐,能够让面试官迅速找到重要信息(年龄,学历,工作经历,掌握的核心技能),具体工作经历需要写明项目含义、个人负责内容及成绩(如果负责内容比较简单,可以写在项目中遇到什么问题,如何解决的或者学习到了什么,目的就是让面试官感觉你有能力)。总之,必须能够让面试官迅速准确地获取你的信息,才有机会进行后面的流程。
=========================================================================
面试作为涨薪最直接最有效的方式,我们需要花费巨大的精力和时间来准备。除了自身的技术积累之外,掌握一定的面试技巧和熟悉最常见的面试题,一定会让我们如虎添翼。尤其是在当今的这个严峻形势下,大厂的面试竞争十分激烈,想要在这场战役中获得胜利,就必须在面试这个环节上下狠功夫,那么查漏补缺和务实理论就是我们的必经之道。
- 短期准备——刷面试题;长期筹谋——巩固核心技能。
最后
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣,
感兴趣,