小参林八股

1、git常用代码

git add. 将文件放入暂缓区

git config 配置git信息

git commit 提交内容

git diff -查看对文件的修改情况

git init 创建一个新的仓库

git checkout -b 分表名 创建分支

2. 如何解决git冲突

识别冲突文件

对文件进行修改

git add.放入缓冲区

git commit 提交文件 

 3.如果发现一个分支是否被合并了?

git branch -merged 返回已经合并到当前分支的分支列表

git branch - no - merge 返回还没有合并的分支列表

 4.git remote 和git clone 什么的区别

 git remote 是在你的git配置中创建了一个条目,指定了一个特定URL的名称,git clone 过复制位于该URL的现有仓库来创建一个新的git仓库。

5.git的使用规范

在开发动手之前,要git -pull一下,防止有人晚上提交了代码,和版本不一致

在本地开发好后,git add . -----> git commit -m “xx” 然后,再使用一次git pull,拉取远程仓库代码过来比对,防止你开发过程中,有人又提交了代码。如果有冲突就合并,没有就继续下一步。

此时就可以git push了,这样操作能最大程度减少代码冲突或者代码覆盖的情况。

6.怎么处理冷热数据 

 关于冷热数据,我们可以使用三种方式,一种是业务处理,针对问题处理简单,并且不是根据时间划分的。

通过binlog进行,,针对问题处理复杂,并且不是根据时间划分的。

通过定时任务,可以将冷热数据。

然后关于热数据的预热则是用过redis存放。

7.Nacos和Eurake都可以用作服务发现,他们有啥区别 

 Nacos支持AP,CP,但是Eruck只支持AP.

Nacos是长连接、Eurake是短连接

Nacos client 通过心跳上报方式告诉 nacos注册中心健康状态,默认心跳间隔5秒,nacos会在超过15秒未收到心跳后将实例设置为不健康状态,可以正常接收到请求超过30秒nacos将实例删除,不会再接收请求

Eureka client在默认情况每隔30s想Eureka Server发送一次心跳,当Eureka Server在默认连续90s秒的情况下没有收到心跳, 会把Eureka client 从注册表中剔除,在由Eureka-Server 60秒的清除间隔,把Eureka client 给下线,也就是在极端情况下Eureka 服务 从异常到剔除在到完全不接受请求可能需要 30s+90s+60s=3分钟左右(还是未考虑ribbon缓存情况下)

Nacos服务异常剔除效率高于Eureka

提供了nacos console可视化控制话界面,可以对实例列表进行监听,对实例进行上下线,权重的配置,并且config server提供了对服务实例提供配置中心,且可以对配置进行CRUD,版本管理

仅提供了实例列表,实例的状态,错误信息,相比于nacos过于简单

8.锁粗化 

 我们任何事情都有个度,有些情况下我们反而希望把很多次锁的请求合并成一个请求,以降低短时间内大量锁请求、同步、释放带来的性能损耗。

进化流程是:无锁-偏向锁-轻量级锁-重点级锁

 9怎么排查oom

oom:当jvm没有足够的内存为对象分配空间,并且垃圾回收器已没有空间回收时,会发生。 

常见的可能是

永久区错溢出、一般出现大量class对象,跳着perSize大小就行

StackOverFlowError 是死循环或者是深度调用,也有可能是栈分片过小 -Xss配置栈空间

 jmap -heap查看内存分片分配过小

jmap -histo 查看是否有明显的对象分片过多且没有释放情况。

jmap-dump:导出jvm当前快照,使用jdk和mat等工具

10面向对象的理解 

面向过程:直白的理解就是按照事情发生的步骤,一步一步进行,每步用函数实现,使用的时候再依次调用。
面向对象:把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为

看到网上有个例子,将面向对象和面向过程分析的十分生动,很好理解,如下:
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。


继承:继承是从已有类得到继承信息创建新类的过程

封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。

多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。

多态分为:(1)编译时多态(2)运行时多态 编译时体现在同名的方法不同参数。 运行时的多态体现在父类子类继承重载方法,父类引用子类对象,执行子类的方法

相关推荐

  1. 2024-04-03 07:16:04       34 阅读
  2. jvm<span style='color:red;'>八</span><span style='color:red;'>股</span>

    jvm

    2024-04-03 07:16:04      40 阅读
  3. JVM<span style='color:red;'>八</span><span style='color:red;'>股</span>

    JVM

    2024-04-03 07:16:04      39 阅读
  4. 4.JVM

    2024-04-03 07:16:04       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 07:16:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 07:16:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 07:16:04       82 阅读
  4. Python语言-面向对象

    2024-04-03 07:16:04       91 阅读

热门阅读

  1. notepad++ 快捷键使用

    2024-04-03 07:16:04       44 阅读
  2. vim脚本的语言语法

    2024-04-03 07:16:04       37 阅读
  3. 微前端qiankun接入Vue和React项目

    2024-04-03 07:16:04       38 阅读
  4. JVM将虚拟机分成了哪几块区域?

    2024-04-03 07:16:04       33 阅读
  5. nginx报错相关问题

    2024-04-03 07:16:04       32 阅读
  6. UDP协议

    UDP协议

    2024-04-03 07:16:04      36 阅读
  7. 深入探索Linux的lsof命令

    2024-04-03 07:16:04       32 阅读
  8. 导入预览以及解决导入量大引发超时等问题

    2024-04-03 07:16:04       30 阅读
  9. redis-BitMap(位图)使用方法

    2024-04-03 07:16:04       32 阅读
  10. pip和conda 设置安装源

    2024-04-03 07:16:04       37 阅读