跳至主要內容
计算机网络

1. TCP三次握手原因

[TCP](计算机网络.md/#53-传输控制协议tcptransmission-control-protocol)


HeChuangJun小于 1 分钟面试面试
分库分表

1. 为什么要分库?为什么要分表?

  • 业务量剧增,磁盘容量不足,并发连接数不足,所以要分库
  • <<阿里开发手册>>单表行数超过500万行或者单表容量超过2GB。存储和查询的性能就会遇到瓶颈了

2. 什么是分库分表?

  • 数据分片,指按照某个维度将存放在单一数据库中的数据分散地存放至多个数据库或表中以达到提升性能瓶颈以及可用性的效果。数据分片的有效手段是对关系型数据库进行分库和分表

3. 如何选择分表键?


HeChuangJun大约 17 分钟面试面试
分布式

1. 什么是CAP定理?

  • CAP定理是指分布式系统中, CAP三者不可兼得
    • 一致性(Consistency):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
    • 可用性(Availability):保证每个请求不管成功或者失败都有响应。
    • 分区容忍性(Partition tolerance):分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务。

2. 为什么CAP不可兼得呢?


HeChuangJun大约 27 分钟面试面试
面试

自我介绍

  • 面试官早上好,我是xxx,来自广东清远,2018年从广东药科大学制药工程专业毕业,目前有5年java开发经验,做过传统医疗项目和互联网社交项目,在项目里面使用过springboot、mybatis框架、redis分布式缓存组件,rabbitmq消息队列,mysql数据库等,在上一份工作中负责核心模块开发,参与过需求评审和数据库设计,有在linux上排查线上问题的经验。希望能加入贵公司担任java开发工程师,谢谢

  • Good morning, interviewer, My name is xxx,I come from Qingyuan,a city in Guangdong Province. I was graduated from Guangdong Pharmaceutical University in 2018, majoring in pharmaceutical engineering. l have been working as a java development engineer for 5 years, and have done traditional medical projects and Internet social projects, in which I have used springboot, mybatis framework and redis distributed cache component. rabbitmq message queue, mysql database, etc. In my last job, I was responsible for core module development, participated in requirement review and database design, and had experience in troubleshooting online problems on linux. I hope I can make a good performance today. That’s all. Thank you for giving me the chance.

  • 面试官早上好,我是xxx,广东清远人,18年广东药科大学毕业,制药工程专业,目前住在天河梅花园,是一个i人,平时喜欢看书跑步,与陌生人熟悉后就会变成e人,乐观开朗


HeChuangJun大约 28 分钟面试面试
java基础

java基础

1. 什么是 Java?特点?

  • Java 是一门面向对象的编程语言
  • 面向对象(封装,继承,多态),跨平台(一次编写,到处运行)

2. JVM、JDK、JRE区别

  • JVM:Java Virtual Machine,Java 虚拟机,Java 程序运行在 Java 虚拟机上。针对不同系统的实现(Windows,Linux,macOS)不同的 JVM,因此 Java 语言可以实现跨平台。
  • JRE: Java 运⾏时环境。包括 Java 虚拟机(JVM)和Java 类库
  • JDK: Java Development Kit,它是功能⻬全的 Java SDK(软件开发工具包)。包括了 JRE 以及编译器(javac)、Java 文档生成工具(Javadoc)、Java 调试器等开发工具。为开发者提供了开发、编译、调试 Java 程序的一整套环境。
  • JDK 包含 JRE,JRE 包含 JVM。

HeChuangJun大约 31 分钟面试面试
java并发

1. 并发与并行区别?

  • 并发:指多个任务在同一时间执行。这些任务在单核或多核处理器上通过进程或线程轮流地占有处理器资源来执行。
  • 并行:指多个任务在同一时刻执行。多个处理器同时执行多个任务,每个核心实际上可以在同一时间独立地执行不同的任务。
  • 串行:多个事件按顺序执行
  • 并行就是每个人对应一个阿姨,同时打饭;而并发就是一个阿姨,轮流给每个人打饭。

2. 进程和线程的区别?

  • 进程是程序运行和操作系统资源分配的基本单位,而线程是cpu调度和执行的基本单位

HeChuangJun大约 78 分钟面试面试
消息队列

1. 什么是消息队列?

  • mq:消息队列是一种先进先出的数据结构.

2. 为什么使用消息队列?消息队列优缺点?

  • 解耦:假设A系统要发送数据到B,C,D系统,如果E系统需要数据然后,D系统不需要了,此时A系统需要维护下游系统的调用,耦合性太高,引入消息队列后可以减少A系统维护成本
  • 异步:同步很花费并且业务时效性不大的操作,可以使用异步来提升效果,比如发送微信通知
  • 削峰、限流:解决高并发情况
  • 系统可用性降低
  • 系统复杂度提高
  • 一致性问题

HeChuangJun大约 5 分钟面试面试
计算机网络

1. TCP三次握手原因

[TCP](计算机网络.md/#53-传输控制协议tcptransmission-control-protocol)


HeChuangJun小于 1 分钟面试面试