自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-07-21 09:06:15 117

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

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

2024-07-19 17:55:20 320

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

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

2024-07-19 14:49:51 137

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

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

2024-07-19 14:35:10 150

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

2024-07-19 14:05:36 363

原创 简单实现超时等待

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

2024-07-19 08:07:00 195

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

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

2024-07-19 07:41:13 103

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

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

2024-07-18 00:00:54 583

原创 JAVA并发常见面试题5

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

2024-07-17 08:43:08 413

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

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

2024-07-17 08:38:11 290

原创 开源才是未来的主流

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

2024-07-17 08:36:43 638

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

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

2024-07-17 08:34:16 278

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

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

2024-07-17 08:28:52 180

原创 JVM面试点思维导图

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

2024-07-17 08:11:24 88

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

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

2024-07-17 08:06:20 103

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

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

2024-07-17 08:04:18 180

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

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

2024-07-16 00:02:37 262

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

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

2024-07-15 17:42:18 149

原创 MySQL慢查询如何优化

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

2024-07-15 17:29:06 159

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

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

2024-07-15 14:43:43 131

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

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

2024-07-15 09:36:57 296

原创 Redis常见面试题

【代码】Redis常见面试题。

2024-07-23 21:55:23 153

原创 Redis常见面试题

【代码】Redis常见面试题。

2024-07-23 21:54:30 275

原创 Redis常见面试题11

【代码】Redis常见面试题11。

2024-07-23 21:52:08 224

原创 Redis常见面试题10

什么是 Redis?它有什么特点?Redis 的持久化机制有哪些?Redis 的数据过期策略是如何实现的?Redis 支持哪些数据结构?如何在 Redis 中实现分布式锁? 这种方式可以确保在锁定期间,如果某个进程持有锁,其他进程不能获得锁,且锁会在指定时间后自动过期。 Redis 的主从复制是如何工作的?Redis 的事务是如何实现的?Redis 的集群模式是如何工作的?如何处理 Redis 的并发竞争问题?如何提升 Redis 的持久化性能?

2024-07-23 21:51:21 180

原创 Redis常见面试题9

命令用于列出所有连接到 Redis 服务器的客户端信息。这个命令返回所有连接客户端的详细信息。

2024-07-23 21:49:11 212

原创 Redis常见面试题8

命令用于将一个或多个集合的差集存储到一个新集合中。命令用于将一个或多个集合的交集存储到一个新集合中。命令用于将一个或多个集合的并集存储到一个新集合中。命令用于返回一个或多个集合的差集。命令用于返回一个或多个集合的交集。命令用于返回一个或多个集合的并集。

2024-07-23 21:48:31 219

原创 Redis常见面试题7

中以坐标 (13.361389, 38.115556) 为中心,返回 200 公里范围内的所有地理位置。命令用于根据地理位置从给定位置返回半径范围内的所有地理位置。命令用于根据给定地理位置成员返回半径范围内的所有地理位置。为中心,返回 200 公里范围内的所有地理位置。命令用于将哈希表中的字段设置为指定值。命令用于获取哈希表中指定字段的值。

2024-07-23 21:48:00 288

原创 Redis常见面试题6

命令用于创建一个新的有序集合,它是给定有序集合的交集。命令用于创建一个新的有序集合,它是给定有序集合的并集。的交集,聚合方式为 SUM。的并集,聚合方式为 SUM。这个命令会创建一个名为。这个命令会创建一个名为。

2024-07-23 21:46:44 187

原创 Redis常见面试题5

命令用于将消息发布到指定的频道。订阅了这个频道的客户端会收到这个消息。命令用于订阅一个或多个频道,客户端会收到这些频道发布的所有消息。命令用于随机返回集合中的一个或多个成员,而不移除它们。这个命令将 Redis 的最大内存限制设置为 256MB。命令用于动态修改 Redis 服务器的配置参数。命令用于从集合中随机移除并返回一个或多个成员。命令用于获取 Redis 服务器的配置参数。频道,客户端将收到该频道发布的所有消息。集合中的 2 个成员,但不会移除它们。这个命令返回 Redis 的。

2024-07-23 21:45:51 297

原创 Redis常见面试题4

命令用于向有序集合中添加元素。命令用于将 Lua 脚本加载到 Redis 的脚本缓存中,并返回脚本的 SHA1 校验和。这个命令会将指定的 Lua 脚本加载到 Redis 中,并返回其 SHA1 校验和。命令用于获取 HyperLogLog 数据结构中估算的唯一元素数量。命令用于清除 Redis 中所有已加载的 Lua 脚本。命令用于获取有序集合中指定范围内的元素。命令用于从有序集合中删除一个或多个元素。命令用于检查集合中是否存在指定的成员。命令用于获取有序集合中的元素数量。命令用于获取集合中的所有成员。

2024-07-23 21:45:10 223

原创 Redis常见面试题3

命令用于向流(Stream)中添加一条新消息。流是一种有序的日志数据结构,每条消息都有一个唯一的 ID。中添加一条新消息,消息的 ID 会自动生成。命令用于获取流中指定范围的消息。表示范围的起始和结束,

2024-07-23 21:44:17 310

原创 Leetcode【IPO】

假设 力扣(LeetCode)即将开始。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。由于资源有限,它只能在 IPO 之前完成最多k个不同的项目。帮助 力扣 设计完成最多k个不同项目后得到最大总资本的方式。给你n个项目。对于每个项目i,它都有一个纯利润profits[i],和启动该项目需要的最小资本capital[i]。最初,你的资本为w。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。总而言之,从给定项目中选择k个不同项目的列表,以。

2024-07-23 21:43:34 317

原创 Redis常见面试题2

【代码】Redis常见面试题2。

2024-07-23 21:43:16 238

原创 Redis常见面试题2

Redis 是一个广泛使用的内存数据库,面试中常见的问题通常涉及它的基本概念、数据结构、性能优化等方面。

2024-07-23 21:42:31 123

原创 Redis常见面试题

Redis 是一个广泛使用的内存数据库,面试中常见的问题通常涉及它的基本概念、数据结构、性能优化等方面。

2024-07-23 21:41:59 158

原创 计算机网络面试重点

计算机网络一般我们认为采用的是一种只有五层协议的体系机构分别是: 应用层: 常见的协议:DNS协议、FTP协议、SMTP协议、HTTP协议; 运输层 常见的协议:TCP(有连接可靠的)/UDP(无连接,尽最大努力的数据传输服务,不保证可靠性) 引申:如果我使用了UDP协议进行传输如何得到一个可靠传输:设置一下ACK就是确认应答,还有序列号,在这个基础上引入流量控制、快速重传和超时重传机制,流量控制其实就是网络拥塞的时候减少发送速率,控制数据量

2024-07-21 08:36:13 298

原创 Leetcode【直线上最多的点数】

给你一个数组points,其中表示平面上的一个点。求最多有多少个点在同一条直线上。34。

2024-07-20 23:16:00 218

原创 Leetcode【数据流的中位数】

是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。3初始化对象。将数据流中的整数num添加到数据结构中。返回到目前为止所有元素的中位数。与实际答案相差10-5以内的答案将被接受。// 返回 1.5 ((1 + 2) / 2)findMedian5 * 104addNum。

2024-07-20 23:13:54 532

原创 Leetcode【N皇后||】

研究的是如何将n个皇后放置在n × n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数n,返回不同的解决方案的数量。n = 42如上图所示,4 皇后问题存在两个不同的解法。n = 11。

2024-07-20 23:12:00 309

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

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

2024-06-04

空空如也

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

TA关注的人

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