自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 校招常见面试问题

类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下 7 个阶段:加载:通过类的全限定名(包名 + 类名),获取到该类的.class文件的二进制字节流,将二进制字节流所代表的静态存储结构,转化为方法区运行时的数据结构,在内存中生成一个代表该类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口连接:验证、准备、解析 3 个阶段统称为连接。

2026-02-16 15:08:34 912

原创 金字塔原理:掌握高效沟通的艺术

本文旨在探讨和总结《金字塔原理》一书中的核心概念与实践策略,通过实例解析,展示如何运用金字塔结构来增强表达的逻辑性和说服力,从而提高个人在工作和生活中的沟通效率。

2026-03-03 20:06:58 423

原创 LeetCode第543题

给你一棵二叉树的根节点,返回该树的直径。二叉树的直径是指树中任意两个节点之间最长路径的长度。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的长度由它们之间边数表示。

2026-03-01 13:18:10 448

原创 最大可购买的宝石数量

题目描述橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为 gems[i],0 <= i < n,n = gems.length。宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续。例如,客户最大购买宝石个数为 m,购买的宝石编号必须为 gems[i], gems[i+1], ..., gems[i+m-1] (0 <= i < n, m <= n)。假设你当前拥有总面值为 value 的钱,请问最多能购买到多少个宝石。如果无法购买宝石,则返回 0。

2026-02-28 17:04:01 367

原创 MySQL写入一条数据的流程是怎样的?

如果是我,我会按照这几个维度MySQL 基本架构连接器查询缓存分析器优化器执行器Undo LogRedo LogBinlog事务两阶段提交数据刷入磁盘。

2026-02-27 17:27:10 322

原创 Java锁实现方式

首先,我们先来看下线程安全性的定义,为什么需要锁?线程安全,即在多线程编程中,一个程序或者代码段在并发访问时,能够正确地保持其预期的行为和状态,而不会出现意外的错误或者不一致的结果。而解决线程安全问题,主要分为两大类:1、无锁;2、有锁。无锁的方式有:局部变量;对象加 final 为不可变对象;使用 ThreadLocal 作为线程副本对象;CAS,Compare-And-Swap 即比较并交换,是 Java 十分常见的无锁实现方式。小白:那有锁的方式呢,怎么通过加锁保证线程

2026-02-27 16:57:29 910

原创 后端开发术语大全

工欲善其事,必先利其器;士欲宣其义,必先读其书。后台开发作为互联网技术领域的掌上明珠,一直都是开发者们追逐的高峰。本文将从后台开发所涉及到的技术术语出发,基于系统开发、架构设计、网络通信等几个方面让大家对后台开发有一个清晰的了解,讲解全面易懂。

2026-02-26 13:50:14 793

原创 身份验证实现方式

在前端项目开发中,验证用户身份主要有 4 种方式:Session、JWT、SSO 和 OAuth 2.0。那么这四种方式各有什么优缺点呢?今天,咱们就来对比下!

2026-02-25 21:51:28 522

原创 LeetCode第42题

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

2026-02-25 20:23:41 302

原创 优雅的限流

前言去年夏天某个凌晨,我接到某金融平台报警:支付接口错误率飙升至35%。赶到机房时,发现数据库连接池耗尽,大量请求堆积成山——这就是典型的未做限流防护的灾难现场。就像高速公路不设收费站,高峰期必然堵成停车场。限流的本质不是拒绝服务,而是用可控的牺牲保护核心链路。某电商大促时,他们用令牌桶算法将秒杀接口QPS限制在5万,虽然流失了20%的突发流量,但保住了99%的核心交易成功率。

2026-02-25 15:33:57 527

原创 异步编程实现方式

我们日常开发的时候,经常说到异步编程。比如说,在注册接口,我们在用户注册成功时,用异步发送邮件通知用户。那么,小伙伴们,你知道实现异步编程,一共有多少种方式吗?我给大家梳理了9种~~使用Thread和Runnable使用Executors提供线程池使用自定义线程池使用Future和Callable使用CompletableFuture使用ForkJoinPoolSpring的@Async异步MQ实现异步使用Hutool工具库的ThreadUtil

2026-02-24 23:53:16 650

原创 MySQL 和 Elasticsearch 的区别

MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景。本文将从以下几个方面对它们进行比较和分析:数据模型查询语言索引和搜索分布式和高可用性能和扩展性使用场景

2026-02-24 23:41:28 487

原创 循环中你还在使用 Thread.sleep 吗

如果对文中示例有所了解,你会发现本质其实就是一个定时问题,每隔一段时间进行操作直至达到条件,按文中示例,便是每隔 3 秒检查标记量并做一些事情,因此我们完全可使用调度 API 进行替换。通过这种方式,线程可以等待特定条件的变化,而无需频繁轮询和消耗 CPU 资源。来避免频繁检查标记量的值,看起来非常合理对吧。任务管理:调度器自动管理任务执行,无需显式控制线程的休眠和唤醒,避免了忙等待的问题。不能捕捉任务中的异常,任务异常可能导致后续的定时任务停止。在代码上稍显复杂,尤其在简单的定时任务中,可能稍显复杂。

2026-02-24 13:14:38 928

原创 优先使用 try-with-resources 而非 try-finally

try-with-resources是 JDK 7 中引入的一个新的异常处理机制,它能让开发人员不用显式的释放try-catch语句块中使用的资源。

2026-02-24 09:38:29 849

原创 消息队列使用场景以及使用问题

你可以把消息队列理解为一个使用队列来通信的组件。它的本质,就是个转发器,包含发消息、存消息、消费消息的过程。最简单的消息队列模型如下:我们通常说的消息队列,简称,它其实就指消息中间件。

2026-02-23 22:13:28 852

原创 Redis的15种使用场景

它通过位图(bit array)存储和操作数据,可以高效地处理大量的签到操作,特别适合于需要频繁更新并查询某个用户是否已签到的场景。Redis适合实现用户消息时间线(Timeline)功能.用户消息时间线通常用于展示用户动态、朋友圈、微博等场景,核心需求是按时间顺序存储和展示用户的相关消息或动态。利用 Sorted Set 的 有序性 和 范围查询 特性,将任务的执行时间作为分数(score),任务数据作为成员(member),定时轮询获取到期的任务。每次请求时,移除时间窗口外的旧记录,并添加新记录。

2026-02-23 22:06:44 876

原创 LeetCode第131题

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。

2026-02-23 20:34:07 186

原创 LeetCode第20题

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

2026-02-22 19:17:25 273

原创 LeetCode第54题

给你一个 m 行 n 列的矩阵 matrix ,请按照顺时针螺旋顺序 ,返回矩阵中的所有元素。

2026-02-22 17:18:31 248

原创 LeetCode第367题

给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。不能使用任何内置的库函数,如  sqrt 。

2026-02-21 21:56:07 249

原创 LeetCode第2368题

现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数数组 restricted 表示受限节点。在不访问受限节点的前提下,返回你可以从节点 0 到达的最多节点数目。注意,节点 0 不会标记为受限节点。

2026-02-21 18:59:00 356

原创 MySQL索引失效的原因可能有哪些

MySQL 索引在优化查询性能中扮演着关键角色,尤其是有联查或者数据量大的情况,但是,一些操作或写法会导致索引失效,索引失效,等于无用功了。

2026-02-19 23:11:20 837

原创 LeetCode第236题

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

2026-02-19 22:45:30 294

原创 BigDecimal用法

在日常开发中,很多小伙伴喜欢用 BigDecimal 来处理精确计算,比如钱、分数、比例啥的。理论上,它比 double 或 float 更精确,但如果你用得不对,精度丢失的问题会让你哭晕在厕所。今天我们就来聊聊 ,错误使用BigDecimal的6种场景,为什么会发生问题,以及怎么避免问题,希望对你会有所帮助。

2026-02-19 22:16:57 471

原创 实用Web应用程序安全测试技巧

本文探讨了基本的漏洞和测试技术,介绍一些增强 Web 应用程序渗透测试技能的实用见解。本文结合了我专门针对 QA 工程师和分析师的一系列帖子,提供了对基本网络安全漏洞的实际探索。目的是为 QA 工程师/测试人员/分析师提供弥合软件 QA 和网络安全之间差距的知识,从而形成统一的方法来确保 Web 应用程序的完整性和安全性。

2026-02-12 22:25:50 810

原创 软件测试人员怎样学习AI

软件测试人员想要学习 AI(人工智能)和相关技术,具有一定的优势,因为他们已经具备了一定到编程、逻辑分析、数据处理等方面的经验。在 AI 领域,尤其是机器学习和深度学习的开发、测试、和部署中,这些技能都很有帮助。以下是学习路径和建议:

2026-02-12 21:00:12 933

原创 DevOps面试116个热门问题及答案

DevOps 是当今科技界最热门的流行语之一,尽管它不仅仅是一种流行语。它是开发和运营团队之间的协作,他们共同努力以更快、更高效地交付产品。在过去几年中,DevOps 工程师的职位空缺大幅增加。谷歌、Facebook 和亚马逊、ByteDance等跨国公司经常有多个 DevOps 工程师专家的空缺职位。然而,就业市场竞争激烈,DevOps 工程师面试中提出的问题可能涵盖许多具有挑战性的主题。 

2026-02-11 22:19:32 1163

原创 从入门到深入,Docker新手学习教程

Docker 彻底改变了我们开发、交付和运行应用程序的方式。它使开发人员能够将应用程序打包到容器中 - 标准化的可执行组件,将应用程序源代码与在任何环境中运行该代码所需的操作系统 (OS) 库和依赖项相结合。本文将介绍 docker 的关键概念、安装、命令、构建映像、管理容器、网络、数据持久性以及其他一些高级主题。

2026-01-01 19:23:29 776

原创 Shell常用命令

Shell是什么平时经常在Linux操作系统中使用各种命令,比如查看当前的目录文件,我们会使用"ls"或者"ls -l",这些字符串参数实际上会被"某段程序"执行并启动它。这个负责将用户输入的字符串转换为需要执行程序的东西叫做"shell",即帮用户更方便使用操作系统接口的“壳”。同样的壳还有当我输入Maven+相关参数的时候是不是就会去执行相应的功能,我们输入sql语句的时候,数据库引擎是不是也会各种调用,一样的道理

2020-07-22 16:22:40 61

原创 JaCoCo + Resin + Ant + Jenkins统计代码覆盖率

JaCoCo资源:官方网站:https://www.jacoco.org配置Resin:#修改cluster-default.xml文件,在<server-default>标签内,<jvm-mode>标签下添加:<jvm-arg>-javaagent:/usr/local/resin/resin-4.0.63/lib/jacocoagent.ja...

2020-01-02 17:08:27 545

原创 CentOS 8设置防火墙

启动防火墙:systemctl start firewalld.service关闭防火墙:systemctl stop firewalld.service重启防火墙:systemctl restart firewalld.service开机启用防火墙:systemctl enable firewalld.service开机禁用防火墙:systemctl...

2019-12-18 15:25:27 5375

原创 VMware Workstation Pro安装CentOS 8无法自适应屏幕

依次安装:第一种:dnf install xorg-x11-drv-vmwarednf install open-vm-toolsdnf install open-vm-tools-desktop第二种:yum install xorg-x11-drv-vmwareyum install open-vm-toolsyum install open-vm-tools-d...

2019-12-13 17:42:43 1867

原创 解析XML文件之Dom4J

XML资源:Maven Repository-Dom4J:https://mvnrepository.com/artifact/dom4j/dom4jMaven Repository-Jaxen:https://mvnrepository.com/artifact/jaxen/jaxenXML实战:目标文件(resources/car.xml)<?xml version...

2019-12-07 21:45:41 345

原创 消灭 Java 代码的“坏味道”

明代王阳明先生在《传习录》谈为学之道时说:私欲日生,如地上尘,一日不扫,便又有一层。着实用功,便见道无终穷,愈探愈深,必使精白无一毫不彻方可。代码中的"坏味道",如"私欲"如"灰尘",每天都在增加,一日不去清除,便会越累越多。如果用功去清除这些"坏味道",不仅能提高自己的编码水平,也能使代码变得"精白无一毫不彻"。这里,整理了日常工作中的一些"坏味道",及清理方法,供大家参考。

2019-12-06 17:38:03 61

原创 ps命令常用用法

前言ps(Process Status)命令是Linux中最常见的命令之一,它用来列出当前系统运行中的进程的状态信息。它只显示命令执行时的进程状态,如果想要动态列出状态信息,可以选择使用top命令。命令基本介绍基本格式ps [options]常用参数-A显示所有进程(同-e)-a显示当前终端的所有进程-u显示进程的用户信息-o以用户...

2019-08-27 11:44:27 470

原创 POI读写Excel入门

写Excel示例:package com.example.test;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf...

2019-08-17 16:32:27 201

转载 如何理解 Linux shell中“2>&1”?

前言有时候我们常看到类似这样的脚本调用:./test.sh>log.txt2>&1这里的2>&1是什么意思?该如何理解?先说结论:上面的调用表明将./test.sh的输出重定向到log.txt文件中,同时将标准错误也重定向到log.txt文件中。有何妙用(如果已经明白是什么作用,可跳过此小节)上面到底是什么意思呢?我们来看下面的...

2019-07-01 13:49:34 255

原创 Android Monkey测试

Monkey是Google提供的一个命令行工具,可以运行在模拟器或实际设备中。它向系统发送伪随机的用户事件(如按键、手势、触摸屏等输入),对软件进行稳定与压力测试。实例:Windows保存到电脑:adb shell monkey -p your.package.name -v --throttle 300 --ignore-timeouts --ignore-crashes --pc...

2019-04-24 14:48:10 336

转载 MySQL常用命令

Windows服务-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)连接与断开服务器mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VAR...

2019-04-08 14:12:39 222

原创 ADB常用命令

官方文档:https://developer.android.com/studio/command-line/adb?hl=zh-cnadb(Android Debug Bridge) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。...

2019-04-07 09:23:08 377

Studio 3T 官网下载

从https://studio3t.com下载 版本:2018.4.6 (08-Oct-2018)

2018-10-11

xmlpull + kxml

xmlpull-1.1.3.1 + kxml2-2.3.0 Pull解析步骤: 1.创建解析器工厂 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 2.创建解析器对象 XmlPullParser parser = factory.newPullParser(); 3.设置解析文件 parser.setInput(new FileInputStream(new File&#40;"res/book.xml"&#41;), "UTF-8"); 4.第一个解析事件 int eventType = paser.getEventType(); 5.使用循环判断是否继续解析 while (eventType != XmlPullParser.END_DOCUMENT) {}

2019-04-06

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

TA关注的人

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