自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 问答 (4)
  • 收藏
  • 关注

转载 【无标题】

本文总结有19种不同的魔法方法,但其实Python种定义的魔法方法有上百种,大多数魔法方法都是你不知道的地方发挥着作用。我们并不需要也不必须要去全部重写或者部分重写,这更像是Python给我们设定的语法糖一样,如果你的功能有魔法方法可以帮助你实现,那么可以使用这些魔法方法。在笔者看来了解这些魔法方法可以帮助编程者更加深入的了解Python在你不知道的地方到底执行了什么,有助于我们对python这一门动态语言的理解。

2024-03-09 03:13:26 119

转载 【无标题】

双亲委派的具体逻辑就实现在这里面,按照loadClass()的逻辑,如果父类加载失败,会自动调用自己的findClass()来完成加载,这样既不影响用户按照自己的意愿去加载类,又可以保证新写出来的类加载器符合双亲委派规则。算法分为“标记”和“清除”两个阶段,首先标记出所有需要回收的对象,在标记完成后,统一回收掉所有被标记的对象,也可以反过来,标记存活的对象,统一回收所有未被标记的对象。到了JDK 8 Update 40的时候,G1提供并发的类卸载的支持,补全了其计划功能的最后一块拼图。

2024-01-22 17:26:53 178 1

原创 Java8 lambda 表达式 forEach 如何提前终止?

break;});在上面的示例中,我们首先定义了一个自定义的函数式接口BreakableConsumer,它继承了Consumer接口,并新增了一个isBreak方法,用于判断是否需要提前终止迭代。接着,我们定义了一个forEachWithBreak方法,该方法接受一个BreakableConsumer类型的参数,并在迭代过程中判断是否需要提前终止迭代。最后,在main方法中,我们使用forEachWithBreak方法并传递一个Lambda表达式作为参数来进行迭代操作。

2023-07-06 10:16:03 506

原创 抖音服务器带宽有多大,才能供上亿人同时刷?

通过分布式计算和分布式存储技术,抖音可以将数据分散存储在不同的服务器节点中,提高数据处理和传输效率,从而更好地支持用户的视频播放和上传等操作。我们可以从抖音官方公开的信息中得知,截至2021年6月,抖音已经拥有了超过10亿的用户量。一般来说,抖音的服务器带宽在高峰期会达到数百Gbps的速度,以应对来自全球不同地区的数以亿计的视频请求。此外,抖音还使用了多层负载均衡技术,通过将请求分发到多个服务器节点中,从而实现更好的性能和可靠性。因此,对于抖音这样的短视频应用,服务器带宽是至关重要的。

2023-07-06 10:14:28 1150

原创 Mysql中到底什么是索引下推,一分钟看懂

我看是废话少说,直接上干货吧,毕竟大家时间都宝贵!

2023-07-06 10:12:33 758

原创 年终奖大幅缩水,是去还是留?

互联网行业是中国经济发展的一个重要支柱,这也使得互联网公司的年终奖一直是许多从业者最为关注的话题之一。随着行业的不断发展,互联网公司的年终奖也在不断提高,逐渐成为了企业吸引和留住人才的重要手段。在互联网公司中,年终奖的数额一般是员工年终总收入的一大部分,通常在10%至20%之间。互联网公司的年终奖除了直接提高员工的收入外,还有一定的象征意义。年终奖可以反映公司的经济状况和员工的业绩表现,也是公司对员工付出的一种肯定和回报。

2023-07-06 10:10:51 178

原创 15年前的手机并没有jvm虚拟机,为何可以运行Java游戏

但是,随着技术的进步,人们开始在手机上玩游戏,而其中最受欢迎的游戏就是Java游戏。尽管移动设备的技术已经发生了巨大的变化,但Java技术仍然在移动设备上发挥着重要的作用,这些设备离不开Java虚拟机的支持。而jvm虚拟机是Java语言的核心组成部分,它可以运行Java字节码,并且为Java程序提供了跨平台的支持。是Java平台的一种轻量级版本,专门用于嵌入式设备,例如手机和其他便携设备。与标准版Java相比,Java ME提供了更小、更灵活、更易于移植的虚拟机和类库,这使得它成为移动设备上的理想选择。

2023-07-06 10:06:28 1320

原创 Java17的性能优势是否足以让它取代Java8?

随着时间的推移,Java不断地进行更新和发展,以满足不断变化的业务需求。目前,Java8已经成为了一个非常成熟的版本,并且在各个领域广泛应用。但是,Java17也早已发布,,Java社区中出现了一个问题:Java17是否会取代Java8?

2023-07-05 10:36:15 871

原创 LLVM&Swift之父推出全新AI开发语言Mojo,快35000倍于Python!

Mojo是一款全新的AI开发编程语言,由LLVM与Swift之父Chris Lattner领导的团队开发。这款语言的特点是具有高效的代码生成和执行速度。据称,Mojo比Python快35000倍,这使得它成为当前最快的AI开发语言之一。Mojo的设计目标是提供高效、易用、安全的AI开发环境。它支持Python API,可以轻松地与现有的Python代码进行集成。此外,Mojo还支持多线程和分布式计算,使得在大规模数据处理时可以更好地发挥其优势。

2023-07-05 10:35:57 249

原创 面试官:一千万的数据,要怎么查?

一个老生常谈的问题,SELECT *和SELECT具体字段那个快?在数据量少的时候可能没什么差别,但是数据量达到千万级,差距就显现出来。废话不多说,往下看 ↓。

2023-07-05 10:35:07 170

原创 面试官:说说 WebSocket 和 Socket 及 Http 的区别?

Socket是一种用于进程间通信和网络通信的编程接口,它提供了一种底层的API,使得开发人员可以根据自己的需要设计和实现各种网络协议。而Http是一种用于在Web浏览器和Web服务器之间传输数据的协议,它使用TCP作为传输协议,每个请求和响应之间是相互独立的。在实时通信场景下,WebSocket和Socket是更好的选择,而在普通的Web应用中,Http是更为常用的协议。Http协议的缺点是它无法实现实时通信,每次请求和响应之间需要重新建立连接,所以在实时通信场景下会产生较大的延迟。

2023-07-05 10:34:41 177

原创 逝去的机遇:三进制计算机为什么没有成为主流?

尽管三进制计算机具有一些优点,例如可以更有效地利用电子器件和降低计算机系统的能耗,但是它也存在一些缺点,例如设计和制造更困难、缺乏硬件和软件支持以及在数学运算方面存在某些困难。同时,由于二进制计算机已经成为了主流,三进制计算机的应用空间变得更加有限。

2023-07-05 10:33:39 1397

原创 从古代八卦探究计算机的八进制

在中国古代哲学体系中,八卦是由三个阴阳符号组成的八个图案。这些图案被用来表示天、地、水、火、风、雷、山、泽等自然元素,也被用来描述人类的行为和情感。每个八卦都有一个特定的名称和含义。例如,“乾”代表天,“坤”代表地,“震”代表雷,“巽”代表风等等。《易经》是八卦理论的集大成者,它对于古代中国的哲学、文化、社会乃至科技发展都有着重要的影响。在计算机科学中,八进制是一种数字表示法,它使用 0-7 八个数字来表示数值。例如,八进制数值 10 表示十进制数值 8。

2023-07-04 10:05:25 401

原创 再见!Fastjson!

在工具选择上从来都没有最合适,只有更合适,这是一个仁者见仁智者见智的问题,至少单从安全性这一角度来说,Fastjson已经输了,写这篇文章的目的只是为了记录Fastjson曾经辉煌的历史和存在问题,并不是为了和大家抬杠。同样的,Fastjson还是Jackson也就没有标准的答案,各位还是结合自己的具体情况。

2023-07-04 09:56:59 222

原创 面试官:断网了,还能 ping 通 127.0.0.1 吗?

由于回显请求是在本地计算机上发送和接收的,所以我们将收到回显响应消息,从而确认本地网络接口的正常运行。这种能够在断网的情况下通过 Ping 命令与本地进行通信的特性,使得本地回环地址成为了诊断网络问题的有用工具。通过向 127.0.0.1 发送 Ping 请求,我们可以确认计算机上的网络接口是否工作正常,以及操作系统的网络协议栈是否正常运行。本地回环地址是一个特殊的地址,指向我们所在计算机上的网络接口卡,通过它可以在本机上进行网络通信。因此,即使外部网络连接中断,我们仍然能够与本地进行通信。

2023-07-03 14:11:22 240

原创 三进制:为何在常见进制中缺失的奇特存在?

尽管三进制在实际应用中相对较少,它仍然具有一些潜在的应用价值。在状态表示、图像处理和密码学等特定领域中,三进制可能会发挥其独特的优势。然而,由于其缺乏实用性、进制转换复杂性和缺乏标准化等因素,目前三进制在常见进制系统中并没有得到广泛应用。随着技术的发展和需求的变化,我们也许会看到三进制在某些特定领域的更多应用和研究。

2023-07-03 14:10:03 376

原创 深度理解:Redis Hash(散列表)实现原理

Redis Hash是一个键值对集合,是一个string类型的field和value的映射表。它的每个hash可以存储430亿个键值对(40多亿)。

2023-07-03 14:08:36 551

原创 硬件重生:PC与数码市场迎来历史性繁荣,搞机佬的春天回来了

新的技术和产品的发展提供了无数新的可能性,为喜欢研究和优化硬件性能的搞机佬们提供了更多机会。因此,我们可以期待,在未来的一段时间里,搞机佬们将会有更多的展现空间,而数字革命也将在他们的推动下进一步发展。这意味着更多的消费者愿意投资于更高级的设备,这也为那些喜欢研究和优化硬件性能的搞机佬们提供了巨大的机会。这其中,尤其是高端智能手机市场的增长更为明显,同比增长15%,这与新兴科技的发展和消费者的科技需求有关。根据我们的调研数据,这一领域的市场规模和销售量都大幅增长,这预示着搞机佬们的春天已经来临。

2023-07-03 14:07:34 135

原创 Java17的性能优势是否足以让它取代Java8?

随着时间的推移,Java不断地进行更新和发展,以满足不断变化的业务需求。目前,Java8已经成为了一个非常成熟的版本,并且在各个领域广泛应用。但是,Java17也早已发布,,Java社区中出现了一个问题:Java17是否会取代Java8?

2023-05-05 14:35:47 2413 2

原创 为什么北欧的顶级程序员数量远远超于中国?

相比之下,中国的政策和社会保障相对较为薄弱,这可能会影响到中国的程序员。此外,中国的社会保障制度也存在一些不足之处,例如医疗保障和养老保障等问题,这可能会影响程序员的工作积极性和稳定性。北欧地区的政策非常注重人才的吸引和留住。此外,北欧地区的政府也非常注重支持科技行业的发展,投资大量的资金和资源在研发和创新上,这为当地的程序员提供了更多的机会和资源。此外,中国的大学教育侧重于理论知识,缺乏实践经验,这可能会影响程序员的技能水平。相比之下,中国的工作文化可能更注重结果,忽视了员工的工作质量和幸福感。

2023-05-04 18:57:55 4773 5

原创 如何优雅地停掉线程?

很久很久以前,在一个名为“Springboot”的村庄中,住着一群热爱编程的程序员。他们喜欢探索新技术、优化自己的代码,为了打造更好的软件而不断努力着。在这个村庄中,有一个名叫小明的程序员,他是村庄中最优秀的程序员之一。他非常喜欢用Springboot来开发应用程序,并且在使用Springboot的过程中,遇到了一个问题:如何优雅地停掉线程。小明知道,线程是非常重要的,因为它们负责处理应用程序的各种任务。如果线程不能正常停止,就会导致应用程序崩溃,甚至可能损坏数据。因此,停掉线程必须要非常谨慎地进行。

2023-05-04 18:56:28 2543

原创 手动封装一个日期处理工具类,几乎覆盖了所有的时间操作(收藏)

工具类包含以下方法:废话就不说了,直接上代码,建议收藏,实用的话帮忙点个赞!以下是使用该工具类的示例代码:由于当前日期是2023-04-27,因此以下是上面示例代码的输出结果:

2023-05-04 18:55:47 1600

原创 MySQL面试八股文:索引篇

前缀索引是指只对索引列的一部分进行索引,从而减少索引的空间占用。例如,对于VARCHAR类型的列,可以只对其前几个字符进行索引。前缀索引的缺点是精度不够高,可能会导致查询结果不准确。

2023-05-04 18:55:34 971

原创 火遍童年的FC游戏是使用什么语言编写的

虽然汇编语言相对于高级语言来说更难学习,但是在FC主机的硬件环境下,它是最适合的编程语言。使用汇编语言编写程序,程序员可以更加精细地控制计算机硬件,使得程序可以运行得更快,并且在极限的内存限制下,仍然能够保持高效。FC游戏是通过一个名为“红白机”的主机来运行的,它使用了一种名为6502的CPU芯片。NES汇编语言是专门为FC游戏开发而设计的汇编语言,它提供了一些方便的指令和宏,使得编写程序更加容易。此外,它还提供了一些基本的库,如屏幕输出库、输入库和音频库等,使得程序员可以更加方便地编写程序。

2023-05-04 11:38:03 973

原创 深入探讨Java、Spring和Dubbo的SPI机制

Java SPI机制、Spring SPI机制、Dubbo SPI机制都是实现框架扩展的机制,但它们的实现方式、配置文件、功能定位和扩展点类型都有所不同。应用程序开发者可以根据不同的需求和框架选择不同的SPI机制来实现扩展。

2023-05-04 11:35:15 977

原创 手动封装了一个 OkHttp3 工具类,用着贼舒服

在实际的系统开发过程中,我们通常会基于项目环境,封装一个公共的网络请求工具库,以便开发接口请求相关的需求时,能更加方便的使用。以服务端编程为例,以下是小编封装工具类的实践过程。这个工具类包含了GET和POST请求方法,同时支持JSON、表单和多部分请求体,并且支持上传文件。

2023-04-25 14:21:36 932

原创 Redis高频面试题盘点:掌握这15道题,面试从容应对!

在大厂面试中,Redis成为了经常被问及的话题之一。

2023-04-19 15:08:22 482

原创 MySQL自增ID用完了怎么办?4种解决方案!

MySQL的自增ID是通过自动增量机制生成的。当创建一张新表并定义了一个自增列时,MySQL会在表中创建一个叫做AUTO_INCREMENT的计数器。每当插入一行新数据时,MySQL会自动将这个计数器的值加一,并将这个新的值插入到自增列中。这样,每一行数据都会拥有一个唯一的自增ID。默认情况下,自增ID的起始值是1,并且每次自增1。这个起始值可以通过ALTER TABLE语句来更改。

2023-04-19 15:07:58 5085 1

原创 MySQL中,SQL 查询总是先执行SELECT语句吗?

除此之外,在实际使用 MySQL 进行查询时,我们还可以通过使用 EXPLAIN 命令来查看 MySQL 的查询执行计划。EXPLAIN 命令可以帮助我们了解 MySQL 在执行查询时的具体执行顺序和优化策略,从而帮助我们更好地优化 SQL 查询语句,提高查询效率和性能。总之,MySQL 中的 SELECT 语句并不总是最先被执行,具体的执行顺序取决于查询中的具体情况。在实际使用 MySQL 进行查询时,我们应该根据具体的查询需求,合理地编写 SQL 查询语句,以获得更好的查询效率和更准确的查询结果。

2023-04-19 15:07:10 472

原创 解决Spring事务不生效的10种常见场景

Spring事务不生效可能出现的情况是非常多的,本文仅列举了一些常见的情况。在实际开发中,我们需要根据具体的业务场景和问题来进行排查和调试,找出问题所在并进行相应的解决。同时,我们也需要在事务管理方面进行更深入的学习和研究,掌握更多的知识和技能,以便更好地应对各种情况。

2023-04-19 15:06:27 1658

原创 Java实现数据加密:掌握DES CBC和ECB两种模式

DES算法是一种对称加密算法,它使用相同的密钥进行加密和解密。DES算法是一种分组密码,即将明文分成固定长度的块,并对每个块进行加密。DES算法将每个64位的明文块分成两个32位的半块,然后进行一系列的加密和解密操作,最终得到一个64位的密文块。

2023-04-19 15:05:45 1258

原创 为何 Linux一个人就能写出这么强的系统,中国却做不出来?

最后,需要指出的是,中国并不是完全不能开发出类似于 Linux 的强大系统。事实上,中国的一些开源项目已经取得了很不错的成绩。例如,中国的开源数据库产品 MariaDB 取得了广泛的应用,国产操作系统麒麟也已经被广泛使用。这些项目表明,中国的开源社区具有一定的实力和潜力。但是,要想实现真正的强大和全球化,中国的开源社区还需要加强自身的技术实力、拓展自己的市场和用户群体,以及与国际开源社区进行更紧密的合作和交流。

2023-04-19 15:04:59 168

原创 【系列教程一】谁说 java 不能做爬虫?我第一个不服!

本文介绍了如何用Java实现爬取http://www.cgtpw.com/ctmn这个网站图片的过程,并采用异步下载和翻页爬取的技术,以提高爬取效率。在爬取网站图片时,我们需要注意下载图片的数量和下载图片的速度,可以采用异步下载的技术来解决这个问题。另外,由于该网站的图片是分页显示的,因此我们需要编写一个方法来翻页爬取。在实际开发过程中,还需要考虑一些其他因素,例如网站反爬机制、网络波动等问题。如果网站有反爬机制,我们可以采用一些反反爬的技术,例如使用代理IP、设置User-Agent等;

2023-04-19 15:03:59 1547 2

原创 别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?

定义一个映射器,需要创建一个 Java 接口,并使用 @Mapper 注解注释它。在映射器接口中,可以定义多个映射方法。每个映射方法的输入类型和输出类型必须在 @Mapper 注解中进行声明。

2023-04-19 15:03:27 729

原创 抛弃丑陋的try-catch,优雅处理异常

通过上面的示例,我们实现了一个简单的统一异常处理。在实际开发中,我们可以根据需求进行一些优化,使代码更加简洁、优雅。异常处理是一个很重要的功能,需要我们在开发过程中认真对待,避免出现漏洞,保证系统的稳定性和安全性。

2023-04-19 15:02:41 778

原创 别再重复造轮子了,一个 Spring 注解轻松搞定循环重试功能!

在分布式系统和网络环境中,错误是无法避免的。重试机制是一种保证系统可靠性的有效解决方案。在 Spring 框架中,@Retryable 注解为开发人员提供了一种轻松的方法来实现重试机制。在使用 @Retryable 注解时,我们需要注意避免过度使用、谨慎处理异常、调整重试次数和时间间隔以及不要重试无法解决的错误。通过合理使用 @Retryable 注解,我们可以有效地提高系统的可靠性和稳定性。

2023-04-19 15:01:27 1190

原创 MySQL中,SQL 查询总是先执行SELECT语句吗?

除此之外,在实际使用 MySQL 进行查询时,我们还可以通过使用 EXPLAIN 命令来查看 MySQL 的查询执行计划。EXPLAIN 命令可以帮助我们了解 MySQL 在执行查询时的具体执行顺序和优化策略,从而帮助我们更好地优化 SQL 查询语句,提高查询效率和性能。总之,MySQL 中的 SELECT 语句并不总是最先被执行,具体的执行顺序取决于查询中的具体情况。在实际使用 MySQL 进行查询时,我们应该根据具体的查询需求,合理地编写 SQL 查询语句,以获得更好的查询效率和更准确的查询结果。

2023-04-06 18:54:46 350

原创 想成为 Spring 大牛?先了解这 6 种添加 Bean 的方式

将 Bean 放入 Spring 容器中的方式有很多种,每种方式都有其优缺点。在实际项目中,需要根据实际情况进行选择和配置,以达到最优的效果。总的来说,自动扫描和基于注解的配置是比较常用的方式,Java 配置类也是一个不错的选择,而 XML 配置文件和 JavaEE 注解则相对不太常用。如果需要对 Bean 进行更加细致的管理和配置,则可以考虑通过实现 BeanFactoryPostProcessor 接口来实现。

2023-04-06 18:53:32 621

原创 掏出手机,扫一扫,即刻登录——SpringBoot实现二维码扫码登录

二维码扫码登录是一种方便快捷的身份认证方式,可以为用户提供更好的登录体验。在SpringBoot中,可以使用QRCodeGenerator类生成二维码图片,使用WebSocket实现扫码登录功能,使用OAuth2RestTemplate实现客户端回调功能。通过以上的介绍,相信读者已经对二维码扫码登录的原理及SpringBoot的实现方式有了一定的了解。

2023-03-20 14:40:16 1360

原创 如何解决缓存穿透、缓存击穿、缓存雪崩?才能使数据库幸免于难

如何利用好缓存,加快访问速度,提高并发的同时还不出现问题是一个优秀架构的关键,在开发过程中我经常会遇到一些问题,比如缓存穿透、缓存击穿和缓存雪崩,这些问题会导致系统性能下降、数据库负载过高等问题,因此必须采取一些措施来解决这些问题。在实际应用中,需要根据系统的实际情况和性能要求来选择合适的机制,也可以采用多种机制来解决缓存问题。正在上传…重新上传取消编辑搜图。

2023-03-15 17:38:40 386

空空如也

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

TA关注的人

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