互联网课堂_个人页

个人头像照片 互联网课堂
个人头像照片
154
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2024年07月

  • 07.01 00:31:40
    发表了文章 2024-07-01 00:31:40

    golang 的重试弹性模式

    Golang 中的重试机制实现了一个名为 `Retrier` 的结构体,用于实现弹性模式。`Retrier` 创建时需要指定重试间隔(如常量间隔或指数递增间隔)和错误分类器。分类器决定了哪些错误应被重试。默认情况下,如果未提供分类器,则使用默认分类器,它简单地将非 nil 错误标记为应重试。提供了三种分类器:默认、白名单和黑名单。`Run` 和 `RunCtx` 是执行重试的函数,后者接受上下文以便处理超时。通过 `calcSleep` 计算带有随机抖动的休眠时间,增加重试的不可预测性,减少并发冲突。如果达到最大重试次数或上下文超时,重试将停止。

2024年06月

  • 06.28 11:20:26
    发表了文章 2024-06-28 11:20:26

    ipxproxy静态住宅代理——助力OpenAI Sora的使用

    ​在OpenAI推出的Sora引领视频创作新时代的背景下,如何顺利注册并使用这一创新工具成为众多创作者关注的焦点。ipxproxy作为专业的代理服务商,提供了高效可靠的静态住宅代理IP解决方案,帮助用户顺利突破网络限制,轻松访问OpenAI Sora。
  • 06.27 15:23:15
    发表了文章 2024-06-27 15:23:15

    PowerMock的静态方法与私有方法怎么测试?

    **PowerMock**是Java单元测试中的增强工具,扩展了Mockito,支持模拟静态方法、构造函数、私有方法和final类,促进更高测试覆盖率。它用于隔离依赖,测试静态方法和私有方法。常见问题包括配置复杂性、过度使用、忽略真实行为模拟和最佳实践。解决方案包括遵循官方文档、谨慎使用、精确模拟和测试后清理。示例展示了如何模拟静态方法,通过添加PowerMock依赖和使用`@RunWith(PowerMockRunner.class)`、`@PrepareForTest`注解,以及`PowerMockito.mockStatic()`进行静态方法模拟。
  • 06.25 16:51:20
    发表了文章 2024-06-25 16:51:20

    Python标准库中有哪些好用的模块

    在命令行中使用Python标准库模块,如`http.server`、`gzip`、`base64`、`json.tool`和`calendar`,可以直接通过`python -m module_name`调用,无需额外编写代码。例如,`python -m http.server`启动一个简单的HTTP服务器,`python -m gzip -d file.gz`解压缩文件。`json.tool`用于美化显示JSON数据,而`calendar`模块则能输出日历信息。这些在临时需要相关功能时特别方便。
  • 06.21 18:06:17
    发表了文章 2024-06-21 18:06:17

    怎么让 Go 中如何让结构体不可比较?

    在 Go 语言中,结构体默认是可以比较的,只要它们的所有字段都是可比较的。如果结构体包含不可比较的字段(如 `map`),则该结构体不能直接使用 `==` 进行比较,会引发编译错误。可以通过 `reflect.DeepEqual()` 函数对包含不可比较字段的结构体进行深度比较。为了禁止结构体的相等性比较,可以使用 `_ [0]func()` 作为匿名字段,这是一种不占用额外内存且具有明确语义的优雅做法。Go 语言标准库中也有类似的应用。
  • 06.19 13:59:07
    发表了文章 2024-06-19 13:59:07

    怎样使用gofmt格式化代码

    **gofmt**是Go语言官方的代码格式化工具,确保代码遵循统一风格。它能读取标准输入或格式化指定文件及目录中的.go文件。使用`-s`参数可以简化代码,例如移除不必要的类型声明、索引指定和变量赋值。`-w`参数将格式化结果写回源文件。`go fmt`是`gofmt`的简单封装,通常带有`-l -w`参数。在Goland中,可通过设置File Watcher自动调用gofmt进行格式化。
  • 06.17 15:38:30
    发表了文章 2024-06-17 15:38:30

    golang bufio包怎么用?

    `bufio` 是 Go 语言中用于提高 I/O 性能的包,它通过使用缓冲区减少对低效磁盘 I/O 操作的调用。简而言之,`bufio` 提供带缓冲的读写功能,减少读取或写入文件时的系统调用次数,从而提升程序性能。
  • 06.14 17:00:24
    发表了文章 2024-06-14 17:00:24

    Python 迭代器和生成器有什么用?

    **Python 迭代器与生成器巧妙用法** 本文探讨了 Python 中迭代器和生成器的实际应用场景。迭代器通过 `__iter__()` 和 `__next__()` 方法支持迭代操作,适用于处理大数据或动态数据流。例如,创建一个 `CountDown` 类实现倒计时迭代。生成器简化代码,如 `fibonacci` 函数用于生成斐波那契数列。此外,迭代器可用于分页、连接多个迭代器和过滤数据。生成器则擅长处理大文件、生成无限序列和实现斐波那契数列,还可构建数据处理管道和使用生成器表达式。掌握这些技巧能提升代码效率和处理问题的能力
  • 06.12 15:22:54
    发表了文章 2024-06-12 15:22:54

    sqlite3自动插入创建时间和更新时间

    在本文中,作者分享了如何使用sqlite3数据库来记录结构化日志,并实现主键ID自增、插入数据时自动填充创建时间(created_at)以及更新数据时更新时间(updated_at)的功能。首先,创建数据库和表`position_info`,然后通过修改表结构使ID字段为自动递增。接着,设置`created_at`和`updated_at`字段默认值为当前时间。最后,创建一个触发器在数据更新时自动更新`updated_at`。完整SQL代码包括表创建和触发器定义。
  • 06.11 00:32:25
    发表了文章 2024-06-11 00:32:25

    sqlite3自动插入创建时间和更新时间

    在本文中,作者分享了如何在SQLite3中实现类似MySQL和Postgres的几个基本功能。首先,通过`AUTOINCREMENT`关键字设置了主键ID自增。接着,通过`DEFAULT (DATETIME('now', 'localtime'))`确保了`created_at`在数据插入时自动获取当前时间。然而,`updated_at`在数据更新时不自动更新,为解决这个问题,作者创建了一个触发器(`trigger_position_info_updated_at`),在更新数据后自动更新`updated_at`字段。
  • 06.05 14:53:52
    发表了文章 2024-06-05 14:53:52

    基于多线程的方式优化 FLink 程序

    这篇内容介绍了线程的基本概念和重要性。线程是程序执行的最小单位,比进程更细粒度,常用于提高程序响应性和性能。多线程可以实现并发处理,利用多核处理器,实现资源共享和复杂逻辑。文章还讨论了线程的五种状态(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED)以及如何在Java中创建和停止线程。最后提到了两种停止线程的方法:使用标识和中断机制。
  • 06.03 14:46:06
    发表了文章 2024-06-03 14:46:06

    Java内存模型是什么

    本文介绍了Java并发编程中重要的Java内存模型(JMM),该模型基于硬件内存模型,旨在解决CPU缓存一致性与处理器重排序问题,确保多线程环境下的原子性、可见性和有序性。文章首先讲解了CPU执行过程中的高速缓存和由此引发的缓存一致性问题,以及处理器的重排序现象。接着,引入了计算机内存模型,它是处理这些问题的操作规范。随后,阐述了Java内存模型,其规定了变量存储在主存,线程有自己的工作区,通过主存实现线程间通信,从而在Java层面保证内存一致性。最后,对比了JMM和计算机内存模型的异同,强调两者作用于不同层次的内存一致性保障。

2024年05月

  • 05.30 11:59:51
    发表了文章 2024-05-30 11:59:51

    如何巧用索引优化SQL语句性能?

    在 MySQL 中,添加合适的索引可以显著提升慢查询的速度,因为索引加快了数据检索。要优化 SQL 性能,首先需定位慢查询,可通过查看执行时间和执行计划。`EXPLAIN` 命令用于查看执行计划,分析如`type`(全表扫描最慢,索引扫描较快)、`key`(未使用索引为NULL)等字段。例如,全表扫描的查询可考虑为慢查询,并创建相应索引进行优化。此外,注意聚簇索引、索引覆盖和最左前缀原则等索引使用技巧,以提高查询效率。启用慢查询日志并设置阈值,有助于识别已运行的慢查询。
  • 05.28 14:51:25
    发表了文章 2024-05-28 14:51:25

    什么锁比读写锁性能更高?

    Java并发编程中,ReentrantReadWriteLock是高效的锁机制,但在高并发环境下,乐观锁(如CAS)和JDK 8引入的StampedLock可提供更高性能。StampedLock支持读锁、写锁和乐观读锁,其乐观读锁在读多写少的场景下能提升并发性能,通过tryOptimisticRead方法实现。当乐观读锁无效时,可无缝切换至悲观读锁。
  • 05.25 17:35:22
    发表了文章 2024-05-25 17:35:22

    如何给application.yml文件的敏感信息加密?

    本文介绍了如何在SpringBoot应用中使用jasypt进行配置信息的加密解密。首先,需要添加jasypt-spring-boot-starter的依赖,版本至少为3.0.5。接着,在配置文件中设置`jasypt.encryptor.password`等参数。jasypt提供`StringEncryptor`接口用于加密解密,通过该接口可以在测试类中对敏感信息(如数据库用户名和密码)进行加解密。加密后的信息需带有`ENC()`前后缀。推荐将加密密码作为系统属性、命令行参数或环境变量传递,而不是直接写入配置文件。
  • 05.23 14:51:04
    发表了文章 2024-05-23 14:51:04

    如何搭建springboot脚手架

    本文讲述了项目初始化时常见的环境搭建问题,包括IDE的下载和选择,以及版本管理的复杂性。作者分享了在使用不同版本的SpringBoot和SpringCloud时遇到的版本兼容性问题,强调了版本管理的重要性。文章还提到了Maven在解决依赖关系中的作用,以及介绍了SpringBoot的自动配置功能。此外,文章提供了全局异常处理、日志处理、跨域类和响应体的代码示例,并推荐了一些常用的开发工具,如内存版中间件和Java工具库。最后,作者提到在实际工作中,与他人协作时的环境一致性问题也可能带来困扰。
  • 05.21 14:37:49
    发表了文章 2024-05-21 14:37:49

    IDEA开发插件有哪些值得推荐?

    这篇文章介绍了IntelliJ IDEA中的一些高效插件,包括RestfulTool(用于快速定位API)、Translation(便捷的代码翻译工具)、Alibaba Java Coding Guidelines(代码规范检查)、Free MyBatis Tool(增强MyBatis开发体验)和Mybatis Log(SQL日志查看)。此外,还提到了Vue.js插件以及可选装的Grep Console(控制台日志分析)、Maven Helper(解决Maven依赖冲突)和Private Notes(源码注释管理)。作者提醒,虽然插件有用,但过多会影响IDE性能,应注重质量而非数量。
  • 05.21 14:33:12
    发表了文章 2024-05-21 14:33:12

    IDEA开发插件有哪些值得推荐?

    这篇文章介绍了IntelliJ IDEA中一些实用的神仙插件,包括RestfulTool(用于快速定位请求处理代码)、Translation(方便代码中的英文翻译)、Alibaba Java Coding Guidelines(遵循阿里巴巴编码规范)、Free MyBatis Tool(增强MyBatis支持)和Mybatis Log(整理SQL日志)。此外,还提到了Vue.js插件和可选装的Grep Console(日志高亮)、Maven Helper(解决Maven依赖冲突)以及Private Notes和Rainbow Brackets(代码注释和括号颜色标记)。
  • 05.17 18:18:13
    发表了文章 2024-05-17 18:18:13

    MySQL窗口函数怎么用

    这段内容介绍了如何使用窗口函数(Window Function)在 MySQL 8.x 中进行更高效、简洁的数据分析和计算。窗口函数允许我们在查询结果集的特定窗口(或分区)内执行计算,如聚合、排序和行号生成。文章以一个复杂的 SQL 查询作为示例,展示了如何使用窗口函数简化这个计算排名的过程。

2023年06月

  • 06.06 16:57:30
    发表了文章 2023-06-06 16:57:30

    Java后端服务接口性能优化建议

    要想成为一名优秀的后端程序员,编写出高性能的服务接口是一个重要指标,高标准程序员都是对性能反复压榨的。以下梳理了一些提升接口性能的技术方案,希望对大家有所帮助。

2023年05月

  • 05.30 15:28:11
    发表了文章 2023-05-30 15:28:11

    揭开神秘面纱,会stream流就会大数据

    如果你会任意一门语言的stream流,没道理不会大数据开发。
  • 05.24 16:54:14
    发表了文章 2023-05-24 16:54:14

    JDK8升级JDK17过程中遇到的那些坑

    JDK8虽然非常好,但是JDK版本已经发布到JDK20了,且JDK8后的版本升级了很多新的特性,如模块化、ZGC以虚拟线程、结构性并发等,也是非常有吸引力的,所以决定将基于JDK8的项目升级到最近的LTS版本JDK17。
  • 05.17 16:28:44
    发表了文章 2023-05-17 16:28:44

    大白话讲解synchronized锁升级套路

    synchronized锁是啥?锁其实就是一个对象,随便哪一个都可以,Java中所有的对象都是锁,换句话说,Java中所有对象都可以成为锁。 这次我们主要聊的是synchronized锁升级的套路
  • 05.09 16:02:18
    发表了文章 2023-05-09 16:02:18

    Java8中的Stream的汇总和分组操作~它并不难的

    在前面的文章中其实大家也已经看到我使用过collect(Collectors.toList()) 将数据最后汇总成一个 List 集合。
  • 05.04 15:59:36
    发表了文章 2023-05-04 15:59:36

    Spring自定义参数解析器设计

    @RequstBody、@RequstParam 这些注解是不是很熟悉? 我们在开发Controller接口时经常会用到此类参数注解,那这些注解的作用是什么?我们真的了解吗? 简单来说,这些注解就是帮我们将前端传递的参数直接解析成直接可以在代码逻辑中使用的javaBean,例如@RequstBody接收json参数,转换成java对象,如下所示:

2023年04月

  • 04.25 17:01:31
    发表了文章 2023-04-25 17:01:31

    性能 - 浅谈性能优化办法

    性能优化,反复被提起,想要做到性能优化,先要理解性能优化,知其然才知其所以然,所谓的高性能就是合理的运用服务器的硬件资源,主要是Cpu和内存,硬盘,用大量的测试和计算,合理的计算使用服务器的资源,提升响应速度,提高吞吐率,就是性能优化的知识点。
  • 04.18 17:32:11
    发表了文章 2023-04-18 17:32:11

    几个不错的idea插件让我码速又快了

    idea可以说是java开发者使用的最多的开发工具了,一写好的idea插件不仅仅能赏心悦目,更能帮助我们提升效率,有更多的时间去摸鱼。下面就推荐一些我经常用的idea插件。
  • 04.12 16:44:51
    发表了文章 2023-04-12 16:44:51

    如何设计一个安全的对外接口?

    对外接口安全措施的作用主要体现在两个方面,一方面是如何保证数据在传输过程中的安全性,另一方面是数据已经到达服务器端,服务器端如何识别数据。
  • 04.07 16:53:45
    发表了文章 2023-04-07 16:53:45

    项目中如何对XSS统一处理

    XSS攻击是指攻击者利用网站中的漏洞,向页面中注入恶意脚本,从而获取用户的信息或者控制用户的计算机。 举一个通俗的例子,早期使用JSP页面渲染页面的项目,如果将用户名改成nick<alert>1</alert>,则当用户打开页面时,就会弹出一个警告框,而这个警告框可以被恶意脚本所替代,例如读取cookies或者其他敏感信息等操作。
  • 04.04 16:20:08
    发表了文章 2023-04-04 16:20:08

    微服务中的鉴权该怎么做?

    最近刚好有小伙伴在微信上问到这个问题,松哥就来和大家聊一聊,本文主要和小伙伴们聊一聊思路,不写代码,小伙伴们可以结合松哥之前的文章,应该能够自己写出来本文的代码。当然,思路也只是我自己的一点实践经验,不一定是最完美的方案,欢迎小伙伴们在留言中一起探讨。

2023年03月

  • 03.28 15:57:47
    发表了文章 2023-03-28 15:57:47

    【JAVA】让 ChatGPT 来浅说 AQS

    又迎来了一年一度的金三银四,虽然说今年的大环境不好,但是招聘还是在火热进行中。 面试过 Java 工程师的小伙伴都知道,Java 中的 AQS 是面试高频题,面试官上来就直接了当地问,AQS 知道是什么吧,来讲讲它是怎么实现的,以及哪些地方用到了它。
  • 03.22 17:09:28
    发表了文章 2023-03-22 17:09:28

    分享7 个VUE项目用得上的JavaScript库

    借助开源库加速VUE项目的开发进度是现代前端开发比较常见的方式,平常收集一些JavaScript库介绍,在遇到需要的时候可以信手拈来。
  • 03.20 16:25:45
    发表了文章 2023-03-20 16:25:45

    手把手教你验证码检验的登录

    在网站实际应用过程中,为了防止网站登录接口被机器人轻易地使用,产生一些没有意义的用户数据,所以,采用验证码进行一定程度上的拦截,当然,我们采用的还是一个数字与字母结合的图片验证码形式,后续会讲到更加复杂的数字计算类型的图片验证码,请持续关注我的博客。
  • 03.13 17:21:07
    发表了文章 2023-03-13 17:21:07

    深入浅出ThreadLocal

    ThreadLocal相信大家都有用过的,一般用作存取一些全局的信息。比如用户信息,流程信息,甚至在Spring框架里面通过事务注解Transactional去获取数据库连接的实现上,也有它的一份功劳。
  • 03.10 16:56:55
    发表了文章 2023-03-10 16:56:55

    面试官:什么是双亲委派模型?

    就算是不准备面试,学习双亲委派模型对于我们也非常有帮助。我们比较熟悉的 Tomcat 服务器为了实现 Web 应用的隔离,就自定义了类加载并打破了双亲委派模型。
  • 03.07 17:34:40
    发表了文章 2023-03-07 17:34:40

    为什么人们宁可用Lombok,也不把成员设为public?

    1、采用get/set方法其实是Java的一个协议,在1996年12月提出的java bean1.00-A,通过统一的规范可以设置对象的值(比如get、set方法)。很多框架也是在此基础上开发的,底层源码也都是通过get/set访问属性的。

2023年02月

  • 02.27 17:01:41
    发表了文章 2023-02-27 17:01:41

    spring注入静态变量有几种方法?春节假期虹猫蓝兔三千问

    静态变量不要用this引用,要用类名.变量,虽然你用this也能工作。
  • 02.22 17:36:59
    发表了文章 2023-02-22 17:36:59

    MySQL中的MVCC到底能不能解决幻读

    在MySQL当中,只有使用了InnoDB存储引擎的数据库表才支持事务。 有了事务就可以用来保证数据的完整以及一致性,保证成批的SQL语句要么全部执行,要么全部不执行。 事务用来管理insert、update、delete语句。
  • 02.14 17:39:09
    发表了文章 2023-02-14 17:39:09

    只改了五行代码接口吞吐量提升了10多倍

    首先,提升日志打印级别到DEBUG。emm... 提升不大,好像增加了10左右。 然后,拆线程 @Async 注解使用线程池,控制代码线程池数量(之前存在3个线程池,统一配置的核心线程数为100)结合业务,服务总核心线程数控制在50以内,同步增加阻塞最大大小。结果还可以,提升了50,接近200了。
  • 02.07 17:51:55
    发表了文章 2023-02-07 17:51:55

    百万级数据excel导出功能如何实现?

    这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助。 原始需求:用户在UI界面上点击全部导出按钮,就能导出所有商品数据。
  • 02.06 10:17:45
    发表了文章 2023-02-06 10:17:45

    从打螺丝到月薪9.5k技术岗,只因选择了柠檬班进行培训学习

    近些年,各行各业的就业趋势都不容乐观,在从事软件测试岗位前,其实我干过不少的工作,送过外卖、跑过代驾、进厂打过螺丝、做过产线组长……最后好在峰回路转,让我偶然了解到了软件测试,并通过在柠檬班系统地学习软件测试,才找到这为之让我觉得理想的未来之路。
  • 02.01 17:28:17
    发表了文章 2023-02-01 17:28:17

    为什么大家都说 SELECT * 效率低?

    无论在工作还是面试中,关于SQL中不要用“SELECT *”,都是大家听烂了的问题,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。

2023年01月

  • 01.30 09:25:20
    发表了文章 2023-01-30 09:25:20

    通关小技巧!有了软件测试题库的加持,面试都有底气

    面试,是决定求职者是否能进入到自己心仪岗位的敲门砖,而对于很多第一次参加软件测试面试的求职来说,想要通过面试就得经过hr的初面以及技术官技术面,前者还好说,可以根据情况临场发挥,而后者,就是实打实的专业性问题。
  • 01.16 17:33:12
    发表了文章 2023-01-16 17:33:12

    怎样快速地迁移 MySQL 中的数据?

    我们通常会遇到这样的一个场景,就是需要将一个数据库的数据迁移到一个性能更加强悍的数据库服务器上。这个时候需要我们做的就是快速迁移数据库的数据。
  • 01.16 09:17:21
    发表了文章 2023-01-16 09:17:21

    新手春节复习必备!初级软件测试面试题以及免费题库告诉你

    软件测试工程师面试通常要经历技术面以及HR面,HR面一般都是日常问题,面试人可以临场发挥过去,但关乎岗位职责的技术面,可就没那么容易了,尤其是对于很多初次去面试测试岗位的没有任何测试岗位面试经验的转行人员,那么初级软件测试面试官都会问些什么样的问题呢?
  • 01.11 15:59:46
    发表了文章 2023-01-11 15:59:46

    前端重新部署如何通知用户刷新网页?

    有时候上完线,用户还停留在老的页面,用户不知道网页重新部署了,跳转页面的时候有时候js连接hash变了导致报错跳不过去,并且用户体验不到新功能。
  • 01.09 15:46:41
    发表了文章 2023-01-09 15:46:41

    为什么 java 容器推荐使用 ExitOnOutOfMemoryError 而非 HeapDumpOnOutOfMemoryError ?

    好久没写文章了, 今天之所以突然心血来潮, 是因为昨天出现了这样一个情况: 我们公司的某个手机APP后端的用户(customer)微服务出现内存泄露, 导致OutOfMemoryError, 但是
  • 发表了文章 2024-11-08

    go库介绍:Golang中的Viper库

  • 发表了文章 2024-11-06

    Go 文件的读取操作

  • 发表了文章 2024-11-04

    Java 线程的生命周期

  • 发表了文章 2024-10-30

    Mysql中搭建主从复制原理和配置

  • 发表了文章 2024-10-28

    为什么重写 equals 方法时必须同时重写 hashCode 方法?

  • 发表了文章 2024-10-24

    Spring进阶:初识动态代理

  • 发表了文章 2024-10-21

    在 Python 中创建列表时,应该写 `[]` 还是 `list()`?

  • 发表了文章 2024-10-17

    java性能调优涉及哪些方面

  • 发表了文章 2024-10-15

    利用java8 的 CompletableFuture 优化 Flink 程序

  • 发表了文章 2024-10-11

    Spring 事件监听机制源码

  • 发表了文章 2024-10-09

    Mysql的LSN是什么?

  • 发表了文章 2024-09-30

    Golang限流器time/rate正确打开姿势

  • 发表了文章 2024-09-26

    Spring BeanFactory深度讲解

  • 发表了文章 2024-09-24

    SpringBoot 整合jdbc和mybatis

  • 发表了文章 2024-09-20

    MySQL in和exists的取舍

  • 发表了文章 2024-09-18

    MethodHandle方法句柄使用分享

  • 发表了文章 2024-09-13

    11个Python循环技巧

  • 发表了文章 2024-09-11

    Java 语法糖是什么?

  • 发表了文章 2024-09-09

    Spring Event 的介绍

  • 发表了文章 2024-09-06

    【Java引用规范】强软引用

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息