《面试》_g2f

g2f
工程相关 :

一 版本控制 git

1.Git 协议 : 四种 local(局域网) ssh http git(不推荐 暴露9481)

拉去使用http哑协议,然后push使用 ssh 来自 StackFlow

注:http Smart 协议 是基于 CGI 配合GIT git-http-backend 脚本进行使用,配置较复杂,现在一般不会这么去做,而是采用gitlab 、gogs 之类的web管理进行代替

2. merge 和 rebase 区别 依赖commit (https://blog.csdn.net/liuxiaoheng1992/article/details/79108233

合并相关命令一共存在共同祖先以及指针的概念。

git merge : 祖先 ,当前分支与要被合并分支的公共祖先commit ,当前分支公共祖先最新commit,被合并分支公共祖先最新commit。三者合一

git rebase: 祖先,当前分支与要合并分支的公共祖先commit的修改,master指针指向被合并分支最新更改commit,然后放到当前分支与要合并分支的公共祖先commit的修改


二 maven,sornar,idea,jenkins,nexus

1.maven 【默认规则】当中的测试类又做了约定,约定必须是Test开头的类名与test 开头的方法才会执行【也可以定制规则】 sonar做测试覆盖 jacoco 插件

1. Maven 生命周期 与插件

  1. clean Lifecycle :清理生命周期,用于于清理项目

  2. default Lifecycle:默认生命周期,用于编译、打包、测试、部署等

  3. site Lifecycle 站点文档生成,用于构建站点文档

2.依赖规则

  依赖传播、依赖优先原则、可选依赖、排除依赖、依赖范围

3.聚合继承

2.idea 快捷键

3.jenkins 聊聊 自己学的自动化脚本 Mac vagrant 上有


二.运维 linux,nginx,tomcat,

1.linux

1.目录操作 crud

2.文件操作 crud

tail -100 ./logs/catalina.out | grep 'copy' —color 与 tail -f

top, free, df -h, ps -ef , env,netstat -tuln,route -n

vim技巧

linux 内核 TODO 用户空间 内核空间


2.nginx 架构图

1.架构 两个进程 ,主进程 加载配置,启动工作进程,联系netty。非停升级。

子进程(可配置多个work),核心模块 网络读写,存储读写以及 传输。 run-loop 定义 mail,http,config模块。

        高并发,异步非阻塞。 底层c++

2.使用

1.动静分离,黑白名单,防盗链,日志配置,下载限速

2.反向代理

Upstream  a {} proxy_pass {http://a}  
  • 参数 weigtht ,权重 负载均衡算法。ll+weight. ip_hash session 一致性. (Ur_hash 最小链接,最小响应)

  • 参数 max_fails 最大失败次数 ,踢出

  • fail_timeout 踢出后重新探测时间

  • backup 备用服务

  • max_conns 允许最大连接数

  • slow_start 当节点恢复,不立即加入,而是等待 slow_start 后加入服务对列。

3.高速缓存 proxy_cache_path 模块配置 以及 ng_cache_purge引入清除


3.tomcat 架构图 (责任链)

1.IO 模型。4种

2.NIO 和 IO区别。源码 JIOEndPoint 与 NioEndPoint 多个poller线程 多路复用 多个线程回调通信


三.ssm

1.mybatis 架构图 组件 按着jdbc方式 源码 太熟悉了

Spring 和 springmvc。

2.Spring

IOC

1.为什么使用 spring ioc

2.创建bean的几种方式

  1. 基于Class构建

  2. 构造方法构建

  3. 静态工厂方法创建

  4. FactoryBean创建

3.依赖注入方式

  1. set方法注入

  2. 构造方法注入

  3. 自动注入(byName、byType)

  4. 方法注入(lookup-method)

4.Bean创建流程

AOP。织入业务逻辑。 读写数据源,日志,接口限流等。

切面,切点, 连接点,通知。 默认jdk代理,可指定cglib。

jdk和cglib的不同,一个接口一个实现。 故 this 在 jdk中 不能使用,因为this是 接口和proxy, 在cglib中能使用,因为继承

声明式事务

acid ,因为高并发完全达到acid 只能是串行化,但是带来很多负面影响。 故出现 隔离级别

读未提交【脏读,不可重复读,幻读】,读已提交【不可重复读,幻读】,可重复读【幻读】,串行化。mysql默认 可重复读,oracle 默认是读已提交

传播行为 required。required_new ,not_support ,同一个类 默认 代理只走一个(aop)可通过暴露和AopContext 达到目的

3.springMVC流程 架构图


(5天)5. juc,jdk集合,
(10天)6.算法 4 设计模式 2 jvm mysql相关 2

JUC

为啥会用juc
1 多线程---单线程
2 共享变量---线程私有
3 原子操作---原子类i++ i=i+1
多线程的目的,就是最大限度地利用 cpu 资源,比如说1个线程一个io操作,另一个线程此时可以利用cpu。

2.线程状态图 架构图
Thread,Runnable,Callable

3.线程池 工作原理 及架构图, 吹设计模式
fixed cache single

  1. 主存 跟不上 cpu 频率。出现缓存,缓存不同步 MESI解决
    5.java 内存模型 出现工作内存。
    同步 就是一个原子操作
    线程八锁
    原子性
    synchronized 几种使用及底层jvm监视器,
    lock 重入锁 condition 通信 AQS同步器 队列加双向链表,UNSAFE JNI
    countdownlatch semaphore
    cas ABA
    可见性 volaite顺序性 。happen-before 指令重排。单例【】
    定时线程池 默认与 scheduleAtFixedRate。scheduleWithFixedDelay 的相互区别 ,一个等待停止 一个不等待

jdk相关
集合架构图。比较器两种
1.hashMap 1.7 1.8
数据结构 默认大小, 因子 ,线程是否安全,null值 ,扩容2倍 , 1.8 深度为8 红黑树
2.hashTable 与 concurrentHashMap( IOC容器)
3.ArrayList.copyOnWriteArraylist 默认10 扩容 手写

jvm相关

1.JVM 组成。 运行时架构图
2.类加载过程 【加载,连接与校验,准备 初始化。】 及 类加载器 全盘委托机制【相关类默认】双亲委派 【沙箱安全,重复加载】
3.栈 结构
4.堆 结构
5.调优jvm jinfo。jstat。jmap。jstack。jvisualvm
6.堆 回收算法 分段GC策略
首先分配到伊甸园区
大对象直接分配到老年代 分配担保机制
多次yangGC 幸存 分配到老年代 15岁
7.如何判断对象被回收,1.引用计数,2.可达性算法GCRoot 与 finalize 两次标记
8.几种收集器 及特点
9.调优步骤 及 常用参数
mysql 相关
1.查询 由机器磁盘原理, 巡道 (非常慢)和 旋转。故出现索引
2.索引 myisam 和 innodb 的结构 主键索引 非主键索引 对应区别 联合索引
3.索引优化
算法相关 TODO


(30天)4.分布式相关 netty,dubbo,zk, 10

redis,rocketmq,kafka ,8 elk,ss,mongodb 10 协议网关等 2

1.Netty
netty 创建和启动流程,架构图
tcp粘包问题处理,
序列化
空轮训
线程中的 双向链表结构
内存分配 的 二叉树

2.zk
分布式 cap。base。基本可以 软状态 最终一致
zab 联系 一致性协议 2pc 3pc paxos
事件通知
选举算法.
角色
节点类型
集群模式
水平扩展

3.dubbo
分布式演变
dubbo架构图
dubbo协议
dubbo组件
dubbo注册中心
在生产端可配置消费端的参数

1)timeout:方法调用超时
2)retries:失败重试次数,默认重试 2 次
3)loadbalance:负载均衡算法,默认随机
4)actives 消费者端,最大并发调用限制
Dubbo默认序列化 及其他序列化
dubbo默认通信 及 其他通信 Mina
dubbo负载均衡算法
多种实现分组
同步阻塞调用,及异步调用流程
提供者失效踢出
管理控制台作用

4.redis
Redis 快的原因
redis 恢复
redis 缓存淘汰策略
redis 实用场景。redis分布式锁
redis集群原理。槽位,重定向跳转,网络抖动

5.rocketmq
架构图
生产端 消息类型 同步 异步
消费端 如何消费(push pull )顺序消费,重复消费,
服务端 NameServ 和 Broker

6.kafka
选举
模式:单播 多播
存储 : 元信息 zk,消息信息 文件
发送方式 ,分区,hash,轮训
选举策略
生产流程 同步异步生产,
消费 是否自动提交消费

7.elk
Nignx 白名单 Htppasswd

8.ss

9.mongodb


(待定)六.微服务 springboot spirngcloud,docker 1。


九.(待定)项目

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容