
面试
文章平均质量分 69
纵然间
资深码农,编程十年有余,曾服务于多家互联网大厂。技术精湛,经验丰富,擅长解决复杂问题。对新技术充满热情,致力于创造卓越的产品体验
展开
-
我们通常所说的跨平台指的是什么?是源代码可以跨平台编译,还是指编译好的二进制代码可以跨平台运行
此外,还需要考虑编译器的支持。为了实现二进制代码的跨平台运行,可能需要采用一些特殊的技术手段,如使用虚拟机(如Java虚拟机JVM)或解释器来执行中间代码,或者利用特定的库文件来抽象底层操作系统的差异。因此,在选择跨平台解决方案时,需要综合考虑语言的抽象程度、编译器的支持情况、目标平台的差异以及开发效率和性能需求等多个因素。在实际应用中,为了实现真正的跨平台,往往需要在软件设计和开发阶段就充分考虑到不同平台的特性和差异,并采用适当的技术手段来确保软件能够在多个平台上顺畅运行。原创 2024-05-23 07:46:38 · 330 阅读 · 0 评论 -
算法优化在提升计算效率方面的作用是什么
通过优化数据结构、避免不必要的内存分配和释放,以及利用缓存等技术,可以降低算法的空间复杂度,从而在有限的内存资源下处理更大的数据集。优化后的算法通常具有更低的时间复杂度,这意味着它们能在更短的时间内完成相同的计算任务。例如,通过选择合适的数据结构、减少循环次数或优化递归调用,可以显著降低算法的执行时间。算法优化的过程中,往往会发现和修复原始算法中的错误或潜在问题,从而提高算法的正确性。算法优化还可以使算法具有更好的泛化能力,即能够更好地处理各种不同类型和规模的问题。原创 2024-05-23 07:40:41 · 437 阅读 · 0 评论 -
怎么能看懂公司里面的网络布控
了解公司的网络结构,包括网络拓扑、网络设备(如路由器、交换机、防火墙等)、网络协议等。掌握网络管理的基本知识和技能,包括网络监控、网络配置、网络安全等方面的内容。在公司内部,网络布控通常指的是通过技术手段对网络环境进行监控、管理和控制,以确保网络的稳定、安全和高效运行。通过参与网络布控的实际操作,如配置网络设备、监控网络状态、处理网络故障等,可以加深对网络布控的理解和掌握。通过不断积累经验和提高技能水平,逐渐掌握网络布控的核心知识和技能,为公司的网络环境提供有效的监控和管理。原创 2024-05-21 08:14:31 · 200 阅读 · 0 评论 -
JavaScript为什么无法调试try catch(e)中的e is not defined
如果你使用的是调试工具(如浏览器的开发者工具),并且e看起来未定义,那么可能是调试工具的显示问题或你正在查看的上下文不正确。如果你的try块中包含异步操作(如Promise或setTimeout),并且异常是在异步回调中抛出的,那么它不会被外部的catch块捕获。可能你的try块中的代码并没有抛出异常,或者你的catch块实际上并没有被执行。确保你的代码确实抛出了异常,并且catch块是紧随在try块之后的。有时候,JavaScript中的其他错误(如语法错误或引用错误)可能会干扰你的调试过程。原创 2024-05-20 09:09:10 · 262 阅读 · 0 评论 -
以Linux为主的系统,如何再装一个操作系统
在创建过程中,你需要指定虚拟机的名称、操作系统类型(选择你想要安装的操作系统,如Windows)、分配给虚拟机的内存和存储空间等配置参数。另外,你还可以将系统镜像保存在Linux系统中已分出的分区,安装完成后从该分区拷贝至新系统文件夹中。在Linux系统中,有几个常用的虚拟化软件可供选择,如VirtualBox和VMware Workstation等。在虚拟机创建完成后,你需要为虚拟机提供安装介质,即新操作系统的安装光盘镜像文件(ISO文件)。然后,启动虚拟机并按照新操作系统的安装向导进行安装。原创 2024-05-20 09:06:13 · 633 阅读 · 0 评论 -
MySQL 索引结构解释一下
在创建索引时,需要根据实际的数据和业务需求来选择合适的索引类型和结构。同时,还需要注意索引的维护和管理,以确保索引的有效性和性能。MySQL的索引结构是用于提高数据检索效率的关键组件。原创 2024-05-10 08:48:33 · 234 阅读 · 0 评论 -
如何分析“慢查询”日志进行 SQL索引优化?
分析MySQL的慢查询日志进行SQL/索引优化是一个重要的性能调优步骤。启用慢查询日志:首先,确保MySQL的慢查询日志已启用。这可以通过设置slow_query_log参数为ON来实现。你还可以设置long_query_time来定义哪些查询被认为是“慢”的。默认值是10秒,但你可以根据需要调整它。确保将慢查询日志记录到一个文件中,以便稍后分析。收集和分析日志:使用mysqldumpslow工具来分析慢查询日志。这个工具可以帮助你快速识别最慢的查询。你可以使用不同的排序选项(如按查询时间、锁定时间等)来查原创 2024-05-08 08:29:29 · 340 阅读 · 0 评论 -
Java 内存分配策略?多个线程同时请求内存,如何分配?
由于堆区是共享的,因此需要采取同步措施来确保线程安全,避免多个线程同时修改同一个对象导致数据不一致的问题。Java的垃圾回收器会自动回收不再使用的内存空间,包括堆区中的对象。在Java中,每个线程都有自己独立的栈空间,用于存储该线程的局部变量和方法调用信息。Java 的内存分配策略主要涉及到三种类型的内存区域:静态存储区(也称为方法区)、栈区和堆区。堆由大片的可利用块或空闲块组成,由Java的垃圾回收器来负责回收不再使用的内存。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。原创 2024-05-08 08:24:49 · 560 阅读 · 0 评论 -
悲观锁和乐观锁,应用中的案例,mysql 当中实现,java 中的实现
在Java中,可以使用CAS(Compare-And-Swap)操作或版本号等方式实现乐观锁。悲观锁假设在数据处理过程中,数据冲突发生的概率很大,因此在数据处理开始之前,就先将数据锁住,其他线程/事务在这段时间内不能对数据进行修改。乐观锁假设在数据处理过程中,数据冲突发生的概率很小,因此不会直接锁定数据,而是在数据更新时检查是否有其他线程/事务修改了数据。在MySQL中,可以使用版本号或时间戳来实现乐观锁。更新后,需要判断受影响的行数,如果为0则表示有其他事务已经修改了数据,需要重新读取数据并尝试更新。原创 2024-05-08 08:21:29 · 300 阅读 · 0 评论 -
volatile 关键字的作用?Java 内存模型?
在Java中,每个线程都有自己的工作内存(也称为本地内存),线程会先从主内存中读取共享变量的值到本地内存,然后在本地内存中进行操作,操作完成后再将结果写回主内存。JMM规定了所有的变量都存储在主内存中,每条线程都有自己的工作内存(与前面提到的本地内存概念类似),线程之间无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成。线程在访问某个变量时,会先从主内存中读取这个变量的值到自己的工作内存中,然后在自己的工作内存中进行操作,操作完成后再将结果写回主内存。原创 2024-05-08 08:16:23 · 304 阅读 · 0 评论 -
linkedList 与 arrayList 区别 适用场景
增加和删除:LinkedList在添加和删除元素(add和remove操作)时效率更高,因为它只需要修改相关节点的指针即可,而不需要移动大量数据。而ArrayList在添加或删除元素时,可能需要移动操作点之后的所有元素,以保持数组的连续性。此外,由于LinkedList可以在任意位置进行高效的添加/删除操作,因此也适用于需要有序集合并对元素进行排序的场景。随机访问:ArrayList在随机访问元素(get和set操作)时效率更高,因为元素在内存中是连续存储的,可以通过下标直接访问。但使用相对不那么方便。原创 2024-05-08 08:09:02 · 452 阅读 · 0 评论 -
在自我介绍的时候如何谈成绩
自我介绍时,要突出个人的优点和特长,你可以使用一些小技巧,比如可以介绍自己做过什么项目来验证具有某种能力,也可以适当引用别人的言论,如老师、朋友等的评论来支持自己的描述。人力资源专家指出,自我介绍时的谈吐,应该记住“3P原则”:自信(Positive),个性(Personal),中肯(Pertinent)。回答要沉着,突出个性,强调自己的专业与能力,语气中肯,不要言过其实。在介绍成绩时,说的次序也极为重要,应该把你最想让面试官知道的事情放在前面,这样的事情往往是你的得意之作,也可以让面试官留下深刻的印象。原创 2024-05-07 08:50:36 · 690 阅读 · 0 评论 -
面试时,问你对我们公司有什么想问的吗
在面对不能很好掌控的面试题时,最好的办法,是换个角度,将答案引向自己擅长的领域。比如能把工作做到什么样的程度,公司会用什么形式来回报之类的东西,反正多谈谈自己真实的想法和目前的成就,保持平常心,只要努力做些课前作业,肯定会给人家留下好印象的。因为贵公司是在我印象中是理想的公司,并为我提供了就业的岗位,可以说,我是对公司的企业文化建设及公司的经营情况有着比较客观的了解。如果你真的不知道该如何回答“你对公司有什么想法”这样的问题的话,不妨先说一说你了解的公司概况,让面试官知道,你是有备而来,而不是来打酱油的。原创 2024-05-07 08:44:07 · 605 阅读 · 0 评论 -
简历排版注意事项
2. 一些技术名词不要弄错了大小写比如MySQL不要写成mysql,Java不要写成java。遵循这些注意事项,你可以制作出一份专业、清晰且易于阅读的简历,从而增加获得面试机会的可能性。在简历排版时,有几个关键的注意事项需要牢记,以确保你的简历清晰、易读且专业。3. 中文和数字英文之间加上空格的话看起来会舒服一点;来还是比较忌讳的,所以一定要注意这个细节;1. 尽量简洁,不要太花里胡哨;原创 2024-05-07 08:35:31 · 566 阅读 · 0 评论 -
面试小技巧
通过提前了解公司、行业、岗位等信息,准备好个人简历和自我介绍,以及注意面试过程中的细节问题,你可以更好地展示自己的能力和优势,从而获得心仪的职位。1. 尽量避免主观表述,少一点语义模糊的形容词,尽量要简洁明了,逻辑结构清晰。6. 如果内容过多的话,不需要非把内容压缩到一页,保持排版干净整洁就可以了。5. 项目经历建议以时间倒序排序,另外项目经历不在于多,而在于有亮点。4. 注意简历真实性,一定不要写自己不会的东西,或者带有欺骗性的内容。3. 如果自己的Github比较活跃的话,写上去也会为你加分很多。原创 2024-05-07 08:30:48 · 213 阅读 · 0 评论 -
如果MySQL每次增删改查都要支付一毛钱,那么会发生什么变化?
成本剧增:对于任何使用MySQL进行大量数据操作的应用来说,成本将会急剧上升。即使是小型应用,日常的数据维护成本也可能变得非常高昂。大型应用和电商平台可能会面临数百万甚至数千万的额外费用,这将对他们的财务状况产生重大影响。 开发策略调整:开发者会更加谨慎地设计数据库操作,以避免不必要的CRUD操作,以减少成本。缓存策略将变得更加重要,以减少直接对数据库的访问次数。批量处理和异步操作可能会被更多地采用,以减少实时数据库操作的频率。 数据库设计变化:数据库设计将更加注重数据结构的优化,以减少不必要的复杂性。原创 2024-05-05 10:27:13 · 214 阅读 · 0 评论 -
优化数据库的方法,从 sql 到缓存到 cpu 到操作系统
SQL层面缓存层面CPU层面操作系统层面原创 2024-05-05 09:48:27 · 313 阅读 · 0 评论 -
什么情景下做分表,什么情景下做分库
分表主要适用于数据量过大、数据冷热不均和数据逻辑清晰的场景;而分库则适用于业务独立、跨地域部署和避免单点故障的场景。原创 2024-05-05 09:44:19 · 303 阅读 · 0 评论 -
内存泄漏与内存溢出的区别
内存泄漏(Memory Leak)和内存溢出(Out Of Memory,简称OOM)是编程中常见的两种内存管理问题,但它们之间存在明显的区别。原创 2024-05-05 09:41:52 · 333 阅读 · 0 评论 -
讲讲JVM运行时数据库区和内存模型
JVM(Java Virtual Machine)运行时数据区,也称为JVM内存模型或JVM内存结构,是Java虚拟机在执行Java程序时用于存储数据和状态信息的内存区域。JVM内存模型(JMM,Java Memory Model)是一种抽象的概念,旨在定义程序中变量的访问规则,以及在并发的情况下如何和何时可以看到其他线程引起的变化。JMM还定义了happens-before原则,这是一个全局的顺序规则,决定了一个操作的结果对另一个操作可见的条件。JMM将内存划分为两个区域:主内存区和工作内存区。原创 2024-05-05 09:39:39 · 452 阅读 · 1 评论 -
数据结构和算法对哪些行业用处大?
数据结构和算法在推荐系统中发挥着关键作用,用于构建适当的数据结构来存储用户和物品之间的关系以及相关属性,并通过高效的算法对大规模数据进行处理和计算,从而为用户提供个性化的推荐内容。图的邻接表和邻接矩阵等数据结构被用于表示网络拓扑结构,而Dijkstra算法和Bellman-Ford算法等则被用于计算最短路径或最佳路径。搜索引擎需要构建庞大的数据结构来存储和索引互联网上的网页,并需要高效的算法来对这些数据进行搜索和排序,以找到与用户查询相关的结果。它们被用于存储、检索、更新和排序数据,确保数据库的高效运行。原创 2024-05-04 07:51:43 · 267 阅读 · 0 评论 -
对象一定分配在堆中吗?有没有了解逃逸分析技术?
当变量(或者对象)在方法中分配后,其指针有可能被返回或者被全局引用,这样就会被其他方法或者线程所引用,这种现象称作指针(或者引用)的逃逸(Escape)。通俗点讲,如果一个对象的指针被多个方法或者线程引用时,那么我们就称这个对象的指针发生了逃逸。通过逃逸分析,Java Hotspot编译器能够分析出一个新的对象的引用的使用范围,从而决定是否要将这个对象分配到堆上。这样的好处有,一、减少内存使用,因为不用生成对象头。」 不一定的,JVM通过「逃逸分析」,那些逃不出方法的对象会在栈上分配。原创 2024-05-03 09:20:38 · 234 阅读 · 0 评论 -
JVM 内存结构
线程私有的,与线程在同一时间创建。栈的大小可以是固定的,或者是动态扩展的。首先通过编译器把 Java源代码转换成字节码,Class loader(类装载)再把字节码加载到内存中,将其放在运行时数据区的方法区内,而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execution Engine),将字节码翻译成底层系统指令,再交由 CPU 去执行,而这个过程中需要调用其他语言的本地库接口(Native Interface)来实现整个程序的功能。原创 2024-05-03 09:08:42 · 733 阅读 · 2 评论 -
tomcat常见考核知识点
Tomcat 服务器Apache软件基金会项目中的一个核心项目,是一个免费的开放源代码的Web 应用服务器(Servlet容器),属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。reloadable :这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重启tomcat的情况下改变应用程序。启动,关闭和其他脚本。原创 2024-05-01 09:22:16 · 367 阅读 · 0 评论 -
网络常见知识点
1,HTTP 响应码有哪些?分别代表什么含义?200:成功,Web 服务器成功处理了客户端的请求。301:永久重定向,当客户端请求一个网址的时候,Web 服务器会将当前请求重定向到另一个网址,搜索引擎会抓取重定向后网页的内容并且将旧的网址替换为重定向后的网址。302:临时重定向,搜索引擎会抓取重定向后网页的内容而保留旧的网址,因为搜索引擎认为重定向后的网址是暂时的。400:客户端请求错误,多为参数不合法导致 Web 服务器验参失败。404:未找到,Web 服务器找不到资源。500:Web 服务器错误,服务器原创 2024-05-01 09:12:55 · 295 阅读 · 3 评论 -
Java日志管理梳理
能工作的,必须搭配其他具体的日志实现方案,比如 apache 的 org.apache.log4j.Logger,jdk 自带。logback-core 是其它模块的基础设施,其它模块基于它构建,显然,logback-core 提供了一些关键的。Log4j 是 Apache 的一个开源项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、简单地说,Logback 是一个 Java 领域的日志框架。当输出时,只有级别高过配置中规定的 级别的信息才能真正的输出,这样就很方便的来配置不同情况。原创 2024-04-30 13:37:18 · 550 阅读 · 0 评论 -
Java网络相关面试真题讲解
与传统的多线程/多进程模型比,I/O 多路复用的最大优势是系统开销小,系统不需要创建新的额外进程或者线程,也不需要维护这些进程和线程的运行,降低了系统的维护工作量,节省了系统资源。4. 传输层:定义了一些传输数据的协议和端口号(WWW 端口 80 等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 QQ 聊天数据就是通过这种方式传输的)。这是由于 TCP 的半关闭造成的。原创 2024-04-30 11:33:09 · 499 阅读 · 0 评论 -
spring 常见面试真题
这意味着不会出现其他的 Spring 配置类型(比如声明的方式或基于 Java Class 的配置方式)Spring 的 XML 配置方式是使用被 Spring 命名空间的所支持的一系列的 XML 标签来实现的。在传统的编程方式中,业 务逻辑的流程是由应用程序中的早已被设定好关联关系的对象来决定的。首先,首先会尝试找合适的带参数的构造器,如果找到的话就是用构造器自动装配,如果在 bean 内部没有找到相应的构造器或者是无参构造器,容器就会自动选择 byTpe 的自动装配方式。原创 2024-04-30 11:11:41 · 522 阅读 · 0 评论 -
数据量大的时候,为什么要使用 redis 而不用 mysql?
Redis在读取和写入数据方面具有显著的速度优势,尤其适用于需要频繁访问数据的场景。而MySQL在面临大量并发读写请求时,可能需要通过更复杂的锁机制和并发控制来确保数据的一致性,这可能会降低其性能。通过将热点数据存储在Redis中,可以避免频繁访问MySQL数据库,从而降低数据库的负载和响应延迟。这种缓存机制在处理大量数据时尤为有效,可以显著提高系统的性能和稳定性。在数据量大的情况下,使用Redis而不是MySQL的原因主要涉及到Redis的内存存储、高并发读写能力、丰富的数据结构以及缓存机制等多个方面。原创 2024-04-29 10:38:43 · 407 阅读 · 0 评论 -
linux 设置只读文件夹,其中的文件和文件夹不允许做任何修改,不执行递归的情况下怎么实现?
如果您想确保myfolder中的所有现有文件和子文件夹也都是只读的,您需要手动或通过脚本为每个文件和子文件夹设置适当的权限。如果您想递归地更改所有子文件和子文件夹的权限,您需要使用-R选项,但这与您的需求不符。在Linux中,如果您想设置文件夹为只读,但不想递归地设置其内部文件和子文件夹的权限,您可以仅修改该文件夹本身的权限。所有者、组成员和其他用户都可以读取该文件夹的内容(例如,列出其中的文件和子文件夹)。但是,他们都不能修改文件夹的内容(例如,添加或删除文件或子文件夹)。原创 2024-04-26 13:51:49 · 818 阅读 · 0 评论 -
Coding持续集成可以配置安全插件扫描把扫描结果自动写入缺陷管理吗
在Coding研发管理系统中,通过配置代码扫描插件,可以自定义触发代码扫描的条件,从而及时发现潜藏的代码缺陷、安全漏洞以及不规范代码,把控构建产物质量。同时,Coding的缺陷管理功能涉及缺陷生命周期管理,包括缺陷创建、修复、验证等流程,目的是减少软件缺陷出现的几率,降低因软件缺陷带来的负面影响。因此,结合使用代码扫描插件和缺陷管理功能,可以在持续集成阶段实现对错误问题与致命问题的有效管控,并将扫描结果自动写入缺陷管理,为研发团队提供一套快速反馈快速解决机制的功能。原创 2024-04-25 09:35:38 · 481 阅读 · 0 评论 -
sql语句中的left join和right join反着写的话,不添加其他筛选条件结果集有区别吗?例如:select * from a left join b on a.id = b.id;
相反,如果我们使用RIGHT JOIN并添加相同的WHERE条件,结果可能会有所不同,特别是如果departments表中有IT部门以外的其他部门,而这些部门在employees表中没有对应的记录。首先,回答您的问题:在SQL中,LEFT JOIN和RIGHT JOIN在逻辑上是相反的,但它们在某些情况下可以产生相同的结果集,特别是在没有额外的筛选条件(WHERE子句)时,并且当两个表中的所有记录都参与连接时。而RIGHT JOIN则会包含右表(b)的所有记录,即使左表(a)中没有匹配项。原创 2024-04-24 14:36:01 · 547 阅读 · 0 评论 -
为什么C++没有annotation?
尽管C++没有内置的注解功能,但通过上述方法和其他技术,开发者仍然可以在C++中实现许多类似的功能。C++本身并没有直接提供名为“annotation”的特定语言特性,这与其他一些语言(如Java或Python)中的注解(annotation)或装饰器(decorator)有所不同。特定的编程约定和模式:在没有语言级别注解支持的情况下,开发者可能会采用一些特定的编程约定和模式来添加元数据或执行某些操作。模板元编程:C++的模板元编程可以在编译时执行复杂的计算和操作,这可以用来添加一些类似注解的功能。原创 2024-04-24 14:30:29 · 426 阅读 · 0 评论 -
丰巢面试真题讲解系列-NO5
CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。PROPAGATION_NOT_SUPPORTED以⾮事务⽅式执⾏操作,如果当前存在事务,就把当前事务挂起。原创 2024-04-22 11:09:39 · 970 阅读 · 0 评论 -
丰巢面试真题讲解系列-NO4
中⼼化:中⼼化的设计思想在⾃然界和⼈类⽣活中是如此的普遍和⾃然,它的设计思想也很简单,分布式集群中的节点按照⻆⾊分⼯,可以分为两种⻆⾊--“领导”和“⼲活的”,中⼼化的⼀个思路就是“领导”通常分发任务并监督“⼲活的”,谁空闲了就给它安排任务,谁病倒了就⼀脚踢出去,然后把它的任务分给其他⼈;此种情况是强⼀致性的。11.在使⽤索引字段作为条件时,如果该索引是复合索引,那么必须使⽤到该索引中的第⼀个字段作为条件时才能保证系统使⽤该索引,否则该索引将不会被使⽤,并且应尽可能的让字段顺序与索引顺序相⼀致。原创 2024-04-21 09:17:36 · 709 阅读 · 0 评论 -
丰巢面试真题讲解系列-NO3
⽽往往最常读取的,也就是读取次数最多的,所以利⽤好LRU算法,我们能够提供对热点数据的缓存效率,能够提⾼缓存服务的内存使⽤率。a. 原理:冒泡排序其实就是逐⼀⽐较交换,进⾏⾥外两次循环,外层循环为遍历所有数字,逐个确定每个位置,⾥层循环为确定了位置后,遍历所有后⾯没有确定位置的数字,与该位置的数字进⾏⽐较,只要⽐该位置的数字⼩,就和该位置的数字进⾏交换.c. 特点:冒泡排序在我们实际开发中,使⽤的还是⽐较少的.它更加适合数据规模⽐较少的时候,因为它的效率是⽐较低的,但是优点是逻辑简单,容易让我们记得.原创 2024-04-21 09:13:59 · 954 阅读 · 0 评论 -
丰巢面试真题讲解系列-NO2
3、⼯⼚⽅法作⽤:ThreadPoolExecutor类就是Executor的实现类,但ThreadPoolExecutor在使⽤上并不是那么⽅便,在实例化时需要传⼊很多歌参数,还要考虑线程的并发数等与线程池运⾏效率有关的参数,所以官⽅建议使⽤Executors⼯程类来创建线程池对象。a. 系统之间的耦合度⼤⼤降低,可以独⽴开发、独⽴部署、独⽴测试,系统与系统之间的边界⾮常明确,排错也变得相当容易,开发效率⼤⼤提升。2、应⽤:当读>写时使⽤,适合做缓存,在程序启动时初始化,之后可以被多个线程访问;原创 2024-04-21 09:08:32 · 850 阅读 · 0 评论 -
丰巢面试真题讲解系列-NO1
这⾥使⽤那个经典的烧开⽔例⼦,这⾥假设⼀个烧开⽔的场景,有⼀排⽔壶在烧开⽔,BIO的⼯作模式就是, 叫⼀个线程停留在⼀个⽔壶那,直到这个⽔壶烧开,才去处理下⼀个⽔壶。如果还拿烧开⽔来说,NIO的做法是叫⼀个线程不断的轮询每个⽔壶的状态,看看是否有⽔壶的状态发⽣了改变,从⽽进⾏下⼀步的操作。1、传统的⼀主n从分布式系统,容易发⽣单点故障,传统解决⽅式是增加⼀个备⽤节点,定期给主节点发送Ping包,主节点回复ack,但是如果⽹络原因ack丢失,那么会出现两个主节点,造成数据混乱。2、nio同步⾮阻塞式I/O;原创 2024-04-21 09:06:33 · 478 阅读 · 0 评论 -
Linux技术问答系列-NO7
(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。使用命令 whatis 可以先出显示出这个命令的用法简要,比如,你可以使用 whatiszcat 去查看‘zcat’的介绍以及使用简要。du 命令是用户级的程序,它不考虑 Meta Data,而 df命令则查看文件系统的磁盘分配图并考虑 Meta Data。whereis [-bfmsu][-B ...][-M ...][-S ...][文件...]-f 不显示文件名前的路径名称。原创 2024-04-20 09:20:47 · 977 阅读 · 0 评论 -
Linux技术问答系列-NO6
方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]二.删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?一.复制文件用哪个命令?如果需要连同文件夹一块复制呢?是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印。五.Grep 命令有什么用?wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。三.Linux 下命令有哪几种可使用的通配符?四.用什么命令对一个文件的内容进行统计?原创 2024-04-20 09:17:17 · 242 阅读 · 0 评论