使用 Fiddler 进行模拟器抓包

Fiddler 是一款比较常用的网络抓包工具,本文记录下使用其完成对模拟器中请求进行抓包的过程。 点击链接 官网下载 Fiddler,可能需要翻墙。下载完毕后,常规安装并登录后打开应用。 点击右上角⚙图标,进入设置页面 选择 HTTPS 选项卡,点击 Trust root certficarte ,获取 root 权限。获取完毕后,勾选下方复选框,以支持对 HTTPS 协议的请求。 展...

如何优雅的统计代码耗时

一、前言代码耗时统计在日常开发中算是一个十分常见的需求,特别是在需要找出代码性能瓶颈时。 可能也是受限于 Java 的语言特性,总觉得代码写起来不够优雅,大量的耗时统计代码,干扰了业务逻辑。特别是开发功能的时候,有个感受就是刚刚开发完代码很清爽优雅,结果加了一大堆辅助代码后,整个代码就变得臃肿了,自己看着都挺难受。因此总想着能不能把这块写的更优雅一点,今天本文就尝试探讨下“代码耗时统计”这一...

Mac 安装 brew

一、前言brew 是 Mac 和 Linux 下的包管理器,但是需要手动安装,在国内操蛋的网络环境下,想要不翻墙安装,还得花点功夫。本文记录在非翻墙情况下,如何安装 brew。 二、安装流程2.1 官方步骤/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/inst...

Java 浅拷贝性能比较

一、前言实际开发中,经常会遇到对象拷贝的需求,本文就结合日常开发过程中,使用到的浅拷贝技术,进行性能比较,看看谁更强。 重要: 下面将会花大量篇幅,列出各种类型浅拷贝的代码,你可以直接拖到文章末尾,看性能对比结果。然后再根据你中意的对象回过头来看它的代码,避免疲劳。 首先创建一个用于拷贝的 Bean,如下所示: import lombok.AllArgsConstructor; impor...
Java

Lombok 子类如何使用 @Builder

一、前言业务开发中,子类父类还算是经常用到,Lombok 的 @builder 提供的链式调用帮助我们更轻松的创建对象。但是实验后却发现子类的 @Builder 是不会包含父类的属性。 假设存在父类 A: @Data @Builder public class A { private String aName; private String aAge; }...

Java Fail-Fast 与 Fail-Safe 特性

一、前言在 Java 的集合结构中,如果我们同时进行遍历(for-each, iterator)和集合修改(add, set, remove…)操作时,就有可能发生异常。例如,线程 T1 在对集合进行遍历,而此时线程 T2 对集合进行添加元素;亦或者线程 T1 在对集合进行遍历的过程中,进行删除元素操作。 不同的集合在遇到上述这种情况时,会有不同的处理。按照处理的不同,划分为 Fail-Fa...
Java

详解 Caffeine Cache

一、前言在项目开发中,为提升系统性能,减少 IO 开销,本地缓存是必不可少的。最常见的本地缓存是 Guava 和 Caffeine,在 《详解 Guava Cache》中已经为大家介绍了 Guava,本篇文章将为大家介绍 Caffeine。 Caffeine 是基于 Google Guava Cache 设计经验改进的结果,相较于 Guava 在性能和命中率上更具有效率,你可以认为其是 Gu...
Java

SpringBoot @Value 解析集合配置

一、前言在日常开发中,经常会遇到需要在配置文件中,存储 List 或是 Map 这种类型的数据。Spring 原生是支持这种数据类型的,以配置 List 类型为例,对于 .yaml 文件配置如下: test: list: - aaa - bbb - ccc 对于 .properties 文件配置如下所示: test.list[0]=aaa test.list[1]...

Java 线程池实现原理及其在美团业务中的实践

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核 CPU 成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C 提供的线程池:ThreadPoolExecutor 类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。 本文开篇简述线程池概念和用途,接着结合线程池的源码,帮助读者领略线程池的设计思路,最后回归实践,通过案例...

Windows Terminal 上手把玩指南

Windows 平台的终端一直以来的确不好用,被 mac 和 linux 吊着锤。历经了 cmd、powershell、FluentTerminal,微软最新的 Windows Terminal 终于算是进入可用状态,今天就来把玩把玩。 一、安装安装前提是 Win10 系统,打开 Windows Store 并搜索 Windows Terminal 点击安装就行。我挂着梯子的时候,进不去商店...

上传 Jar 包至 Maven 中央仓库

一、前言随着时间积累,在平常写自己的代码过程中,会有类或者是模块,比较通用,许多项目都能用得到。我们就可以把这些部分抽取成一个公共包,方便其他项目去使用。 本地 install 只能保存在本地中,因此将其上传到中央仓库中,平常就能够轻松的去使用了。上传 Jar 包的过程还算简单,本文将记录这一过程,系统环境为 Windiws。 另外,请使用 windows 自带的 CMD 作为整篇文章的命令...

MySQL 常用用户权限管理命令

一、用户1.1 创建用户-- 创建用户,并允许其在任何IP登陆 create user 'username'@'%' identified by 'password'; -- 创建用户,并允许其在任何主机登陆,不设置密码 create user 'username'@'%'; -- 创建用户,并仅允许使用ji...