首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏服务化进程

    面试之kafka

    2、 异步 快递小哥打电话给我后需要一直在你楼下等着,直到我拿走你的快递他才能去送其他人的。快递小哥将快递放在小芳便利店后,又可以干其他的活儿去了,不需要等待你到来而一直处于等待状态。 问题2:Kafka中有哪几个组件? 主题:Kafka主题是一堆或一组消息。 生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。 ISR都完成后确认(吞吐最低、数据可靠性最高) 问题4:Kafka 如何判断节点是否存活 (1)节点必须可以维护和 ZooKeeper 的连接,Zookeeper 通过心跳机制检查每个节点的连 接 (2) 设置 heartbeat.interval.ms = 2s。 如果一定要做到顺序消费,肯定是可以的,但是这个浪费资源,因为kafka就是针对高并发大吞吐量而生,下面说一下顺序消费方案: 1、一个topic、一个partition、一个线程 2、一个topic、n个

    81921编辑于 2022-01-06
  • 来自专栏服务化进程

    面试之HashMap

    因为红黑树的平均查找长度是log(n),长度为8的时候,平均查找长度为3,如果继续使用链表,平均查找长度为8/2=4,这才有转换为树的必要。 链表长度如果是小于等于6,6/2=3,虽然速度也很快的,但是转化为树结构和生成树的时间并不会太短。 还有选择6和8,中间有个差值7可以有效防止链表和树频繁转换。 若一棵二叉查找树是红黑树,则它的任一子树为红黑树. 不能,因为在特定条件下二叉树可能会退化为线性结构 问题2 hashmap在什么条件下扩容 HashMap在什么条件下扩容? 为什么扩容是2的n次幂? 为什么要先高16位异或低16位再取模运算? 问题2.2 为什么扩容是2的n次幂?

    74511编辑于 2022-01-06
  • 来自专栏服务化进程

    面试之redis

    这里是我作为10年面试经验总结的面试问问题 问题一 简单介绍下redis redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL 2、Hash是一个键值(key-value)的集合。redis的hash是一个string的key和value的映射表,Hash特别适合存储对象。常用命令:hget,hset,hgetall等。 (4)configurationprovider:client通过sentinel获取redis地址,并在failover时更新地址 2.sentinels and slaves autodiscovery (2)slaves——询问master获得。 (2)odown——超过一定数目(可配置)的sentinel认为sdown,odown只针对master。 (3)failover——多数sentinel认为odown。

    49920编辑于 2022-01-06
  • 来自专栏服务化进程

    面试之jvm

    1.3 jvm内存有哪些初始化参数 1.JVM运行时堆的大小 -Xms堆的最小值 -Xmx堆空间的最大值 2.新生代堆空间大小调整 -XX:NewSize新生代的最小值 -XX:MaxNewSize新生代的最大值 -XX:NewRatio设置新生代与老年代在堆空间的大小 -XX:SurvivorRatio新生代中Eden所占区域的大小 3.永久代大小调整 -XX:MaxPermSize 问题2 jvm垃圾回收机制有了解吗 这种方法很简单,但是会有两个主要问题:1.效率不高,标记和清除的效率都很低;2.会产生大量不连续的内存碎片,导致以后程序在分配较大的对象时,由于没有充足的连续内存而提前触发一次GC动作。 2、大对象(需要大量连续内存空间的Java对象,如那种很长的字符串)直接进入老年态; 3、如果对象在Eden出生,并经过第一次Minor GC后仍然存活,并且被Survivor容纳的话,年龄设为1,每熬过一次 2)当初始化一个类的时候,如果发现其父类还没有进行过初始化、则需要先触发其父类的初始化。 3)虚拟机会保证一个类的<clinit>()方法在多线程环境中被正确加锁和同步。

    54420编辑于 2022-01-06
  • 来自专栏大数据解决方案

    面试 | HBase最新面试总结

    最近看了好多粉丝的面试题,于是总结出关于HBase相关的面试题,今天分享给大家,认真阅读,记得收藏。 Client: 访问数据的入口,包含访问hbase的API接口,维护着一些cache来加快对hbase的访问 Zookeeper: 1.zookeeper的选举机制保证任何时候,集群中只有一个master 2. Region server的上线和下线信息实时通知给Master 3.存储Hbase的schema 4.存贮所有Region的寻址入口 Master: 1.为Region server分配region 2. 2.Client向该HRegionServer服务器发起写入数据请求。 3.Client先把数据写入到HLog,以防止数据丢失,然后将数据写入到Memstore。 2、想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。 3、HBase是非常高效的,肯定比Hive高效的多。

    76831发布于 2021-04-29
  • 来自专栏Java后端技术栈cwnait

    面试hashCode和equals

    面试hashCode与equals hashCode和equals用来标识对象,两个方法协同工作可用来判断两个对象是否相等。这两方法来源于:java.lang.Object ? A DES- or AES-style SBox[] mechanism // * One of the Phi-based schemes, such as: // 2654435761 = 2^ (obj) >> 3 ; value = addrBits ^ (addrBits >> 5) ^ GVars.stwRandom ; } else if (hashCode == 2) 面试题 两个对象的equals为true,则两个对象的hashCode相等。 两个对象的hashCode相等,两个对象的equals不一定为true。

    51430发布于 2019-08-28
  • 来自专栏服务化进程

    面试之mysql优化

    针对这个问题,首先需要考虑该表记录数是否还会增加,增量是多少,下面就这个面试主要介绍三个方面的优化 1、 索引优化 这里索引优化主要指的是,该表是查询多还是新增修改多,这里会影响索引的创建,比如说新增、 更新频繁的,不能创建太多的索引,这会影响插入以及更新的效率,只需要创建关键字段的索引 2、分区 当表达到一定数量,为了保持查询效率,就需要定时清理表中的数据,或者通过分区来提升查询效率。 你一般是怎么针对慢查询优化 1、查看执行计划增加索引来提高效率 2、sql关键字优化 使用not exists代替not in,not in不会使用索引 查询条件避免使用前导模糊查询,如'%xxx',因为无法使用索引

    46420编辑于 2022-01-06
  • 来自专栏博客迁移同步

    2021面试JVM篇

    2. 什么是Java字节码? Java 中的字节码,是值 Java 源代码编译后的中间代码格式,一般称为字节码文件。 2.1 字节码文件中包含哪些内容? PrintGCDetails ‐XX:+PrintGCDateStamps # 指定GC日志文件 ‐Xloggc:gc.log # 指定Meta区的最大值 ‐XX:MaxMetaspaceSize=2g 存活区也是年轻代 的一部分,但一般有2个存活区,所以可以来回倒腾。 7.8 什么是GC停顿(GC pause)?   

    34011编辑于 2023-05-06
  • 来自专栏分布式|微服务|性能优化|并发编程|源码分析

    dubbo入门及面试

    > 2.将Call ID,student(params)序列化,以二进制形式打包 > 3.把2中得到的数据包发送给ServerAddr,这需要使用网络传输层 > 4.等待服务器返回结果 > 5.如果服务器调用成功 --名称可以为 consistenthash、leastactive、roundrobin、random--> 服务降级 在福安里就可以操作,有两种方式1.直接屏蔽,2,容错,调用失败返回为空 集群容错模式 通常用于写入审计日志 Failback Cluster 失败自动恢复,后台定时重发 Forking Cluster 并行调用多个服务器,只要一个成功立即返回,通常用于实时性要求高的读操作,可通过forks=2来设置并行个数

    75220发布于 2020-11-19
  • 来自专栏吾非同

    面试之TCPIP协议

    2.发送数据之前不需要建立连接,减少了开销和时延。UDP没有阻塞机制,宁愿阻塞时丢弃数据不传,也不阻塞造成延时。 3.UDP支持一对一、一对多、多对一、多对多通信。 ? 2.使用TCP通信之前,需要进行“三次握手”建立连接,通信结束后需要“四次挥手”断开连接。 3.TCP是点对点的连接,一条TCP连接只能连接两个端点。

    1.1K30发布于 2020-10-23
  • 来自专栏JAVA烂猪皮

    面试之JVM原理

    ---- 2:JRE/JDK/JVM是什么关系 JRE(JavaRuntimeEnvironment,Java运行环境),也就是Java平台。所有的Java 程序都要在JRE下才能运行。 2.)可达性分析算法:通过一系列称为“GC Roots”的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连(即对象到GC Roots不可达 GC需要消耗一些资源和时间,Java在对对象的生命周期特征进行分析后,按照新生代、旧生代的方式来对对象进行收集,以尽可能的缩短GC对应用造成的暂停 (1)对新生代的对象的收集称为minor GC; (2) ---- 2、复制算法 为了解决效率问题,出现了“复制”算法,他将可用内存按容量划分为大小相等的两块,每次只需要使用其中一块。 2)无法处理浮动垃圾(在并发清除时,用户线程新产生的垃圾叫浮动垃圾),可能出现"Concurrent Mode Failure"失败。

    57320发布于 2018-08-03
  • 来自专栏八点半技术站

    面试:缓存预热、降级?

    2、GitHub 仓库更新 weChat - openApi 管理,详情公告 3、GitHub 仓库更新 weChat - 微信支付 管理,详情公告 01 缓存预热、缓存降级 1、缓存预热是指系统上线后 2、缓存降级是指缓存失效或缓存服务器挂掉的情况下,不去访问数据库,直接返回默认数据或访问服务的内存数据。降级一般是有损的操作,所以尽量减少降级对于业务的影响程度。 - openApi 仓库地址:https://github.com/doukoi-BDB/Frame-SDK (走过路过来个 stars ) 1、文件地址:/Lib/weChatService/ 2、 微信支付 仓库地址:https://github.com/doukoi-BDB/Frame-SDK (走过路过来个 stars ) 1、文件地址:Frame-SDK/Demo/weChat_pay_H5 2、 详细说明: 特殊说明: 1、仓库还有其他demo、类库、函数,均免费使用 2、想要了解的其他功能点,留言&社群告知我即可

    71520编辑于 2022-12-05
  • 来自专栏JAVA技术zhai

    面试之JVM篇

    前言 只有光头才能变强 JVM在准备面试的时候就有看了,一直没时间写笔记。现在到了一家公司实习,闲的时候就写写,刷刷JVM博客,刷刷电子书。 能够理解到一些初学时不懂的东西 在面试的时候有谈资 能装逼 ? 所以,这里我只简单介绍一下垃圾回收的东西,详细的可以到下面的面试题中查阅和最后给出相关的资料阅 读吧~ 1.7.1JVM垃圾回收简单介绍 在C++中,我们知道创建出的对象是需要手动去delete掉的。 ~~~~ 参考资料: http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html---JVM系列三:JVM参数设置、分析 二、JVM面试题 拿些常见的JVM面试题来做做,加深一下理解和查缺补漏: 1、详细jvm内存模型 2、讲讲什么情况下回出现内存溢出,内存泄漏?

    1.1K50发布于 2019-02-15
  • 来自专栏JavaEdge

    消息队列面试解析

    消息生产端 设有3个生产者实例:Produer0、Produer1、Producer2。 这3生产者如何对应到2Broker,又如何对应到5个队列? 无需对应,随便发。 比如有2个消费组:G0和G1。 比如消费组G1,包含2个消费者C0和C1,那这2个消费者又是怎么和主题MyTopic的5个队列对应的呢? 由于消费确认机制,在同一消费组里,每个队列只能被一个消费者实例占用。 比如,我们可以让消费者C0消费Q0,Q1和Q2,C1消费Q3和Q4,如果C0宕机了,会触发重新分配,这时候C1同时消费全部5个队列。 队列占用只针对消费组内部,对其他消费组没有影响。 比如队列Q2被消费组G1的消费者C1占用,对消费组G2完全没有影响,G2也可分配它的消费者占用和消费队列Q2。 消费位置 每个消费组内部维护自己的一组消费位置,每个队列对应一个消费位置。

    53410发布于 2021-02-22
  • 来自专栏IT界的泥石流

    java面试之ThreadLocal

    假设有thread-1和thread-2两个线程要从threadLocal取值,那按上述所讲,就是下图所示。 ? threadLocal这块大土地,两个线程都要从大土地中拿值,此时大土地分别给thread-1和thread-2两个线程各自分配两块互不相关的土地,并且里面的值是大土地的副本,因此thread-1取值是从属于 thread-1的土地中取值,thread-2取值是从属于thread-2的土地中取值,所以它们两个线程互不干扰对方,每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。

    62130发布于 2019-08-15
  • 来自专栏服务化进程

    面试之mysql基础

    缺点:并发很高的时候,多了很多无用的重试) 2. 锁的粒度(粒度维度) 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

    52710编辑于 2022-01-06
  • 来自专栏IT技术精选文摘

    Java面试:ThreadLocal终极篇

    开场白 张三最近天气很热心情不是很好,所以他决定出去面试面试官聊聊天排解一下,结果刚投递简历就有人约了面试。 我丢,什么情况怎么刚投递出去就有人约我面试了?诶。。。 暗自窃喜的张三来到了某东现场面试的办公室,我丢,这面试官?不是吧,这满是划痕的Mac,这发量,难道就是传说中的架构师? 张三的心态一下子就崩了,出来第一场面试就遇到一个顶级面试官,这谁顶得住啊。 你好,我是你的面试官Tony,看我的发型应该你能猜到我的身份了,我也话不说,我们直接开始好不好?看你简历写了多线程,来你跟我聊一下ThreadLocal吧,我很久没写代码不太熟悉了,你帮我回忆一下。 这是什么逻辑啊,说是多线程然后一上来就来个这么冷门的ThreadLocal?心态崩了呀,再说你TM自己忘了不知道下去看看书么,来我这里找答案是什么鬼啊...

    46410编辑于 2022-02-17
  • 来自专栏Android面试

    Android 面试Android基础

    image.png 对于生命周期,通常还会如下的一些问题: 第一次启动:onCreate->onStart->onResume; 打开新的Activity或者返回桌面:onPause->onStop。 2,Fragment 2.1 简介 Fragment,是Android 3.0(API 11)提出的,为了兼容低版本,support-v4库中也开发了一套Fragment API,最低兼容Android 2,onBInd()方法返回的IBinder的实例需要能够返回Service实例本身。 在事件分发中,有时候会:ACTION_CANCEL什么时候触发,触摸button然后滑动到外部抬起会触发点击事件吗,再滑动回去抬起会么? com.shh.ipctest.remote2:这是完整的命名方式,不会附加包名,其它应用如果和该进程的ShareUID、签名相同,则可以和它跑在同一个进程,实现数据共享。

    81240编辑于 2021-12-20
  • 来自专栏C++

    面试》C++ RAII 详解

    2.

    69300编辑于 2025-01-05
  • 来自专栏Android面试

    Android 面试性能优化

    对于Android开发者来说,懂得基本的应用开发技能往往是不够,因为不管是工作还是面试,都需要开发者懂得大量的性能优化,这对提升应用的体验是非常重要的。 3,内存优化 3.1 内存管理 在前面Java基础环节,我们对Java的内存管理模型也做了基本的介绍,参考链接:Android 面试Java基础 3.1.1 内存区域 在Java的内存模型中,将内存区域划分为方法区 2,监听设备状态 为了提升用户体验,我们可以对设备的使用状态进行监听,然后再结合JobScheduler来执行网络请求.。 $emulator -netdelay gprs -netspeed gsm -avd Nexus_5_API_22 2,网络代理工具 使用网络代理工具也可以模拟网络情况。 视频: Android性能优化大厂实战篇:内存优化/启动优化/耗电优化/apk瘦身/屏幕适配 备战2022Android面试:BAT一线大厂高频面试题详细解析

    1.2K00编辑于 2021-12-26
领券