sbroker(Java程序员跳槽如何快速全面复习面试题)
资讯
2023-11-03
430
1. sbroker,Java程序员跳槽如何快速全面复习面试题?
建议自己整理答案,这样有印象,也能节省时间。
2021年很多公司都在问黑红树,数据结构与算法一定要看哦~
Java基础⾯向对象和⾯向过程的区别Java 语⾔有哪些特点?关于 JVM JDK 和 JRE 最详细通俗的解答Oracle JDK 和 OpenJDK 的对⽐Java 和 C++的区别?什么是 Java 程序的主类 应⽤程序和⼩程序的主类有何不同?Java 应⽤程序与⼩程序之间有哪些差别?字符型常量和字符串常量的区别?构造器 Constructor 是否可被 override?重载和重写的区别Java ⾯向对象编程三⼤特性: 封装 继承 多态String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?⾃动装箱与拆箱在⼀个静态⽅法内调⽤⼀个⾮静态成员为什么是⾮法的?在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤import java 和 javax 有什么区别?接⼝和抽象类的区别是什么?成员变量与局部变量的区别有哪些?创建⼀个对象⽤什么运算符?对象实体与对象引⽤有何不同?什么是⽅法的返回值?返回值在类的⽅法⾥的作⽤是什么?⼀个类的构造⽅法的作⽤是什么? 若⼀个类没有声明构造⽅法,该程序能正确执⾏吗? 为什么?构造⽅法有哪些特性?静态⽅法和实例⽅法有何不同对象的相等与指向他们的引⽤相等,两者有什么不同?在调⽤⼦类构造⽅法之前会先调⽤⽗类没有参数的构造⽅法,其⽬的是?== 与 equals(重要)hashCode 与 equals (重要)为什么 Java 中只有值传递?简述线程、程序、进程的基本概念。以及他们之间关系是什么?线程有哪些基本状态?关于 fifinal 关键字的⼀些总结Java 中的异常处理Java 序列化中如果有些字段不想进⾏序列化,怎么办?获取⽤键盘输⼊常⽤的两种⽅法Java 中 IO 流常⻅关键字总结:static,fifinal,this,super深拷⻉ vs 浅拷⻉Java集合说说List,Set,Map三者的区别?Arraylist 与 LinkedList 区别?ArrayList 与 Vector 区别呢?为什么要⽤Arraylist取代Vector呢?说⼀说 ArrayList 的扩容机制吧2.2.5 HashMap 和 Hashtable 的区别HashMap 和 HashSet区别HashSet如何检查重复HashMap的底层实现HashMap 的⻓度为什么是2的幂次⽅HashMap 多线程操作导致死循环问题ConcurrentHashMap 和 Hashtable 的区别ConcurrentHashMap线程安全的具体实现⽅式/底层具体实现comparable 和 Comparator的区别集合框架底层数据结构总结如何选⽤集合?多线程什么是线程和进程?请简要描述线程与进程的关系,区别及优缺点?说说并发与并⾏的区别?为什么要使⽤多线程呢?使⽤多线程可能带来什么问题?说说线程的⽣命周期和状态?什么是上下⽂切换?什么是线程死锁?如何避免死锁?说说 sleep() ⽅法和 wait() ⽅法区别和共同点?为什么我们调⽤ start() ⽅法时会执⾏ run() ⽅法,为什么我们不能直接调⽤ run() ⽅法?说⼀说⾃⼰对于 synchronized 关键字的了解说说⾃⼰是怎么使⽤ synchronized 关键字,在项⽬中⽤到了吗synchronized关键字最主要的三种使⽤⽅式讲⼀下 synchronized 关键字的底层原理说说 JDK1.6 之后的synchronized 关键字底层做了哪些优化,可以详细介绍⼀下这些优化吗谈谈 synchronized和ReentrantLock 的区别讲⼀下Java内存模型说说 synchronized 关键字和 volatile 关键字的区别ThreadLocal原理及ThreadLocal 内存泄露问题实现Runnable接⼝和Callable接⼝的区别执⾏execute()⽅法和submit()⽅法的区别是什么呢?线程池原理分析能不能给我简单介绍⼀下 AtomicInteger 类的原理AQS 原理分析JVM介绍下 Java 内存区域(运⾏时数据区)说⼀下Java对象的创建过程对象的访问定位有哪两种⽅式?说⼀下堆内存中对象的分配的基本策略Minor Gc和Full GC 有什么不同呢?如何判断对象是否死亡?(两种⽅法)简单的介绍⼀下强引⽤,软引⽤,弱引⽤,虚引⽤如何判断⼀个常量是废弃常量?如何判断⼀个类是⽆⽤的类?垃圾收集有哪些算法,各⾃的特点?HotSpot为什么要分为新⽣代和⽼年代?常见的垃圾回收器有哪些?类加载过程网络OSI与TCP/IP各层的结构与功能,都有哪些协议?TCP 三次握⼿和四次挥⼿(⾯试常客)TCP,UDP 协议的区别TCP 协议如何保证可靠传输ARQ协议滑动窗⼝和流量控制拥塞控制在浏览器中输⼊url地址 ijk 显示主⻚的过程(⾯试常客)状态码各种协议与HTTP协议之间的关系HTTP⻓连接,短连接HTTP是不保存状态的协议,如何保存⽤户状态?Cookie的作⽤是什么?和Session有什么区别?HTTP 1.0和HTTP 1.1的主要区别是什么?URI和URL的区别是什么?HTTP 和 HTTPS 的区别?数据结构Java 集合框架中的队列 QueueHashSet 和 TreeSet 底层数据结构List的常⻅实现类ArrayList 和 LinkedList 源码学习Map⼆叉树完全⼆叉树满⼆叉树堆⼆叉查找树(BST)平衡⼆叉树(Self-balancing binary search tree)红⿊树B-,B+,B*树LSM 树算法⼏道常⻅的字符串算法题总结最⻓公共前缀回⽂串两数相加翻转链表链表中倒数第k个节点删除链表的倒数第N个节点合并两个排序的链表剑指offer部分编程题跳台阶问题变态跳台阶问题⼆维数组查找替换空格题⽬描述:数值的整数次⽅调整数组顺序使奇数位于偶数前⾯链表中倒数第k个节点反转链表合并两个排序的链表⽤两个栈实现队列栈的压⼊,弹出序列数据库MySQL存储引擎字符集及校对规则索引查询缓存的使⽤什么是事务?事物的四⼤特性(ACID)并发事务带来哪些问题?事务隔离级别有哪些?MySQL的默认隔离级别是?锁机制与InnoDB锁算法⼤表优化解释⼀下什么是池化设计思想。什么是数据库连接池?为什么需要数据库连接池?分库分表之后,id 主键如何处理?⼀条SQL语句在MySQL中如何执⾏的MySQL⾼性能优化规范建议⼀条SQL语句执⾏得很慢的原因有哪些?Redis为什么要⽤ redis/为什么要⽤缓存为什么要⽤ redis ⽽不⽤ map/guava 做缓存?redis 的线程模型redis 和 memcached 的区别redis 常⻅数据结构以及使⽤场景分析redis 设置过期时间redis 内存淘汰机制(MySQL⾥有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进⾏恢复)redis 事务缓存雪崩和缓存穿透问题解决⽅案如何解决 Redis 的并发竞争 Key 问题如何保证缓存与数据库双写时的数据⼀致性?Spring什么是 Spring 框架?列举⼀些重要的Spring模块?@RestController vs @Controller讲一下 Spring IoC 和 AOPSpring 中的 bean 的作⽤域有哪些?Spring 中的单例 bean 的线程安全问题了解吗?@Component 和 @Bean 的区别是什么?将⼀个类声明为Spring的 bean 的注解有哪些?Spring 中的 bean ⽣命周期?SpringMVC ⼯作原理了解吗?Spring 框架中⽤到了哪些设计模式?Spring 事务中的隔离级别有哪⼏种?Spring 事务中哪⼏种事务传播⾏为?@Transactional(rollbackFor = Exception.class)注解了解吗?如何使⽤JPA在数据库中⾮持久化⼀个字段?MyBatis#{}和${}的区别是什么?Xml 映射⽂件中,除了常⻅的 select|insert|updae|delete 标签之外,还有哪些标签?最佳实践中,通常⼀个 Xml 映射⽂件,都会写⼀个 Dao 接⼝与之对应,请问,这个Dao接⼝的⼯作原理是什么?Dao接⼝⾥的⽅法,参数不同时,⽅法能重载吗?Mybatis 是如何进⾏分⻚的?分⻚插件的原理是什么?简述 Mybatis 的插件运⾏原理,以及如何编写⼀个插件。Mybatis 执⾏批量插⼊,能返回数据库主键列表吗?Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述⼀下动态 sql 的执⾏原理不?Mybatis 是如何将 sql 执⾏结果封装为⽬标对象并返回的?都有哪些映射形式?Mybatis 能执⾏⼀对⼀、⼀对多的关联查询吗?都有哪些实现⽅式,以及它们之间的区别。Mybatis 是否⽀持延迟加载?如果⽀持,它的实现原理是什么?Mybatis 的 Xml 映射⽂件中,不同的 Xml 映射⽂件,id 是否可以重复?Mybatis 中如何执⾏批处理?Mybatis 都有哪些 Executor 执⾏器?它们之间的区别是什么?Mybatis 中如何指定使⽤哪⼀种 Executor 执⾏器?Mybatis 是否可以映射 Enum 枚举类?Mybatis 映射⽂件中,如果 A 标签通过 include 引⽤了 B 标签的内容,请问,B 标签能否定义在 A 标签的后⾯,还是说必须定义在 A 标签的前⾯?简述 Mybatis 的 Xml 映射⽂件和 Mybatis 内部数据结构之间的映射关系?为什么说 Mybatis 是半⾃动 ORM 映射⼯具?它与全⾃动的区别在哪⾥?KafkaKafka 是什么?主要应⽤场景有哪些?和其他消息队列相⽐,Kafka的优势在哪⾥?队列模型了解吗?Kafka 的消息模型知道吗?什么是Producer、Consumer、Broker、Topic、Partition?Kafka 的多副本机制了解吗?带来了什么好处?Zookeeper 在 Kafka 中的作⽤知道吗?Kafka 如何保证消息的消费顺序?Kafka 如何保证消息不丢失Kafka 如何保证消息不重复消费NettyNetty 是什么?为什么要⽤ Netty?Netty 应⽤场景了解么?Netty 核⼼组件有哪些?分别有什么作⽤?EventloopGroup 了解么?和 EventLoop 啥关系?Bootstrap 和 ServerBootstrap 了解么?NioEventLoopGroup 默认的构造函数会起多少线程?Netty 线程模型了解么?Netty 服务端和客户端的启动过程了解么?什么是 TCP 粘包/拆包?有什么解决办法呢?Netty ⻓连接、⼼跳机制了解么?Netty 的零拷⻉了解么?尚硅谷Java大厂面试题第3季,跳槽必刷题目+必扫技术盲点(周阳主讲)_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1Hy4y1B78T?
尚硅谷Java大厂面试题第2季,面试必刷,跳槽大厂神器_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV18b411M7xz?
尚硅谷经典Java面试题第一季(java面试精讲)_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1Eb411P7bP?
强烈推荐一个网站:
Java面试题-帮助你通过Java面试 (zwmst.com)
https://zwmst.com/
2. with的复合宾语结构?
with后接复合宾语是英语中一种很有用的结构,也是各类考试的一个重要考点,归纳起来该结构主要具有以下几种类型:
1. with+宾语+形容词
例句:She was cycling along with her bicycle basket full of shopping. 她骑着自行车,车筐装满了买的东西。
2. with+宾语+副词
例句:With Richard Migliore aboard, he won the cup at a gallop. 由骑手理查德·米廖雷策骑,它一个快跳赢得了杯赛冠军。
3. with+宾语+名词
例句:He died with his daughter yet a schoolgirl. 他去世时,女儿还是个小学生。
4. with+宾语+介词短语
例句:The front door closed with a crash behind him. 前门在他身后砰的一声关上了。
5. with+宾语+现在分词(短语)
例句:With exams approaching, it's a good idea to review your class notes. 随着考试的临近,复习一下你的课堂笔记是个不错的主意。
6. with+宾语+过去分词(短语)
例句:He stood with knees slightly bent. 他站着,双膝略略弯曲。
7. with+宾语+不定式(短语)
例句:He was a high-earning broker with money to burn. 他是高收入的经纪人,有花不完的钱。
3. 马来西亚RHB银行的全称是什么?
Rashid Hussein Bank (拉希德侯赛因银行)简介:RHB Banking Group1983 – Rashid Hussain secures a broker’s licence and sets up Rashid Hussain Securities Sdn Bhd 1996 – Rashid Hussain acquires a 75% stake in Kwong Yik Bank Berhad 1997 – Merger of Kwong Yik Bank Berhad and DCB Bank Berhad to form RHB Bank, then Malaysia’s third largest financial services group 1999 – Merger of Sime Bank Berhad and RHB Bank Berhad to form the RHB Banking Group 2003 – Merger of RHB Bank Berhad with Bank Utama Berhad into the RHB Banking Group
4. rocketmq任意时间队列实现原理?
RocketMQ是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠、万亿级容量、灵活可伸缩的消息发布与订阅服务。
它前身是MetaQ,是阿里基于Kafka的设计使用Java进行自主研发的。在2012年,阿里将其开源, 在2016年,阿里将其捐献给Apache软件基金会(Apache Software Foundation,简称为ASF),正式成为孵化项目。2017 年,Apache软件基金会宣布RocketMQ已孵化成为 Apache顶级项目(Top Level Project,简称为TLP ),是国内首个互联网中间件在 Apache上的顶级项目。
延迟消息
生产者把消息发送到消息队列中以后,并不期望被立即消费,而是等待指定时间后才可以被消费者消费,这类消息通常被称为延迟消息。
在RocketMQ中,支持延迟消息,但是不支持任意时间精度的延迟消息,只支持特定级别的延迟消息。如果要支持任意时间精度,不能避免在Broker层面做消息排序,再涉及到持久化的考量,那么消息排序就不可避免产生巨大的性能开销。
消息延迟级别分别为1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h,共18个级别。在发送消息时,设置消息延迟级别即可,设置消息延迟级别时有以下3种情况:
设置消息延迟级别等于0时,则该消息为非延迟消息。
设置消息延迟级别大于等于1并且小于等于18时,消息延迟特定时间,如:设置消息延迟级别等于1,则延迟1s;设置消息延迟级别等于2,则延迟5s,以此类推。
设置消息延迟级别大于18时,则该消息延迟级别为18,如:设置消息延迟级别等于20,则延迟2h。
延迟消息示例
首先,写一个消费者,用于消费延迟消息:
再写一个延迟消息的生产者,用于发送延迟消息:
运行生产者以后,就会发送一条延迟消息:
10秒钟后,消费者收到的这条延迟消息:
延迟消息的原理分析
以下分析的RocketMQ源码的版本号是4.7.1,版本不同源码略有差别。
CommitLog
在org.apache.rocketmq.store.CommitLog中,针对延迟消息做了一些处理:
可以看到,每一个延迟消息的主题都被暂时更改为SCHEDULE_TOPIC_XXXX,并且根据延迟级别延迟消息变更了新的队列Id。接下来,处理延迟消息的就是org.apache.rocketmq.store.schedule.ScheduleMessageService。
ScheduleMessageService
ScheduleMessageService是由org.apache.rocketmq.store.DefaultMessageStore进行初始化的,初始化包括构造对象和调用load方法。最后,再执行ScheduleMessageService的start方法:
遍历所有延迟级别,根据延迟级别获得对应队列的偏移量,如果偏移量不存在,则设置为0。然后为每个延迟级别创建定时任务,第一次启动任务延迟为1秒,第二次及以后的启动任务延迟才是延迟级别相应的延迟时间。
然后,又创建了一个定时任务,用于持久化每个队列消费的偏移量。持久化的频率由flushDelayOffsetInterval属性进行配置,默认为10秒。
定时任务
ScheduleMessageService的start方法执行之后,每个延迟级别都创建自己的定时任务,这里的定时任务的具体实现就在DeliverDelayedMessageTimerTask类之中,它核心代码是executeOnTimeup方法之中,我们来看一下主要部分:
如果没有获取到对应的消息队列,则在DELAY_FOR_A_WHILE(默认为100)毫秒后再执行任务。如果获取到了,就继续执行下面操作:
如果没有获取到有效消息,则在DELAY_FOR_A_WHILE(默认为100)毫秒后再执行任务。如果获取到了,就继续执行下面操作:
如果当前消息不到消费的时间,则在countdown毫秒后再执行任务。如果到消费的时间,就继续执行下面操作:
如果获取到消息,则继续执行下面操作:
清除了消息的延迟级别,并且恢复了真正的消息主题和队列Id,重新把消息发送到真正的消息队列上以后,消费者就可以立即消费了。
总结
经过以上对源码的分析,可以总结出延迟消息的实现步骤:
如果消息的延迟级别大于0,则表示该消息为延迟消息,修改该消息的主题为SCHEDULE_TOPIC_XXXX,队列Id为延迟级别减1。
消息进入SCHEDULE_TOPIC_XXXX的队列中。
定时任务根据上次拉取的偏移量不断从队列中取出所有消息。
根据消息的物理偏移量和大小再次获取消息。
根据消息属性重新创建消息,清除延迟级别,恢复原主题和队列Id。
重新发送消息到原主题的队列中,供消费者进行消费。
5. win运行内存占用越来越大?
用户的描述来看,内存占用“持续增长”是泄露的表现,而最严重的结果就是导致溢出崩溃。不过一般情况下,这种泄露也有可能自行解决,也就是增长到一定程度后能够回落到正常水平。对于问题较为严重的用户,可以通过建立如下内容的注册表文件来解决:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesTimeBroker]
"Start"=dword:00000003
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesSysMain]
"DisplayName"="Superfetch"
"Start"=dword:00000003
6. 联想笔记本t410s按什么键进入bios?
1、修改Cortana资源占用:按Windows按钮,输入regedit,打开注册表编辑器,找到以下路径:HKEY_LOCAL_MACHINE—SYSTEM—CurrentControlSet—Services—TimeBroker,在右侧找到start,将其值从3改为4。
2、关闭P2P分享:打开Windows设置—更新和安全—Windows更新—高级选项—选择如何提供更新,将“更新来自多个位置”关闭即可。
3、关闭Windows聚焦:打开Windows设置—个性化—锁屏界面,选择其他背景模式。
4、关闭Windows通知:打开系统设置—系统—通知和操作,关闭“显示有关Windows的提示”。
7. Mb通讯是什么意思?
MB通讯是指主板(Motherboard)通讯,是指现代计算机硬件中不同设备之间通过主板相互通讯的方式。主板作为计算机硬件中的重要组成部分,连接了许多硬件设备,如CPU、内存、硬盘、显卡等,并通过各种接口、插座、总线等实现这些设备之间的数据传输与通信。
MB通讯是现代计算机中数据通信的基础,没有MB通讯的支持,设备间的信息无法传递,也无法协同工作。通过MB通讯,计算机的所有硬件设备可以高效地协同工作,达到更高效、更高性能的计算体验。关于MB通讯的性能与速度也是人们关注的焦点,不同主板的设计、总线标准、信号传输速率等因素都会影响MB通讯的质量和速度。
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!
1. sbroker,Java程序员跳槽如何快速全面复习面试题?
建议自己整理答案,这样有印象,也能节省时间。
2021年很多公司都在问黑红树,数据结构与算法一定要看哦~
Java基础⾯向对象和⾯向过程的区别Java 语⾔有哪些特点?关于 JVM JDK 和 JRE 最详细通俗的解答Oracle JDK 和 OpenJDK 的对⽐Java 和 C++的区别?什么是 Java 程序的主类 应⽤程序和⼩程序的主类有何不同?Java 应⽤程序与⼩程序之间有哪些差别?字符型常量和字符串常量的区别?构造器 Constructor 是否可被 override?重载和重写的区别Java ⾯向对象编程三⼤特性: 封装 继承 多态String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?⾃动装箱与拆箱在⼀个静态⽅法内调⽤⼀个⾮静态成员为什么是⾮法的?在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤import java 和 javax 有什么区别?接⼝和抽象类的区别是什么?成员变量与局部变量的区别有哪些?创建⼀个对象⽤什么运算符?对象实体与对象引⽤有何不同?什么是⽅法的返回值?返回值在类的⽅法⾥的作⽤是什么?⼀个类的构造⽅法的作⽤是什么? 若⼀个类没有声明构造⽅法,该程序能正确执⾏吗? 为什么?构造⽅法有哪些特性?静态⽅法和实例⽅法有何不同对象的相等与指向他们的引⽤相等,两者有什么不同?在调⽤⼦类构造⽅法之前会先调⽤⽗类没有参数的构造⽅法,其⽬的是?== 与 equals(重要)hashCode 与 equals (重要)为什么 Java 中只有值传递?简述线程、程序、进程的基本概念。以及他们之间关系是什么?线程有哪些基本状态?关于 fifinal 关键字的⼀些总结Java 中的异常处理Java 序列化中如果有些字段不想进⾏序列化,怎么办?获取⽤键盘输⼊常⽤的两种⽅法Java 中 IO 流常⻅关键字总结:static,fifinal,this,super深拷⻉ vs 浅拷⻉Java集合说说List,Set,Map三者的区别?Arraylist 与 LinkedList 区别?ArrayList 与 Vector 区别呢?为什么要⽤Arraylist取代Vector呢?说⼀说 ArrayList 的扩容机制吧2.2.5 HashMap 和 Hashtable 的区别HashMap 和 HashSet区别HashSet如何检查重复HashMap的底层实现HashMap 的⻓度为什么是2的幂次⽅HashMap 多线程操作导致死循环问题ConcurrentHashMap 和 Hashtable 的区别ConcurrentHashMap线程安全的具体实现⽅式/底层具体实现comparable 和 Comparator的区别集合框架底层数据结构总结如何选⽤集合?多线程什么是线程和进程?请简要描述线程与进程的关系,区别及优缺点?说说并发与并⾏的区别?为什么要使⽤多线程呢?使⽤多线程可能带来什么问题?说说线程的⽣命周期和状态?什么是上下⽂切换?什么是线程死锁?如何避免死锁?说说 sleep() ⽅法和 wait() ⽅法区别和共同点?为什么我们调⽤ start() ⽅法时会执⾏ run() ⽅法,为什么我们不能直接调⽤ run() ⽅法?说⼀说⾃⼰对于 synchronized 关键字的了解说说⾃⼰是怎么使⽤ synchronized 关键字,在项⽬中⽤到了吗synchronized关键字最主要的三种使⽤⽅式讲⼀下 synchronized 关键字的底层原理说说 JDK1.6 之后的synchronized 关键字底层做了哪些优化,可以详细介绍⼀下这些优化吗谈谈 synchronized和ReentrantLock 的区别讲⼀下Java内存模型说说 synchronized 关键字和 volatile 关键字的区别ThreadLocal原理及ThreadLocal 内存泄露问题实现Runnable接⼝和Callable接⼝的区别执⾏execute()⽅法和submit()⽅法的区别是什么呢?线程池原理分析能不能给我简单介绍⼀下 AtomicInteger 类的原理AQS 原理分析JVM介绍下 Java 内存区域(运⾏时数据区)说⼀下Java对象的创建过程对象的访问定位有哪两种⽅式?说⼀下堆内存中对象的分配的基本策略Minor Gc和Full GC 有什么不同呢?如何判断对象是否死亡?(两种⽅法)简单的介绍⼀下强引⽤,软引⽤,弱引⽤,虚引⽤如何判断⼀个常量是废弃常量?如何判断⼀个类是⽆⽤的类?垃圾收集有哪些算法,各⾃的特点?HotSpot为什么要分为新⽣代和⽼年代?常见的垃圾回收器有哪些?类加载过程网络OSI与TCP/IP各层的结构与功能,都有哪些协议?TCP 三次握⼿和四次挥⼿(⾯试常客)TCP,UDP 协议的区别TCP 协议如何保证可靠传输ARQ协议滑动窗⼝和流量控制拥塞控制在浏览器中输⼊url地址 ijk 显示主⻚的过程(⾯试常客)状态码各种协议与HTTP协议之间的关系HTTP⻓连接,短连接HTTP是不保存状态的协议,如何保存⽤户状态?Cookie的作⽤是什么?和Session有什么区别?HTTP 1.0和HTTP 1.1的主要区别是什么?URI和URL的区别是什么?HTTP 和 HTTPS 的区别?数据结构Java 集合框架中的队列 QueueHashSet 和 TreeSet 底层数据结构List的常⻅实现类ArrayList 和 LinkedList 源码学习Map⼆叉树完全⼆叉树满⼆叉树堆⼆叉查找树(BST)平衡⼆叉树(Self-balancing binary search tree)红⿊树B-,B+,B*树LSM 树算法⼏道常⻅的字符串算法题总结最⻓公共前缀回⽂串两数相加翻转链表链表中倒数第k个节点删除链表的倒数第N个节点合并两个排序的链表剑指offer部分编程题跳台阶问题变态跳台阶问题⼆维数组查找替换空格题⽬描述:数值的整数次⽅调整数组顺序使奇数位于偶数前⾯链表中倒数第k个节点反转链表合并两个排序的链表⽤两个栈实现队列栈的压⼊,弹出序列数据库MySQL存储引擎字符集及校对规则索引查询缓存的使⽤什么是事务?事物的四⼤特性(ACID)并发事务带来哪些问题?事务隔离级别有哪些?MySQL的默认隔离级别是?锁机制与InnoDB锁算法⼤表优化解释⼀下什么是池化设计思想。什么是数据库连接池?为什么需要数据库连接池?分库分表之后,id 主键如何处理?⼀条SQL语句在MySQL中如何执⾏的MySQL⾼性能优化规范建议⼀条SQL语句执⾏得很慢的原因有哪些?Redis为什么要⽤ redis/为什么要⽤缓存为什么要⽤ redis ⽽不⽤ map/guava 做缓存?redis 的线程模型redis 和 memcached 的区别redis 常⻅数据结构以及使⽤场景分析redis 设置过期时间redis 内存淘汰机制(MySQL⾥有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进⾏恢复)redis 事务缓存雪崩和缓存穿透问题解决⽅案如何解决 Redis 的并发竞争 Key 问题如何保证缓存与数据库双写时的数据⼀致性?Spring什么是 Spring 框架?列举⼀些重要的Spring模块?@RestController vs @Controller讲一下 Spring IoC 和 AOPSpring 中的 bean 的作⽤域有哪些?Spring 中的单例 bean 的线程安全问题了解吗?@Component 和 @Bean 的区别是什么?将⼀个类声明为Spring的 bean 的注解有哪些?Spring 中的 bean ⽣命周期?SpringMVC ⼯作原理了解吗?Spring 框架中⽤到了哪些设计模式?Spring 事务中的隔离级别有哪⼏种?Spring 事务中哪⼏种事务传播⾏为?@Transactional(rollbackFor = Exception.class)注解了解吗?如何使⽤JPA在数据库中⾮持久化⼀个字段?MyBatis#{}和${}的区别是什么?Xml 映射⽂件中,除了常⻅的 select|insert|updae|delete 标签之外,还有哪些标签?最佳实践中,通常⼀个 Xml 映射⽂件,都会写⼀个 Dao 接⼝与之对应,请问,这个Dao接⼝的⼯作原理是什么?Dao接⼝⾥的⽅法,参数不同时,⽅法能重载吗?Mybatis 是如何进⾏分⻚的?分⻚插件的原理是什么?简述 Mybatis 的插件运⾏原理,以及如何编写⼀个插件。Mybatis 执⾏批量插⼊,能返回数据库主键列表吗?Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述⼀下动态 sql 的执⾏原理不?Mybatis 是如何将 sql 执⾏结果封装为⽬标对象并返回的?都有哪些映射形式?Mybatis 能执⾏⼀对⼀、⼀对多的关联查询吗?都有哪些实现⽅式,以及它们之间的区别。Mybatis 是否⽀持延迟加载?如果⽀持,它的实现原理是什么?Mybatis 的 Xml 映射⽂件中,不同的 Xml 映射⽂件,id 是否可以重复?Mybatis 中如何执⾏批处理?Mybatis 都有哪些 Executor 执⾏器?它们之间的区别是什么?Mybatis 中如何指定使⽤哪⼀种 Executor 执⾏器?Mybatis 是否可以映射 Enum 枚举类?Mybatis 映射⽂件中,如果 A 标签通过 include 引⽤了 B 标签的内容,请问,B 标签能否定义在 A 标签的后⾯,还是说必须定义在 A 标签的前⾯?简述 Mybatis 的 Xml 映射⽂件和 Mybatis 内部数据结构之间的映射关系?为什么说 Mybatis 是半⾃动 ORM 映射⼯具?它与全⾃动的区别在哪⾥?KafkaKafka 是什么?主要应⽤场景有哪些?和其他消息队列相⽐,Kafka的优势在哪⾥?队列模型了解吗?Kafka 的消息模型知道吗?什么是Producer、Consumer、Broker、Topic、Partition?Kafka 的多副本机制了解吗?带来了什么好处?Zookeeper 在 Kafka 中的作⽤知道吗?Kafka 如何保证消息的消费顺序?Kafka 如何保证消息不丢失Kafka 如何保证消息不重复消费NettyNetty 是什么?为什么要⽤ Netty?Netty 应⽤场景了解么?Netty 核⼼组件有哪些?分别有什么作⽤?EventloopGroup 了解么?和 EventLoop 啥关系?Bootstrap 和 ServerBootstrap 了解么?NioEventLoopGroup 默认的构造函数会起多少线程?Netty 线程模型了解么?Netty 服务端和客户端的启动过程了解么?什么是 TCP 粘包/拆包?有什么解决办法呢?Netty ⻓连接、⼼跳机制了解么?Netty 的零拷⻉了解么?尚硅谷Java大厂面试题第3季,跳槽必刷题目+必扫技术盲点(周阳主讲)_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1Hy4y1B78T?
尚硅谷Java大厂面试题第2季,面试必刷,跳槽大厂神器_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV18b411M7xz?
尚硅谷经典Java面试题第一季(java面试精讲)_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1Eb411P7bP?
强烈推荐一个网站:
Java面试题-帮助你通过Java面试 (zwmst.com)
https://zwmst.com/
2. with的复合宾语结构?
with后接复合宾语是英语中一种很有用的结构,也是各类考试的一个重要考点,归纳起来该结构主要具有以下几种类型:
1. with+宾语+形容词
例句:She was cycling along with her bicycle basket full of shopping. 她骑着自行车,车筐装满了买的东西。
2. with+宾语+副词
例句:With Richard Migliore aboard, he won the cup at a gallop. 由骑手理查德·米廖雷策骑,它一个快跳赢得了杯赛冠军。
3. with+宾语+名词
例句:He died with his daughter yet a schoolgirl. 他去世时,女儿还是个小学生。
4. with+宾语+介词短语
例句:The front door closed with a crash behind him. 前门在他身后砰的一声关上了。
5. with+宾语+现在分词(短语)
例句:With exams approaching, it's a good idea to review your class notes. 随着考试的临近,复习一下你的课堂笔记是个不错的主意。
6. with+宾语+过去分词(短语)
例句:He stood with knees slightly bent. 他站着,双膝略略弯曲。
7. with+宾语+不定式(短语)
例句:He was a high-earning broker with money to burn. 他是高收入的经纪人,有花不完的钱。
3. 马来西亚RHB银行的全称是什么?
Rashid Hussein Bank (拉希德侯赛因银行)简介:RHB Banking Group1983 – Rashid Hussain secures a broker’s licence and sets up Rashid Hussain Securities Sdn Bhd 1996 – Rashid Hussain acquires a 75% stake in Kwong Yik Bank Berhad 1997 – Merger of Kwong Yik Bank Berhad and DCB Bank Berhad to form RHB Bank, then Malaysia’s third largest financial services group 1999 – Merger of Sime Bank Berhad and RHB Bank Berhad to form the RHB Banking Group 2003 – Merger of RHB Bank Berhad with Bank Utama Berhad into the RHB Banking Group
4. rocketmq任意时间队列实现原理?
RocketMQ是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠、万亿级容量、灵活可伸缩的消息发布与订阅服务。
它前身是MetaQ,是阿里基于Kafka的设计使用Java进行自主研发的。在2012年,阿里将其开源, 在2016年,阿里将其捐献给Apache软件基金会(Apache Software Foundation,简称为ASF),正式成为孵化项目。2017 年,Apache软件基金会宣布RocketMQ已孵化成为 Apache顶级项目(Top Level Project,简称为TLP ),是国内首个互联网中间件在 Apache上的顶级项目。
延迟消息
生产者把消息发送到消息队列中以后,并不期望被立即消费,而是等待指定时间后才可以被消费者消费,这类消息通常被称为延迟消息。
在RocketMQ中,支持延迟消息,但是不支持任意时间精度的延迟消息,只支持特定级别的延迟消息。如果要支持任意时间精度,不能避免在Broker层面做消息排序,再涉及到持久化的考量,那么消息排序就不可避免产生巨大的性能开销。
消息延迟级别分别为1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h,共18个级别。在发送消息时,设置消息延迟级别即可,设置消息延迟级别时有以下3种情况:
设置消息延迟级别等于0时,则该消息为非延迟消息。
设置消息延迟级别大于等于1并且小于等于18时,消息延迟特定时间,如:设置消息延迟级别等于1,则延迟1s;设置消息延迟级别等于2,则延迟5s,以此类推。
设置消息延迟级别大于18时,则该消息延迟级别为18,如:设置消息延迟级别等于20,则延迟2h。
延迟消息示例
首先,写一个消费者,用于消费延迟消息:
再写一个延迟消息的生产者,用于发送延迟消息:
运行生产者以后,就会发送一条延迟消息:
10秒钟后,消费者收到的这条延迟消息:
延迟消息的原理分析
以下分析的RocketMQ源码的版本号是4.7.1,版本不同源码略有差别。
CommitLog
在org.apache.rocketmq.store.CommitLog中,针对延迟消息做了一些处理:
可以看到,每一个延迟消息的主题都被暂时更改为SCHEDULE_TOPIC_XXXX,并且根据延迟级别延迟消息变更了新的队列Id。接下来,处理延迟消息的就是org.apache.rocketmq.store.schedule.ScheduleMessageService。
ScheduleMessageService
ScheduleMessageService是由org.apache.rocketmq.store.DefaultMessageStore进行初始化的,初始化包括构造对象和调用load方法。最后,再执行ScheduleMessageService的start方法:
遍历所有延迟级别,根据延迟级别获得对应队列的偏移量,如果偏移量不存在,则设置为0。然后为每个延迟级别创建定时任务,第一次启动任务延迟为1秒,第二次及以后的启动任务延迟才是延迟级别相应的延迟时间。
然后,又创建了一个定时任务,用于持久化每个队列消费的偏移量。持久化的频率由flushDelayOffsetInterval属性进行配置,默认为10秒。
定时任务
ScheduleMessageService的start方法执行之后,每个延迟级别都创建自己的定时任务,这里的定时任务的具体实现就在DeliverDelayedMessageTimerTask类之中,它核心代码是executeOnTimeup方法之中,我们来看一下主要部分:
如果没有获取到对应的消息队列,则在DELAY_FOR_A_WHILE(默认为100)毫秒后再执行任务。如果获取到了,就继续执行下面操作:
如果没有获取到有效消息,则在DELAY_FOR_A_WHILE(默认为100)毫秒后再执行任务。如果获取到了,就继续执行下面操作:
如果当前消息不到消费的时间,则在countdown毫秒后再执行任务。如果到消费的时间,就继续执行下面操作:
如果获取到消息,则继续执行下面操作:
清除了消息的延迟级别,并且恢复了真正的消息主题和队列Id,重新把消息发送到真正的消息队列上以后,消费者就可以立即消费了。
总结
经过以上对源码的分析,可以总结出延迟消息的实现步骤:
如果消息的延迟级别大于0,则表示该消息为延迟消息,修改该消息的主题为SCHEDULE_TOPIC_XXXX,队列Id为延迟级别减1。
消息进入SCHEDULE_TOPIC_XXXX的队列中。
定时任务根据上次拉取的偏移量不断从队列中取出所有消息。
根据消息的物理偏移量和大小再次获取消息。
根据消息属性重新创建消息,清除延迟级别,恢复原主题和队列Id。
重新发送消息到原主题的队列中,供消费者进行消费。
5. win运行内存占用越来越大?
用户的描述来看,内存占用“持续增长”是泄露的表现,而最严重的结果就是导致溢出崩溃。不过一般情况下,这种泄露也有可能自行解决,也就是增长到一定程度后能够回落到正常水平。对于问题较为严重的用户,可以通过建立如下内容的注册表文件来解决:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesTimeBroker]
"Start"=dword:00000003
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesSysMain]
"DisplayName"="Superfetch"
"Start"=dword:00000003
6. 联想笔记本t410s按什么键进入bios?
1、修改Cortana资源占用:按Windows按钮,输入regedit,打开注册表编辑器,找到以下路径:HKEY_LOCAL_MACHINE—SYSTEM—CurrentControlSet—Services—TimeBroker,在右侧找到start,将其值从3改为4。
2、关闭P2P分享:打开Windows设置—更新和安全—Windows更新—高级选项—选择如何提供更新,将“更新来自多个位置”关闭即可。
3、关闭Windows聚焦:打开Windows设置—个性化—锁屏界面,选择其他背景模式。
4、关闭Windows通知:打开系统设置—系统—通知和操作,关闭“显示有关Windows的提示”。
7. Mb通讯是什么意思?
MB通讯是指主板(Motherboard)通讯,是指现代计算机硬件中不同设备之间通过主板相互通讯的方式。主板作为计算机硬件中的重要组成部分,连接了许多硬件设备,如CPU、内存、硬盘、显卡等,并通过各种接口、插座、总线等实现这些设备之间的数据传输与通信。
MB通讯是现代计算机中数据通信的基础,没有MB通讯的支持,设备间的信息无法传递,也无法协同工作。通过MB通讯,计算机的所有硬件设备可以高效地协同工作,达到更高效、更高性能的计算体验。关于MB通讯的性能与速度也是人们关注的焦点,不同主板的设计、总线标准、信号传输速率等因素都会影响MB通讯的质量和速度。
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!