
面试
文章平均质量分 79
风情客家__
简述需要300字以内_(¦3」∠)_
展开
-
面试几个问题总结
在Java编程中,是一个用来创建线程局部变量的类,位于java.lang包下。它的核心作用在于为每个线程提供独立的变量副本,每个线程都可以访问到自己的副本变量,而不会影响其他线程,从而在多线程环境中避免了由于共享数据而产生的同步问题。ThreadLocal的工作原理当创建一个变量后,每个线程在访问该的get()或set()方法时,都会得到或设置属于自己线程的独立变量副本。内部通过结构来实现这一特性,是一个定制化的哈希表,其键是实例,值是真正的变量副本,每个线程都有自己的。原创 2024-03-12 10:10:56 · 1229 阅读 · 0 评论 -
JVM常用调优策略
6、为了验证自己的猜想,于是准备登录后台去测试下,结果在测试的过程中发现到处订单的按钮前端居然没有做点击后按钮置灰交互事件,结果按钮可以一直点,因为导出订单数据本来就非常慢,使用的人员可能发现点击后很久后页面都没反应,结果就一直点,结果就大量的请求进入到后台,堆内存产生了大量的订单对象和EXCEL对象,而且方法执行非常慢,导致这一段时间内这些对象都无法被回收,所以最终导致内存溢出。如果每次GC次数频繁,而且每次回收的内存空间也正常,那说明是因为对象创建速度快导致内存一直占用很高;转载 2023-09-08 10:08:38 · 248 阅读 · 0 评论 -
kafka和rabbitmq对比
参考文章:kafka和rabbitmq对比1、吞吐量kafka吞吐量更高:1)Zero Copy机制,内核copy数据直接copy到网络设备,不必经过内核到用户再到内核的copy,减小了copy次数和上下文切换次数,大大提高了效率。2)磁盘顺序读写,减少了寻道等等的时间。3)批量处理机制,服务端批量存储,客户端主动批量pull数据,消息处理效率高。4)存储具有O(1)的复杂度,读物因为分区和segment,是O(log(n))的复杂度。5)分区机制,有助于提高吞吐量。2、可靠性rab原创 2021-08-27 10:24:57 · 1117 阅读 · 0 评论 -
Java终止线程的三种方式
参考文章:Java终止线程的三种方式停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。在 Java 中有以下 3 种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。 使用 stop() 方法强行终止线程,但是不推荐使用这个方法,该方法已被弃用。 使用 interrupt 方法中断线程。1. 使用标志位终止线程在 run() 方法执行完毕后,该线程就终止了。但是在某些特殊的情况下,run() 方法转载 2020-05-26 10:43:29 · 3439 阅读 · 0 评论 -
MYSQL设计规范
参考文章:MySQL千万级大表优化1. 数据库改进方案:规范设计 业务层优化 架构层优化 数据库优化 管理优化黑格尔说:秩序是自由的第一条件。在分工协作的工作场景中尤其重要,否则团队之间互相牵制太多,问题多多。我想提到如下的几个规范,其实只是属于开发规范的一部分内容,可以作为参考。规范的本质不是解决问题,而是有效杜绝一些潜在问题,对于千万级大表要遵守的规范,我梳理了如...转载 2020-02-13 11:33:51 · 436 阅读 · 1 评论 -
2022年前端面试题总结
之前发了一些最近的面试题,反应还不错,那就整理一篇前端面试题吧。转载 2022-09-27 14:35:25 · 226 阅读 · 0 评论 -
非关系型数据库MongoDB, Cassandra, Couchbase, CouchDB, Hbase等对比
Oracle的12c版本是为云而设计的,可以托管在一台服务器或多台服务器上,并支持管理包含数十亿条记录的数据库。Oracle Database 18c现在为客户提供了一个高性能、可靠和安全的平台,使他们的事务和分析工作负载(无论是在云环境中,还是在本地环境中,或者在混合云配置中)更容易、更经济地实现现代化。像用户生成的数据、地理位置数据、物联网生成的数据一样,社交图是真实世界数据呈指数级增长的例子。DynamoDB使用了一个NoSQL数据库模型,它是非关系型的,允许文档、图形和列在它的数据模型之间。转载 2022-09-07 16:33:29 · 1120 阅读 · 0 评论 -
JAVA线程池的正确使用
参考文章:Java并发编程正确打开线程池的方式1. 概述线程可认为是操作系统可调度的最小的程序执行序列,一般作为进程的组成部分,同一进程中多个线程可共享该进程的资源(如内存等)。JVM线程跟内核轻量级进程有一对一的映射关系,所以JVM中的线程是很宝贵的。一般在工程上多线程的实现是基于线程池的。因为相比自己创建线程,多线程具有以下优点:线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。 可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内转载 2021-08-11 22:12:08 · 727 阅读 · 0 评论 -
Spark-Coalesce()方法和rePartition()方法
参考文章:Spark学习-Coalesce()方法和rePartition()方法最近使用spark中遇到了重分区的问题,本文对下面三篇文章内容按照自己逻辑进行整理,mark下!!https://www.cnblogs.com/fillPv/p/5392186.html https://blog.youkuaiyun.com/do_yourself_go_on/article/details/74315834 https://blog.youkuaiyun.com/u011981433/article/details/转载 2021-08-05 11:27:33 · 1158 阅读 · 0 评论 -
Spark面试题
参考文章:聊聊Spark中的宽依赖和窄依赖1. 关于"宽依赖"和"窄依赖"判断窄依赖的依据:父类分区内的数据,会被子类RDD中的指定的唯一一个分区所消费。错误观点:子RDD一个partition内的数据依赖于父类RDD的所有分区,则为宽依赖。原因:reduceTask只有一个的时候,只有一个分区,这个分区内的数据,肯定依赖于所有的父类RDD,但这是个窄依赖。宽依赖:父类RDD一个分区内的数据,会被子RDD内的多个分区消费,需要自行判断分区,来实现数据发送的效果。总...原创 2021-08-05 10:42:15 · 170 阅读 · 0 评论 -
AI面试题
参数 说明 召回率 被用户标注为某个分类的所有样本中,模型正确预测为该分类的样本比率,反映模型对正样本的识别能力。 精确率 被模型预测为某个分类的所有样本中,模型正确预测的样本比率,反映模型对负样本的区分能力。 准确率 所有样本中,模型正确预测的样本比率,反映模型对样本整体的识别能力。 F1值 F1值是模型精确率...原创 2021-08-04 16:03:57 · 268 阅读 · 0 评论 -
JVM进阶面试题--整理
1.JVM内存模型与java线程内存模型的区别?2.JVM的GC执行时机是任何时候都可以吗?安全点都有哪些?3.CMS垃圾收集器的并发更新失败是怎么回事?如何优化?4.高并发系统为何建议选择G1垃圾收集器?5.线上系统GC问题如何快速定位与分析?6.阿里巴巴Arthas实现原理?7.单机几十万并发系统JVM如何优化?8.解释下JVM垃圾收集底层的三色标记算法?9.Volatile底层的内存屏障是如何实现的?10.Mysql索引底层B+树结构与算法?11.分别解释下 聚原创 2021-07-23 08:54:43 · 223 阅读 · 0 评论 -
MySQL面试题
索引相关关于MySQL的索引,曾经进行过一次总结,文章链接在这里Mysql索引原理及其优化.1. 什么是索引?索引是一种数据结构,可以帮助我们快速的进行数据的查找.2. 索引是个什么样的数据结构呢?索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引.3. Hash索引和B+树所有有什么区别或者说优劣呢?首先要知道Hash索引和B+树索引的底层实现原理:.原创 2021-05-12 10:56:08 · 400 阅读 · 0 评论 -
浅谈Java锁机制---公平锁/非公平锁,可重入锁(递归锁),独享锁/共享锁,互斥锁/读写锁,乐观锁/悲观锁,分段锁,偏向锁/轻量级锁/重量级锁,可中断锁,自旋锁
参考文章:浅谈Java锁机制JAVA锁机制-可重入锁,可中断锁,公平锁,读写锁,自旋锁Java常见锁类型:公平锁/非公平锁 可重入锁(递归锁) 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 可中断锁 自旋锁锁的相关概念介绍1. 公平锁/非公平锁:公平锁是指多个线程按照申请锁的顺序来获取锁,比如同是有多个线程在等待一个锁,当这个锁被释放时,等待时间最久的线程(最先请求的线程)会获得该所,这种就是公平锁。 非公平锁是指多.转载 2021-04-30 17:38:08 · 344 阅读 · 0 评论 -
Redis集群的5种使用方式,各自优缺点分析
参考文章:Redis集群的5种使用方式,各自优缺点分析一、常见使用方式Redis 的几种常见使用方式包括:Redis 单副本 Redis 多副本(主从) Redis Sentinel(哨兵) Redis Cluster Redis 自研二、各种使用方式的优缺点1、Redis 单副本Redis 单副本,采用单个 Redis 节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适用于数据可靠性要求不高的纯缓存业务场景。优点:架构简单,部署方.原创 2021-04-20 15:17:15 · 4960 阅读 · 1 评论 -
Redis性能调优策略
参考文章:Redis性能调优策略一、Redis设计优化1.1 估算Redis内存使用量要估算redis中的数据占据的内存大小,需要对redis的内存模型有比较全面的了解,下面以最简单的字符串类型来举例说明:假设有90000个键值对,每个key的长度是12个字节,每个value的长度也是12个字节,且键值都不是整数类型。然后我们可以预估一下这90000个键值对占用的空间,首先,我们可以判定字符串类型使用的是embstr;90000个键值对占用的空间只要可以分为两部分,一部分是90000.转载 2021-04-20 15:00:58 · 815 阅读 · 0 评论 -
Flink三种时间机制简介
参考文章:flink 三种时间机制_Flink1.10入门:时间机制简介一、概述上篇文章介绍了Window窗口机制的相关知识,这里我们介绍下Flink的另外一个核心概念“Event Time机制”,本篇文章只介绍相关概念不讲实战,实战会结合Window窗口机制一起讲解。二、Flink中的三种时间机制Flink在流处理程序中支持三种时间的概念,分别是EventTime、ProcessingTime、IngestionTime,Flink流式处理中,绝大部分的业务都会使用Even...转载 2021-04-16 14:15:21 · 1271 阅读 · 0 评论 -
Java虚拟机(JVM)面试题
参考文章:Java虚拟机(JVM)面试题(2020最新版)1. Java内存区域1.1 说一下 JVM 的主要组成部分及其作用?JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。Class loader(类装载):根据给定的全限定名类名(如:java.lang.Object)来装载class文件到Run转载 2021-04-16 11:05:25 · 381 阅读 · 1 评论 -
浅谈sleep、wait、yield、join区别
参考文章:浅谈sleep、wait、yield、join区别相同点:都是暂停当前正在执行的线程sleepsleep 方法是属于Thread 类中的方法,sleep 过程中线程不会释放锁,只会阻塞线程,让出cpu给其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态,可中断,sleep 给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会。示例代码:/** * 线程sleep测试 * * @author supu * @date .转载 2021-04-15 10:53:31 · 318 阅读 · 0 评论 -
JVM 内存结构简介
参考文章:经典Java技术面试:JVM 内存模型讲解优点JVM 不仅承担了 Java 字节码的分析(JIT compiler)和执行(Runtime),同时也内置了自动内存分配管理机制。这个机制可以大大降低手动分配回收机制可能带来的内存泄露和内存溢出风险,使 Java 开发人员不需要关注每个对象的内存分配以及回收,从而更专注于业务本身。缺点这个机制在提升 Java 开发效率的同时,也容易使 Java 开发人员过度依赖于自动化,弱化对内存的管理能力,这样系统就很容易发生 JVM 的堆内存异常、转载 2021-03-03 10:06:16 · 267 阅读 · 0 评论 -
Redis面试题(2020最新版)
参考文章:Redis面试题(2020最新版)目录概述什么是RedisRedis有哪些优缺点为什么要用 Redis /为什么要用缓存为什么要用 Redis 而不用 map/guava 做缓存?Redis为什么这么快数据类型Redis有哪些数据类型Redis的应用场景持久化什么是Redis持久化?Redis 的持久化机制是什么?各自的优缺点?如何选择合适的持久化方式Redis持久化数据和缓存怎么做扩容?过期键的删除策略Redis的过期键的删除策转载 2021-02-22 15:36:25 · 3608 阅读 · 0 评论 -
Redis面试
参考文章:Redis 面试?这些知识点你应该要知道一、前言在互联网应用中,缓存成为高并发架构的关键组件。这篇博客主要介绍缓存使用的典型场景、实操案例分析、Redis使用规范及常规 Redis 监控。二、常见缓存对比常见的缓存方案,有本地缓存,包括HashMap/ConcurrentHashMap、Ehcache、Memcache、Guava Cache等,缓存中间件包括Redis、Tair等。三、Redis使用场景1.计数Redis实现快速计数及缓存功能。例如:视频或直.转载 2021-02-22 15:29:03 · 234 阅读 · 0 评论 -
Flink面试题
参考文章:Flink面试,看这篇就足够了1.Flink是如何实现exactly-once语义的基于Flink的checkpoint机制,Flink的checkpoint是基于Chandy-Lamport算法的分布式一致性快照,详情请见《Flink是如何实现exactly-once语义的》2.Flink时间类型的分类和各自的实现原理?对于流式数据处理,最大的特点就是数据具有时间的属性,Flink根据时间的产生位置分为三种类型,事件生成时间(Event Time)、事件接入时间(Inges原创 2021-02-22 14:53:02 · 509 阅读 · 0 评论 -
Spark面试题(一)
参考文章:Spark面试题(一)转载 2021-02-09 18:56:10 · 163 阅读 · 0 评论 -
微服务面试题
参考文章:20道你必须要背会的微服务面试题,面试一定会被问到文章题目1、什么是微服务? 2、微服务之间是如何通讯的? 3、springcloud 与dubbo有哪些区别? 4、请谈谈对SpringBoot 和SpringCloud的理解 5、分布式系统面临的问题 6、什么是服务熔断,什么是服务降级 7、微服务的优缺点分别是什么?说下你在项目开发中碰到的坑? 8、你所知道的微服务技术栈有哪些?请列举一二 9、什么是 Eureka服务注册与发现 10、Eureka的基本架构是什么?原创 2020-12-14 14:57:03 · 699 阅读 · 0 评论