自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(216)
  • 收藏
  • 关注

原创 单例模式原理及代码实现

与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心实例化方式。内存中只有一个实例,减少内存开销,尤其是频繁创建和销毁实例时。其实就是将构造方法私有化,只有一个公共方法返回一个实例对象。确保一个类只有一个实例,提供一个全局访问点访问这个实例。饿汉式线程安全:在创建变量的时候就进行初始化。

2024-07-21 09:06:15 127

原创 jvm-并发-java基础-数据结构小测

比较然后交换 它主要有三个参数 一个预期值 一个新值 还有一个原数据的地址进行cas操作时他会从原地址取出数据与预期值进行比较,如果相同就将值修改成新值,说明操作成功,不一样就失败。AQS是一个灵活且高效的同步工具,它为创建各种同步器(如锁、信号量、读写锁等)提供了基础框架。通过管理同步状态、线程队列、节点状态等,它能够实现复杂的同步控制需求。通过使用AQS,开发者可以避免重复造轮子,提高代码的可靠性和效率。提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

2024-07-19 17:55:20 337

原创 ThreadLocal为什么会导致内存泄漏?如何解决?

为了解决这个问题,ThreadLocalMap使用了弱引用,这样ThreadLocal对象就可以在下次GC时被垃圾回收掉了,可以很大程度上避免因为ThreadLocal的使用导致的OOM问题,但是没法彻底避免。ThreadLocalMap的key就是ThreadLocal对象,他有两个引用源,一个是栈上的ThreadLocal引用,一个是ThreadLocalMap中的Key对他的引用。value只有一条引用,就是从Thread对象过来的。

2024-07-19 14:49:51 167

原创 Threadlocal常见知识点以及面试题【超详细】

用户身份信息存储:一般网页啥的不都是得登陆之后才能访问好多数据吗,这样我们可以登陆成功之后九八用户信息存储到ThreadLocal中,这样后续所有流程中,需要获取用户信息的,直接取ThreadLocal中获取就可以了。2、在线程中传递数据,线程执行过程中,ThreadLocal的数据一直都在,所以可以把前面的数据放在ThreadLocal中,然后再后面用的时候再取出来用,可以避免一直通过参数传递数据。并且数据在线程内共享,线程外互斥。PageHelper分页。

2024-07-19 14:35:10 178

原创 JAVA并发重要知识点总结思维导图

2024-07-19 14:05:36 380

原创 简单实现超时等待

如果REMAINING小于等于0,表示已经超时,直接退出,否则将 继续执行wait(REMAINING)。这里需要注意 result是方法外部定义好的一个对象,用他是否为空和是否超过等待时间两方面判定是否需要继续等待.我这里设置的是进入循环之后直接等待 设定的超时等待时间的时间,保证下一次不用等待直接尝试获取锁.开发人员经常会遇到这样的方法调用场景:调用一个方法时等待一段时间(一般来说是给 定一个时间段),如果该方法能够在给定的时间段之内得到结果,那么将结果立刻返回,反之, 超时返回默认结果。

2024-07-19 08:07:00 229

原创 利用等待通知机制实现一个阻塞队列,长度有限,使用多个线程进行数据的添加和取出,当队列为空或者已满时都能正确地阻塞线程,

这两个方法其实很简单,就是先定一个队列和一个整型数据 capacity(用于存储队列的长度),然后等待通知机制,分别写两个加锁的方法一个添加,一个取出,如果调用添加方法的线程获取到锁,会先判断当前阻塞队列是否满了,满了就进入等待队列,等待被唤醒,如果不满,就添加数据然后唤醒所有出于等待队列的线程(使那些因为队列为空无法取得数据而进入等待状态的线程能够从新加入争夺锁的状态),同理取出方法也一样,只不过他的判断语句是判断是否为空.

2024-07-19 07:41:13 112

原创 git常用的命令,以及从gitee上拉取项目,修改之后在重新上传的整个流程

克隆项目进入项目目录切换分支拉取最新代码修改代码:在编辑器中进行修改查看修改内容git status和git diff添加修改到暂存区或git add .提交修改git commit -m "描述你的修改"推送到远程仓库创建Pull Request:在Gitee上提交PR希望这些信息对你有帮助!如果有其他问题或需要更详细的解释,请随时告诉我。

2024-07-18 00:00:54 947

原创 JAVA并发常见面试题5

实现原理AQS通过内部维护的状态(state)和FIFO队列(等待队列)实现线程的阻塞和唤醒。当某个线程获取锁失败时,会将其加入到等待队列中阻塞,并在释放锁时唤醒队列中的等待线程。

2024-07-17 08:43:08 419

原创 如何理解李彦宏说的“不要卷模型,要卷应用”

综上所述,AI技术在实际应用中的发展趋势和挑战需要平衡技术创新和实际价值的结合,避免超级应用陷阱,同时推动个性化智能体的发展,将为产业和个人带来更多的创新机会和增长空间。: 自动驾驶技术是一个显著的例子,利用AI处理复杂的交通场景,提高行车安全性和效率。: 应用的长期成功需要考虑其在产业链中的价值贡献,包括是否能够解决实际问题、提升效率、降低成本等。: 开发自然、流畅的用户界面和对话体验,提升用户与智能体的互动效率和满意度。: 在个性化服务的同时,确保用户数据的隐私和安全,符合法律法规的要求。

2024-07-17 08:38:11 300

原创 开源才是未来的主流

随着全球经济和科技环境的快速变化,开源软件项目的蓬勃发展成为了开发者社区的热门话题。越来越多的开发者和企业选择参与开源项目,以推动技术创新和实现协作共赢。你如何看待当前开源项目的发展趋势?你在参与开源项目时有哪些经验和收获?开源项目的发展趋势1.全球化和多样化随着技术的发展和全球化的推进,开源项目正在变得更加多样化。过去,开源软件主要集中在操作系统和基础工具上,而现在,它涵盖了从人工智能、数据科学到区块链和物联网等各种领域。这种多样化不仅推动了技术的进步,也促进了跨文化、跨国界的协作与创新。

2024-07-17 08:36:43 658

原创 掌控AI掌握未来:开发者的助力与挑战

此外,由于AI工具是基于训练数据生成的,可能存在潜在的数据偏差和性别、种族等不平等的问题。开发者还可以不断学习和掌握新的技术和工具,以保持自己在快速发展的技术行业中的竞争力。开发者需要继续提升自己的分析、设计和优化能力,以便能够在AI辅助的环境中发挥更大的作用。例如,自动化测试和错误修复工具可以通过学习和推理自动发现和修复软件中的问题,减少开发者的劳动量。其次,开发者需要具备机器学习和数据科学领域的基础知识,以便能够理解AI工具的工作原理,并能够识别和解决由AI工具引发的问题。方向二:AI对开发者的影响。

2024-07-17 08:34:16 303

原创 AI发展下的伦理挑战,应当如何应对?

尽管国外已出台系列法规来规范AI的使用,保护个人隐私和数据安全,但如用户被区别对待的“大数据杀熟”现象、AI在辅助医疗诊断和就业筛选中表现出的歧视、基于深度伪造技术制作假信息等引发的社会问题仍层出不穷。只有通过建立有效的AI治理框架,加强隐私保护机制,提高决策透明度和算法公平性,并且通过公众参与和合作,才能更好地应对这些挑战,确保AI的发展符合人类的价值和利益。最后,公众参与和合作也是必不可少的。公众应当积极参与讨论和决策过程,发表自己的意见和担忧,推动AI发展朝着更加人性化和社会可接受的方向发展。

2024-07-17 08:28:52 194

原创 JVM面试点思维导图

这个思维导图包含了大部分JVM常见的面试知识点,仅供参考,建议有个大体思路之后,自己默写出来,不要求全部一样但是一定是自己一点点掏出来的,不要看任何资料。

2024-07-17 08:11:24 109

原创 如何在海量日志文件中查找出登录次数最多的IP和登录次数前1000的IP

比如100G日志文件存放着登陆记录我希望找到登录次数最多的一个人 ip、登录次数最多的前1000的人 ip。

2024-07-17 08:06:20 195

原创 海量数据排序如何实现

海量数据的排序是一个复杂的问题,由于数据量巨大,无法一次性载入内存进行排序,因此需要采用特殊的方法。

2024-07-17 08:04:18 233

原创 java并发编程常见面试题1

答案并发编程是指在同一时间段内,多个程序或任务同时执行的编程模式。它允许多个线程或进程在同一时间内共享系统资源,从而提高系统的整体性能和响应速度。答案线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程可以包含多个线程,同进程的线程共享本进程的地址空间和资源。进程是操作系统资源分配的基本单位,是一个正在执行的程序。答案。

2024-07-16 00:02:37 280

原创 机器学习的概念以及发展历史、现状、优缺点

在自然语言处理领域,机器学习被应用于机器翻译、情感分析和文本生成等任务。在计算机视觉领域,机器学习被用于物体识别、图像分割和行为识别等。在医疗行业,机器学习被应用于疾病诊断、药物研发和基因组学研究等方面。当谈到机器学习的概念时,它是一种让计算机通过数据学习和自动改进算法的方法,而不需要明确的编程指令。机器学习的核心目标是从数据中发现模式和规律,从而实现预测、分类、聚类等任务。尽管机器学习存在一些挑战和限制,但其在人工智能领域的广泛应用和不断发展的趋势表明,机器学习将在未来持续发挥重要的作用。

2024-07-15 17:42:18 213

原创 MySQL慢查询如何优化

优化查询语句:确保查询语句使用了正确的条件和限制,避免全表扫描和大量的无效数据读取。使用正确的查询方式(例如嵌套查询、连接查询或子查询),根据实际情况选择合适的查询方法。需要注意的是,每个应用和数据库环境都是独特的,优化措施需要根据具体情况来选择和实施。缓慢查询的优化是一个持续的过程,需要不断地进行性能监控、分析和调整。通过分析性能数据,找出慢查询的原因,并进行相应的优化。使用缓存:考虑使用缓存技术,如Redis或Memcached,将频繁查询的数据缓存起来,从而减少对数据库的查询压力。

2024-07-15 17:29:06 177

原创 开源项目有哪些机遇和挑战

环境可持续发展:随着人们对环境问题的日益关注,可持续发展已经成为一个重要的发展目标。经济发展:全球经济发展总体上呈现增长态势,但不同国家和地区之间的发展水平仍存在差距。教育和人力资源发展:教育和人力资源的发展对经济和社会的可持续发展至关重要。许多国家和地区都在加大对教育的投资,培养更多高素质的人才。科技发展:科技领域的快速发展是当前世界的一个显著特征。总的来说,目前的发展状况是一个充满机遇和挑战的时期。目前的发展状况是一个相对主观的问题,因为不同的领域和地区都有不同的发展情况。

2024-07-15 14:43:43 146

原创 人工智能在现代科技中的应用和未来发展趋势

因此,在人工智能的发展过程中,需要注重技术创新和规范管理,以确保人工智能的应用能够为人类社会带来更大的福利。例如,通过分析大量的病例数据和医学文献,AI可以提供更准确的疾病诊断和预测。下面将介绍一些具体的应用和未来发展趋势。通过分析学生的学习数据和行为,AI可以根据不同的学习风格和能力,提供个性化的学习资源和建议。通过监测土壤含水量、气候、病虫害等因素,AI可以提供最佳的种植和养殖方案,提高农作物的产量和质量。综上所述,人工智能当前的优点和缺点需要在应用中谨慎权衡和管理,以实现最大的利益和最小的风险。

2024-07-15 09:36:57 311

原创 Docker 主要几个核心功能和用途

Docker Compose 主要用于定义和运行多容器应用,Docker Swarm 是 Docker 的原生集群管理工具,用于处理容器的负载均衡和服务发现。:与虚拟机相比,Docker 容器更轻量,因为它们共享宿主系统的操作系统内核,而不需要每个容器都运行一个完整的操作系统。:Docker 容器可以与 Kubernetes 集成,Kubernetes 是一个强大的容器编排平台,用于管理大规模的容器化应用。:使用 Docker,可以确保开发、测试和生产环境的一致性,减少由于环境差异导致的问题。

2024-07-28 08:16:59 467

原创 Docker常见知识点

Docker 是一个开源的容器化平台,广泛用于开发、部署和运行应用程序。

2024-07-28 08:12:35 278

原创 Zookeeper常见面试题

ACL(访问控制列表)用于设置对 ZNodes 的访问权限。Zookeeper 提供多种权限控制机制,如 READ、WRITE、CREATE、DELETE、ADMIN 等。ACL 可以在创建节点时设置,也可以在节点创建后进行修改。当领导者节点失败时,Zookeeper 集群会通过选举机制选出新的领导者。集群中的其他节点会检测到领导者失效,并通过 ZAB 协议重新选举一个新的领导者以恢复服务。节点是临时节点和顺序节点的组合。适用于需要唯一标识且不需要长期存在的节点。

2024-07-28 07:59:23 315

原创 Zookeeper常见面试题

通过在 Zookeeper 中创建和维护服务节点,服务提供者在 Zookeeper 中注册服务,服务消费者从 Zookeeper 中查询服务列表。服务提供者可以创建持久或临时节点,服务消费者可以监听这些节点的变化以获取最新的服务信息。在 Zookeeper 中,Quorum 是保证数据一致性的基础,通常是集群中节点数的一半加一。客户端在 Zookeeper 中创建一个临时顺序节点,并检查是否为最小的顺序节点。最小的节点表示获得锁。每个客户端创建一个顺序节点并检查最小的顺序节点,最小的节点表示队列的头部。

2024-07-28 07:58:27 267

原创 Zookeeper常见面试题

ACL 是 Zookeeper 提供的访问控制机制,用于设置对 ZNodes 的访问权限。可以为节点设置不同的权限,如读取、写入、删除等。节点是临时节点,客户端创建该节点后,如果客户端与 Zookeeper 的连接断开,节点会自动删除。所有的写请求都会经过领导者进行处理,保证写操作的顺序性和一致性。节点是持久节点,节点的生命周期与客户端的会话无关。节点只有显式删除操作时才会被删除,适用于需要长期存在的节点。节点是在创建时自动为节点名附加一个递增的数字后缀,用于生成唯一的节点。)来监控性能和状态。

2024-07-28 07:57:49 224

原创 Zookeeper常见面试题

Zookeeper 使用强一致性模型,所有的读写请求都经过集群中的领导者(Leader)节点,确保所有客户端看到的数据都是一致的。每个会话有一个唯一的会话 ID,并且可以通过会话来管理节点的创建、删除和更新等操作。获取锁的客户端在释放锁时删除自己的节点,通知其他等待的客户端。客户端可以注册 Watcher 来监听特定节点的变化,例如节点数据的修改、子节点的增删等。Zookeeper 是一个开源的分布式协调框架,它提供了分布式系统中常见的协调服务,如配置管理、服务发现、分布式锁、选举等。

2024-07-28 07:57:06 387

原创 Windows Docker 安装 Kafka【超详细!!!!】

直接启动命令行。

2024-07-27 18:13:41 222

原创 Leetcode【无重叠区间】

中等相关标签相关企业给定一个区间的集合intervals,其中。返回需要移除区间的最小数量,使剩余区间互不重叠。1移除 [1,3] 后,剩下的区间没有重叠。2你需要移除两个 [1,2] 来使剩下的区间没有重叠。0你不需要移除任何区间,因为它们已经是无重叠的了。

2024-07-25 23:19:11 261 1

原创 Leetcode【搜索推荐系统】

给你一个产品数组products和一个字符串searchWordproducts数组中每个产品都是一个字符串。请你设计一个推荐系统,在依次输入单词searchWord的每一个字母后,推荐products数组中前缀与searchWord相同的最多三个产品。如果前缀相同的可推荐产品超过三个,请按字典序返回最小的三个。请你以二维列表的形式,返回在输入searchWord每个字母后相应的推荐产品的列表。

2024-07-25 23:17:26 817

原创 Leetcode【股票价格跨度】

设计一个算法收集某些股票的每日报价,并返回该股票当日价格的。当日股票价格的被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来 7 天股票的价格是,那么股票跨度将是。实现price// 返回 1// 返回 1// 返回 1// 返回 2// 返回 1// 返回 4 ,因为截至今天的最后 4 个股价 (包括今天的股价 75) 都小于或等于今天的股价。// 返回 6next104。

2024-07-25 23:13:03 305

原创 Leetcode【建立起四叉树】

topRight 具有不同的值,因此我们将其再分为 4 个子网格,这样每个子网格都具有相同的值。topLeft,bottomLeft 和 bottomRight 均具有相同的值。四叉树数据结构中,每个内部节点只有四个子节点。请注意,在下面四叉树的图示中,0 表示 false,1 表示 True。网格中的所有值都不相同。如果你想了解更多关于四叉树的内容,可以参考。的值为 True ,则表示它在列表。表示路径终止符,其下面不存在节点。的值为 False ,则表示值为。的 四叉树 的根结点。

2024-07-25 22:44:18 934

原创 Leetcode【除法求值】

给你一个变量对数组equations和一个实数值数组values作为已知条件,其中和values[i]共同表示等式。每个Ai或Bi是一个表示单个变量的字符串。另有一些以数组queries表示的问题,其中表示第j个问题,请你根据已知条件找出的结果作为答案。返回。如果存在某个无法确定的答案,则用-1.0替代这个答案。如果问题中出现了给定的已知条件中没有出现的字符串,也需要用-1.0替代这个答案。输入总是有效的。你可以假设除法运算中不会出现除数为 0 的情况,且不存在任何矛盾的结果。

2024-07-25 22:40:11 723

原创 Leetcode【二叉树中的最大路径和】

124. 二叉树中的最大路径和二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 ,返回其 最大路径和 。示例 1:输入:root = [1,2,3]输出:6解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6示例 2:输入:root = [-10,9,20,null,null,15,

2024-07-25 22:36:47 418

原创 Leetcode【从中序和后序遍历序列构造二叉树】

给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。

2024-07-25 22:33:55 405

原创 Leetcode【二叉树的层次遍历】

给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。

2024-07-25 22:32:08 335

原创 Dubbo常见面试题

Dubbo 的服务动态扩展如何实现?Dubbo 中如何处理服务的兼容性问题?如何在 Dubbo 中实现服务的限流和熔断?Dubbo 如何进行服务的动态配置?Dubbo 如何实现服务的隔离?Dubbo 如何处理服务的高并发请求?如何在 Dubbo 中进行服务的负载均衡?Dubbo 中如何实现服务的健康检查和自我修复?Dubbo 如何实现服务的流量控制?Dubbo 如何处理服务的异常情况?

2024-07-25 08:57:29 217

原创 Dubbo常见面试题

【代码】Dubbo常见面试题。

2024-07-25 08:56:55 297

原创 Dubbo常见面试题

【代码】Dubbo常见面试题。

2024-07-25 08:56:19 414

原创 Dubbo常见面试题

【代码】Dubbo常见面试题。

2024-07-25 08:55:33 297

GIT安装的具体操作流程以及克隆拉取上传项目流程

GIT安装的具体操作流程以及克隆拉取上传项目流程

2024-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除