![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大厂面试题
文章平均质量分 71
zjlala96
努力学习,终生学习
展开
-
面试题百日百刷-java基础篇(十一)
② LinkedList LinkedList 采⽤链表存储,所以对于 add(E e) add(E e) ⽅法的插⼊,删除元素时间复杂度不受元素位置的影响,近似O(1),如果是要在指定位置 ii 插⼊和删除元素的话( (add(int index, E element) (add(int index, E element) ) 时间复杂度近似为 o(n)) o(n)) 因为需要先移动到指定位置再插⼊。2. Vector 是 List 的古⽼实现类,底层使⽤ Object[ ]存储,线程安全的。原创 2023-05-28 09:00:00 · 1062 阅读 · 1 评论 -
面试题百日百刷-java基础篇(十)
Map (⽤ Key 来搜索的专家): 使⽤键值对(kye-value)存储,类似于数学上的函数 y=f(x),“x”代表key,"y"代表 value,Key 是⽆序的、不可重复的,value 是⽆序的、可重复的,每个键最多映射到⼀个值。当我们需要保存⼀组类型相同的数据的时候,我们应该是⽤⼀个容器来保存,这个容器就是数组,但是,使⽤数组存储对象具有⼀定的弊端, 因为我们在实际开发中,存储的数据的类型是多种多样的,于是,就出现了“集合”,集合同样也是⽤来存储多个数据的。转载 2023-05-27 09:00:00 · 58 阅读 · 0 评论 -
面试题百日百刷-java基础篇(八)
进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态,而 TIME_WAITING(超时等待) 状态相当于在等待状态的基础上增加了超时限制,比如通过 sleep(long millis) 方法或 wait(long millis) 方法可以将 Java 线程置于 TIMED WAITING 状态。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。转载 2023-05-25 09:00:00 · 65 阅读 · 0 评论 -
面试题百日百刷-java基础篇(七)
大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。NullPointerException(要访问的变量没有引用任何对象时,抛出该异常)、ArithmeticException(算术运算异常,一个整数除以 0时,抛出该异常)和 ArrayIndexOutOfBoundsException (下标越界异常)。Throwable: 有两个重要的子类:Exception(异常) 和 Error(错误) ,二者都是 Java 异常处理的重要子类,各自都包含大量子类。转载 2023-05-24 09:00:00 · 43 阅读 · 0 评论 -
面试题百日百刷-java基础篇(六)
getClass()//native方法,用于返回当前运行时对象的Class对象,使用了final关键字修饰,故不允许子类重写。public boolean equals(Object obj)//用于比较2个对象的内存地址是否相等,String类对该方法进行了重写用户比较字符串的值是否相等。public native int hashCode() //native方法,用于返回对象的哈希码,主要使用在哈希表中,比如JDK中的HashMap。Object 类是一个特殊的类,是所有类的父类。转载 2023-05-23 09:00:00 · 56 阅读 · 0 评论 -
面试题百日百刷-java基础篇(五)
因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用 super() 来调用父类中特定的构造方法,则编译时将发生错误,因为 Java 程序在父类中找不到没有参数的构造方法可供执行。2. 从变量在内存中的存储方式来看:如果成员变量是使用 static 修饰的,那么这个成员变量是属于类的,如果没有使用 static 修饰,这个成员变量是属于实例的。而对象存在于堆内存,局部变量则存在于栈内存。5. 从设计层面来说,抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。转载 2023-05-11 09:00:00 · 64 阅读 · 0 评论 -
面试题百日百刷-java基础篇(二)
比如,你想阅读一本英文名著,你可以找一个英文翻译人员帮助你阅读,有两种选择方式,你可以先等翻译人员将全本的英文名著(也就是源码)都翻译成汉语,再去阅读,也可以让翻译人员翻译一段,你在旁边阅读一段,慢慢把书读完。Java 语言既具有编译型语言的特征,也具有解释型语言的特征,因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(*.class 文件),这种字节码必须由Java 解释器来解释执行。常用的通配符为: T,E,K,V,?//这里直接添加会报错。转载 2023-05-08 09:00:00 · 74 阅读 · 0 评论 -
面试题百日百刷-java基础篇(一)
所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。转载 2023-05-07 09:00:00 · 78 阅读 · 0 评论 -
面试题百日百刷-Linux篇(一)
3、查看磁盘IO读写情况:iotop(需要安装一下:yum install iotop)、iotop -o(直接查看输出比较高的磁盘读写程序)参考答案:find、df、tar、ps、top、netstat等。(尽量说一些高级命令)4、查看端口占用情况:netstat -tunlp | grep 端口号。echo "文件存在!2、查看磁盘存储情况:df -h。5、查看进程:ps aux。echo "文件不存在!1、查看内存:top。转载 2023-05-06 09:00:00 · 36 阅读 · 0 评论 -
面试题百日百刷-flink篇(六)
Apache Flink摒弃了Java原生的序列化方法,以独特的方式处理数据类型和序列化,包含自己的类型描述符,泛型类型提取和类型序列化框架。Flink 并不是将大量对象存在堆上,而是将对象都序列化到一个预分配的内存块上。Flink源码中有一个独立的connector模块,所有的其他connector都依赖于此模块,Flink 在1.9版本发布的全新kafka连接器,摒弃了之前连接不同版本的kafka集群需要依赖不同版本的connector这种做法,只需要依赖一个connector即可。转载 2023-04-30 09:00:00 · 47 阅读 · 0 评论 -
面试题百日百刷-flink篇(五)
在一个Flink Job中,数据需要在不同的task中进行交换,整个数据交换是有 TaskManager 负责的,TaskManager 的网络组件首先从缓冲buffer中收集records,然后再发送。Records 并不是一个一个被发送的,而是积累一个批次再发送,batch 技术可以更加高效的利用网络资源。本道面试题考察的其实就是一句话:Flink的开发者认为批处理是流处理的一种特殊情况。可以根据状态来提交预提交的数据,也可删除预提交的数据。正式提交(commit)将之前写完的临时文件放入目标目录下。转载 2023-04-29 09:00:00 · 59 阅读 · 0 评论 -
面试题百日百刷-flink篇(四)
flink支持窗口的两个重要属性(size和interval)如果size=interval,那么就会形成tumbling-window(无重叠数据) 如果size>interval,那么就会形成sliding-window(有重。time-sliding-window 有重叠数据的时间窗口,设置方式举例:timeWindow(Time.seconds(5), Time.seconds(3))Flink 中的时间和其他流式计算系统的时间一样分为三类:事件时间,摄入时间,处理时间三种。转载 2023-04-28 09:00:00 · 61 阅读 · 0 评论 -
面试题百日百刷-flink篇(三)
在Flink架构角色中我们提到,TaskManager是实际负责执行计算的Worker,TaskManager 是一个 JVM 进程,并会以独立的线程来执行一个task或多个subtask。简单的说,TaskManager会将自己节点上管理的资源分为不同的Slot:固定大小的资源子集。Flink 最常用的常用算子包括:Map:DataStream → DataStream,输入一个参数产生一个参数,map的功能是对输入的参数进行转换操作。需要注意的优先级:算子层面>环境层面>客户端层面>系统层面。转载 2023-04-27 09:00:00 · 145 阅读 · 0 评论 -
面试题百日百刷-flink篇(二)
Client是Flink程序提交的客户端,当用户提交一个Flink程序时,会首先创建一个Client,该Client首先会对用户提交的Flink程序进行预处理,并提交到Flink集群中处理,所以Client需要从用户提交的Flink程序配置中获取JobManager的地址,并建立到JobManager的连接,将Flink Job提交给JobManager。数据流(stream)就是一组永远不会停止的数据记录流,而转换(transformation)是将一个或多个流作为输入,并生成一个或多个输出流的操作。转载 2023-04-21 09:00:00 · 47 阅读 · 0 评论 -
面试题百日百刷-flink篇(一)
API层:API 层主要实现了面向流(Stream)处理和批(Batch)处理API,其中面向流处理对应DataStream API,面向批处理对应DataSet API,后续版本,Flink有计划将DataStream和DataSet API进行统一。Libraries层:该层称为Flink应用框架层,根据API层的划分,在API层之上构建的满足特定应用的实现计算框架,也分别对应于面向流处理和面向批处理两类。Flink 支持了流处理程序在时间上的三个定义:处理时间、事件时间、注入时间。转载 2023-04-20 09:00:00 · 47 阅读 · 0 评论 -
面试题百日百刷-kafka篇(四)
Kafka还支持对消息集合进行压缩,Producer可以通过GZIP或Snappy格式对消息集合进行压缩压缩的好处就是减少传输的数据量,减轻对网络传输的压力Producer压缩之后,在Consumer需进行解压,虽然增加了CPU的工作,但在对大数据处理上,瓶颈在网络上而不是CPU,所以这个成本很值得。Kafka是分布式消息系统,需要处理海量的消息,Kafka的设计是把所有的消息都写入速度低容量大的硬盘,以此来换取更强的存储能力,但实际上,使用硬盘并没有带来过多的性能损失。2.Kafka的ISR。转载 2023-04-18 09:00:00 · 36 阅读 · 0 评论 -
面试题百日百刷-kafka篇(三)
对于Kafka而言,pull模式更合适,它可简化broker的设计,consumer可自主控制消费消息的速率,同时consumer可以自己控制消费方式——即可批量消费也可逐条消费,同时还能选择不同的提交方式从而实现不同的传输语义。Kafka只能保证一个partition中的消息被某个consumer消费时是顺序的,事实上,从Topic角度来说,当有多个partition时,消息仍然不是全局有序的。acks=0的时候,使用异步模式的时候,该模式下kafka无法保证消息,有可能会丢。处理完数据之后手动提交。转载 2023-04-14 09:00:00 · 44 阅读 · 0 评论 -
面试题百日百刷-kafka篇(二)
何能从Kafka得到准确的信息如何减少ISR中的扰动broker什么时候离开ISRKafka为什么需要复制Kafka有可能在生产后发生消息偏移吗说明Kafka 的消息投递保证(delivery guarantee)机制以及如何实现转载 2023-04-13 09:00:00 · 50 阅读 · 0 评论 -
锁屏面试题百日百刷-kafk篇(一)
请说明什么是Apache Kafka传统的消息传递方法Kafka相对于传统的消息传递方法有什么优势Kafka服务器能接收到的最大信息是多少Kafka中的ZooKeeperKafka的用户如何消费信息提高远程用户的吞吐量转载 2023-04-12 09:00:00 · 55 阅读 · 0 评论 -
解释一下布隆过滤器原理
解释一下布隆过滤器原理如何实现HBase的二级索引Hbase的storeFile(compact)合并机制是什么Hbase的flush刷新机制如何解决hbase中数据热点问题转载 2023-04-11 09:00:00 · 68 阅读 · 0 评论 -
HBase在进行模型设计时重点在什么地方?一张表中定义多少个Column Family最合适?为什么?
HBase在进行模型设计时重点在什么地方?一张表中定义多少个Column Family最合适?为什么?Hbase中的memstore提高HBase客户端的读写性能HBase集群安装Hbase是怎么进行预分区转载 2023-04-10 09:00:00 · 56 阅读 · 0 评论 -
面试题百日百刷-HBase HRegionServer宕机如何处理
HBase的导入导出方式Region如何预建分区HRegionServer宕机如何处理HBase读写流程转载 2023-04-08 09:00:00 · 84 阅读 · 0 评论 -
面试题百日百刷-HBase中RowFilter和BloomFilter原理
HBase如何给web前端提供接口来访问请列举几个HBase优化方法HBase中RowFilter和BloomFilter原理转载 2023-04-07 09:00:00 · 106 阅读 · 0 评论 -
每天百亿数据存入HBase,如何保证数据的存储正确和在规定时间里全部录入完毕,不残留数据?
请详细描述HBase中一个cell的结构以start-hbase.sh为起点,HBase启动的流程是什么HBase中compact用途是什么百亿数据存入HBase转载 2023-04-06 09:00:00 · 296 阅读 · 0 评论 -
面试题百日百刷-描述HBase的rowKey的设计原则?
描述HBase的rowKey的设计原则描述HBase中scan和get的功能以及实现的异同描述HBase中scan对象的setCache和setBatch方法的使用转载 2023-04-05 09:00:00 · 62 阅读 · 0 评论 -
锁屏面试题百日百刷-Spark篇(十八)
序列化Spark累加器有哪些特点spark hashParitioner的弊端parition和block有什么关联关系RangePartitioner分区的原理Spark如何自定义partitioner分区器转载 2023-03-31 09:00:00 · 48 阅读 · 0 评论 -
锁屏面试题百日百刷-Spark篇(十四)
parquet文件存储格式Spark应用程序的执行过程Standalone模式下,Spark资源分配是粗粒度的FAIR调度模式的优点和缺点PU密集型的应用场景转载 2023-03-27 09:00:00 · 53 阅读 · 0 评论 -
锁屏面试题百日百刷-Spark篇(十)
配置spark master的HASpark中driver的功能park中Work的主要工作Spark为什么比mapreduce快简单说一下hadoop和spark的shuffle相同和差异转载 2023-03-22 09:00:00 · 48 阅读 · 0 评论 -
锁屏面试题百日百刷-Spark篇(九)
Spark 机器学习和 Spark 图计算接触过没有,能举例说明你用它做过什么吗Spark 的 ML 和 MLLib 两个包区别和联系Spark master使用zookeeper进行HA的,有哪些元数据保存在Zookeeper原创 2023-03-20 08:45:00 · 215 阅读 · 0 评论 -
锁屏面试题百日百刷-Spark篇(八)
coalesce和repartition的区别Spark sql中cache缓存级别Spark sql中怎样释放缓存和缓存Shuffle默认并行度注册UDF函数join操作与left join操作的区别BroadCast join转载 2023-03-19 09:00:00 · 70 阅读 · 0 评论 -
锁屏面试题百日百刷-Spark篇(六)
Spark的小文件读取如何理解Spark的RDD数据结构分区Spark何时缓存数据Spark的Job调度模式转载 2023-03-16 21:24:19 · 51 阅读 · 0 评论 -
锁屏面试题百日百刷-Spark篇(三)
分别简述Spark中的缓存机制如何理解Spark中的血统概念(RDD)简述Spark的宽窄依赖,以及Spark如何划分stage,每个stage又根据什么决定task个数引起Shuffle过程的Spark算子roupByKey算子底层实现转载 2023-03-13 09:00:00 · 59 阅读 · 0 评论 -
锁屏面试题百日百刷-Spark篇(一)
阐述下对Spark的并行度理解如何设置Application的并行度Spark有几种部署方式?请分别简要论述Spark提交作业参数(重点)为什么要用Yarn来部署Spark转载 2023-03-11 09:00:00 · 69 阅读 · 0 评论 -
锁屏面试题百日百刷-Flume篇(二)
flume和kafka采集日志区别,采集日志时中间停了,怎么记录之前的日志详细介绍Flume有哪些组件你是如何实现flume数据传输断点续传Flume的source,sink,channel的作用Flume的事务机制转载 2023-03-10 09:00:00 · 49 阅读 · 0 评论 -
锁屏面试题百日百刷-Flume篇(一)
Flume有哪些组件,flume的source、channel、sink具体是做什么的你是如何实现flume数据传输的监控的Flume的source,sink,channel的作用?你们source是什么类型讲一讲Flume参数调优转载 2023-03-08 22:33:48 · 44 阅读 · 0 评论 -
锁屏面试题百日百刷-Hive篇(十二)
Hive导出数据的五种方式Hive是怎样保存元数据的说说对Hive桶表的理解什么是 metastoreHive如何动态分区如何创建 bucket 表转载 2023-03-07 12:29:19 · 48 阅读 · 0 评论 -
锁屏面试题百日百刷-Hive篇(十一)
如何理解SMB Join讲一讲Hive索引原创 2023-03-06 09:00:00 · 221 阅读 · 0 评论 -
锁屏面试题百日百刷-Hive篇(十)
如何理解 Map Join 如何理解Bucket-MapJoin转载 2023-03-05 09:30:00 · 64 阅读 · 0 评论 -
锁屏面试题百日百刷-Hive篇(九)
Hive中使用什么代替in查询所有的Hive任务都会有MapReduce的执行吗Hive的函数:UDF、UDAF、UDTF的区别Hive自定义UDF函数的流程拉链表是什么,怎么使用Hive为什么要分桶原创 2023-03-04 09:30:00 · 244 阅读 · 0 评论 -
锁屏面试题百日百刷-Hive篇(八)
Hive 中的压缩格式TextFile、SequenceFile、RCfile 、ORCfile各有什么区别Hive join过程中大表小表的放置顺序Hive的两张表关联,使用MapReduce怎么实现原创 2023-03-03 09:00:00 · 523 阅读 · 0 评论