欢迎您的访问
专注架构,Java,数据结构算法,Python技术分享

Java面试 第4页

Redis分布式锁如何解决锁超时问题

站长阅读(64)赞(0)

一、前言 关于redis分布式锁, 查了很多资料, 发现很多只是实现了最基础的功能, 但是, 并没有解决当锁已超时而业务逻辑还未执行完的问题, 这样会导致: A线程超时时间设为10s(为了解决死锁问题), 但代码执行时间可能需要30s, 然...

清清楚楚讲明白HTTPS原理

站长阅读(101)赞(0)

大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称加密、 CA 证书等。 但对于以下灵魂三拷问可能就答不上了: 为什么用了 HTTPS 就是安全的? HTTPS 的底层原理如何实现? 用了...

为什么选择B+树作为数据库索引结构

站长阅读(48)赞(0)

背景 首先,来谈谈B树。为什么要使用B树?我们需要明白以下两个事实: 【事实1】 不同容量的存储器,访问速度差异悬殊。以磁盘和内存为例,访问磁盘的时间大概是ms级的,访问内存的时间大概是ns级的。有个形象的比喻,若一次内存访问需要1秒,则一...

TCP协议面试10连问,总会用得到,建议收藏

站长阅读(79)赞(0)

先亮出这篇文章的思维导图 TCP 作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。 001. 能不能说一说 TCP 和 UDP 的区别? 首先概括一下...

MySQL索引优缺点、何时需要/不需要创建索引、索引及sql语句的优化

站长阅读(53)赞(0)

一、什么是索引? 索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。 二、索引的作用? 索引相当于图书上的目录,可以根据目录上的页码快速找到所需的内容,提高性能(查询速度) 三、优点: 通过创建唯...

JVM中,为什么新生代内存需要有两个Survivor区

站长阅读(54)赞(0)

1 为什么要有Survivor区 先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪里? 如果没有Survivor,Eden区每进行一次Minor GC,存活的对象就会被送到老年代。老年代很快被填满,触发...

i = i++和 i = ++i 的区别

站长阅读(123)赞(0)

写在前面:前些天看完了JVM的内存结构,自以为自己是懂了,心里想想不就是分线程共享和线程私有嘛,然后又怎么怎么分怎么怎么的嘛… 直到遇到了这道题目。说句实话,曾经自己做这种运算题目,完全是靠脑子空想,然后拿上笔颤抖的写下一个自己都不知道正不...

在项目中,如何应对高并发流量

站长阅读(62)赞(0)

前言 在实际项目中,曾经遭遇过线上5W+QPS的峰值,也在压测状态下经历过10W+QPS的大流量请求,本篇博客的话题主要就是自己对高并发流量控制的一点思考。 应对大流量的一些思路 “ 首先,我们来说一下什么是大流量? 大流量,我们很可能会冒...

谈谈什么是微服务?

站长阅读(59)赞(0)

什么是微服务 微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。 一.单体架构 1.1什么是单体架构 在软件设计的时候经常提到和使用经典的3层模型,即表现层,业务逻辑层,...

什么是熔断?什么是服务降级?

站长阅读(72)赞(0)

服务熔断 服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。 服务降级 服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务...