- 博客(201)
- 资源 (6)
- 收藏
- 关注

原创 Chrome浏览器必装插件!尤其程序猿!
Chrome 浏览器有一个好处,就是插件极其丰富,只有你想不到的,没有你找不到的,这恐怕是 Chrome 浏览器被众多爱好者钟爱的原因吧。言归正传,今天来给大家推荐 10 款我自己珍藏的 Chrome 浏览器插件。1、crxMouse Chrome™ 手势crxMouse 可以方便、快捷、充分挖掘鼠标的所有操作,主要的功能包括:鼠标手势、超级拖曳、滚轮手势、平滑滚动、标签页列表等等。crx...
2020-04-14 17:26:13
1304
原创 Flutter dart代码混淆与解混淆
Dart 代码混淆(Obfuscation)可以 防止反编译和代码泄露,但也会导致 崩溃日志难以阅读。因此,在启用混淆的同时,我们需要保留调试符号文件(symbol files),以便后续 解混淆(Symbolization)。
2025-04-01 00:39:40
558
原创 Android Studio 右侧Gradle窗口只有test的task问题解决
Android Studio右侧Gradle窗口下只有test的task,其他的task都没有。重启Android Studio后,重新Sync一下工程,然后Task列表就出来了。勾选截图中选项,点击「Apply」,然后点击「OK」。
2024-11-29 18:32:14
579
原创 mac 安装HomeBrew
homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等功能。通过简单的指令可以实现包管理,而不用关心各种依赖和文件路径情况。重启终端之后,执行brew -v命令,正常输出就说明安装成功了。无法链接服务器下载,需要梯子,有梯子基本没有问题。
2024-06-11 17:53:13
1275
原创 TCP协议三次握手、四次挥手
需要注意的是,挥手过程中,客户端和服务器都需要发送和接收四个报文,因此整个挥手过程中需要8个数据包。在挥手过程中,客户端和服务器分别表示自己不在发送数据,但仍可以接收数据,以避免可能的数据丢失。最后,客户端和服务器都确认对方已经释放连接,关闭连接。需要注意的是,三次握手是建立可靠连接的基础,其目的是确认双方的发送和接收能力正常。在握手过程中,客户端和服务器都需要发送和接收三个报文,因此整个握手过程需要6个数据包。第一次挥手(FIN)第二次挥手(ACK)第三次挥手(FIN)第四次挥手(ACK)
2024-05-26 02:52:09
493
原创 接口设计的十八条规范
防止同一次请求被反复利用,增加密钥被破解的可能性,每次请求设置合理的过期时间(如:15分钟)。:了解各接口的QPS情况,确保上线后的稳定性。:防止API接口被频繁调用导致服务不可用。:保护重要数据(如:密码、银行卡号等)。:避免返回值结构不统一,便于接口维护。:拦截无效请求,保护系统资源。:提升复杂业务逻辑的接口性能。:保护敏感数据,防止隐私泄露。:防止多次请求产生错误数据。:便于快速分析和定位问题。:减少沟通成本,方便对接。:防止泄露敏感信息。:避免接口超时问题。:降低接口维护成本。
2024-05-26 02:36:54
1014
原创 Android API 30及更高版本网络权限设置
在 Android API 30 及更高版本中,Google 引入了更严格的网络安全策略,其中包括对应用程序的网络访问权限进行了更多的限制。是清单文件(AndroidManifest.xml)中的配置项,用于指定应用程序是否允许明文流量(非加密流量)的网络请求,明文流量是指未经加密的网络流量,可能存在安全风险。配置项,您可以灵活地定义应用程序的网络安全策略,以确保应用程序与网络资源之间的安全通信。:应用程序将被限制只能发送加密流量的请求(即 HTTPS 请求)。:应用程序可以发送明文流量的网络请求;
2024-03-14 14:40:20
2258
原创 Linux ping命令详解
PING(Packet Internet Groper), 因特网包探索器,用于测试网络连接量的程序。Ping是工作在TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送ICMP(Internet Control Message Protocol 因特网报文控制协议) Echo 请求报文,测试目的站是否可达及了解其有关状态。在网络中ping是一个十分强大的TCP/IP工具。用来检测网络的连通情况和分析网络速度;根据域名得到服务器IP;
2024-01-27 22:45:55
4784
原创 Android adb命令logcat日志分析
logcat是android中的一个命令行工具,可以用于得到程序的log信息。下面介绍adb logcat中的详细参数命令以及如何才能高效的打印日志,或者把日志保存到我们指定的位置。
2024-01-25 21:55:32
8511
1
原创 Linux下的Swap内存
swap space是磁盘上的一块区域,可以是一个分区,也可以是一个文件。所以具体的实现可以是swap分区也可以是swap文件。当系统物理内存吃紧时(所谓的吃紧,应该是指当释放了Cache和Buffer的内存,内存还是不够用~),Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问swap上存储的内容时,再将swap上的数据加载到内存中,这就是常说的换出和换入。交换空间可以在一定程度上缓解内存不足的情况,但是它需要读写磁盘数据,所以性能不是很高。
2023-09-18 20:54:18
1353
1
原创 Linux下的buff/cache
在Linux系统中,内存管理是一项极为重要的任务,内核通过分配页面来管理系统的内存。在保证内存有足够的空闲页可用的前提下,内核会尽量将页面分配给进程,以便进行内存管理。但是,当进程的内存需求超过了系统可用内存,内核就需要进行一些特殊的处理,通常是将部分进程的页置换到磁盘上的。则在内核获得了足够的可用空闲页面之后,利用这些页面创建缓存,并将被频繁读取的文件系统数据存储在缓存中。可以根据系统的实际情况进行调整,以提高系统的性能。默认值设置得很保守,可以根据系统的需求进行调整,以提高系统的性能。
2023-09-17 19:00:25
4468
1
原创 Linux命令:free命令
free命令可以显示Linux系统中空闲的已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。参数说明-b以Byte为单位显示内存使用情况-k以KB为单位显示内存使用情况-m以MB为单位显示内存使用情况-g以GB为单位显示内存使用情况-h根据内存大小自动选择合适的单位显示-o不显示缓冲区调节列-s持续观察内存使用状况-c和-s配合使用-t显示内存总和列-V显示版本信息。
2023-09-17 18:45:16
4974
原创 Android应用代码中获取鸿蒙系统信息
Android应用可以在鸿蒙系统中运行是因为鸿蒙系统提供了一种兼容层(compatibility layer)来支持Android应用的运行。鸿蒙系统的兼容层是一个软件层,用于在鸿蒙系统内部模拟Android运行环境。这个兼容层可以实现在鸿蒙系统上运行Android应用的关键功能,例如处理Android应用程序包(APK)的安装、解析和执行,还包括实现Android应用所依赖的核心组件、库和API的功能。
2023-07-20 21:04:13
1812
原创 top命令详解
top命令,它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。-d :指定 top 命令的刷新时间间隔,单位为秒。-n :指定 top 命令运行的次数后自动退出。-p :仅显示指定进程ID的信息。-u :仅显示指定用户名的进程信息。-H:在进程信息中显示线程详细信息。-i:不显示闲置(idle)或无用的进程。-b:以批处理(batch)模式运行,直接将结果输出到文件。-c:显示完整的命令行而不截断。-S。
2023-07-19 23:02:40
8152
1
原创 SpringBoot之Transactional事务
如果方法没有关联到一个事务,容器不会为他开启事务,如果方法在一个事务中被调用,该事务会被挂起,调用结束后,原先的事务会恢复执行。每一条语句处于一个单独的事务中,在这条语句执行完毕时,如果执行成功则隐式的提交事务,如果执行失败则隐式的回滚事务。事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。如果方法已经运行在一个事务中,则原有事务挂起,新的事务被创建。如果方法运行时,已经处在一个事务中,那么加入到这个事务,否则自己新建一个新的事务。
2023-06-04 03:09:42
3986
原创 Redis过期删除策略和内存淘汰机制
除了定时遍历之外,它还会使用惰性策略来删除过期的key,所谓惰性策略就是在客户端访问这个key的时候,Redis 对 key 的过期时间进行检查,如果过期了就立刻删除。假如你的过期key,靠定期删除没有被删除掉,还停留在内存里,除非你的系统去查一下那个key,才会被Redis给删除掉,这就是所谓的惰性删除,即当你主动去查过期的key时,如果发现key过期了,就立即进行删除,不返回任何数据。,过期扫描不会遍历过期字典中所有的 key,而是采用了一种简单的贪心策略。,主库在 key 到期时,会在。
2023-05-24 00:37:06
1392
原创 IDEA项目代码标红,但可以正常编译运行
有时候打开项目工程,会遇到莫名其妙的代码飘红报错,但是代码却可以正常编译运行。这个原因是因为IDEA有缓存,只需要刷新一下缓存就好了。然后重启IDEA,OK~困扰多年的问题解决!
2023-05-23 19:13:02
3619
1
原创 Redis为什么快?
不过这里要注意,如果Redis中有海量的 key 值的话,这个ReHash过程会很长很长,虽然采用渐进式ReHash,但在ReHash的过程中还是会导致请求有不小的卡顿,并且像一些统计命令也会非常卡顿,比如keys按照Redis的配置每个实例能存储的最大的key的数量为2的32次方,即2.5亿,但是尽量把key的数量控制在千万以下,这样就可以避免ReHash导致的卡顿问题,如果数量确实比较多,建议采用分区hash存储。所以,我们常说,一个哈希表是由多个哈希桶组成的,每个哈希桶中保存了键值对数据。
2023-05-21 14:26:31
2329
2
原创 PostgreSQL EXTRACT 日期函数
的 DML(即数据库管理语言)函数,它主要用于从一个日期或时间型的字段内抽取年、月、日、时、分、秒等数据,函数返回类型为。如果我们数据库表中存储的字段类型是TIMESTAMP,但是我们查询结果想返回毫秒时间戳,该如何转换呢?
2023-05-21 01:14:25
2926
原创 count(列名)、count(1)、count(*)的区别
这是SQL92定义的标准统计行数的语法,跟数据库无关,与NULL也无关。:在统计时,会忽略列值为空的数据,就是说某个字段的值为null时不统计。:用1表示代码行,在统计时,不会忽略列值为null的数据;:包括了所有列,在统计时,不会忽略列值为null的数据;是统计列值数量,不计NULL,相同列值算一个。
2023-05-19 23:10:13
728
原创 UML类与类之间的关系
依赖(Dependency)关联(Association)聚合(Aggregation)组合(Composition)泛化(Generalization)实现(Implement)关系的强弱顺序:(由强到弱)实现泛化组合聚合关联依赖关系越弱,耦合度越低,关于耦合度可以简单的理解为,当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强。依赖关系比较好区分,它是耦合度最弱的一种,在编码中表现为类成员函数的局部变量、方法参数、返回值或对静态方法的调用;关联聚合与组合。
2023-03-25 02:24:16
1184
原创 Java List<Map<String, Object>>排序
在开发过程中,我们经常会遇到List格式的数据,需要根据Map集合的某一键值进行排序,我们可以使用Comparator工具类对其排序。废话不多说,直接上代码。
2023-03-11 18:05:21
3452
原创 Linux下配置完环境变量后,ls、vi等命令失效
最近在Linux环境下,设置完JAVA环境变量之后,突然发现。然后在将之前修改的环境变量回退,重新进行设置即可。
2023-03-08 21:36:16
2079
原创 MySQL中int(10)和int(11)的区别
显示宽度整数类型的取值范围是无关的。显示宽度只是指明 mysql 最大可能显示的数字个数,数值的位数小于指定的宽度时左侧用数字 0 填充。如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。
2023-02-27 20:16:01
3180
原创 PostgreSQL 对于大小写敏感总结
在开发中,使用PostgreSQL数据库时,SQL查询结果转Map后,发现查询字段在Map中不存在,仔细核对后发现,字段全部转换成小写的啦。查找资料发现,在默认的情况下,PG数据库把所有的SQL语句都会转化成小写,再执行。那么如果一定要保留大写的该如何处理呢?SQL 语法关于双引号的规则:;,并且允许在标识符中使用空白。 在双引号中,,比如, FOO"BAR"BAZ 解析成fooBARbaz,而 “A weird”" name" 变成 A weird" name。举个例子:未添加引号查询结果:添加引号查
2023-02-21 21:46:27
2021
原创 Git 基本命令汇总
适用于在其他分支上修复了bug,但是这个bug在当前分支上依然存在,所以可以复制这个commit的过程,不必重写代码。在开发过程中,我们基本都是使用Git进行代码管理,Git命令是必须要会的,下面就把Git常用命令总结下来。的话会用一个vim打开文件让你写入massage,有未追踪的文件将会失败,需要。是指直接在后面写上版本的注释,不加。在我们不指定专门的文件夹的时候,默认比较的是整个项目。
2023-02-19 23:27:52
5232
1
原创 Android 根据mapping文件还原混淆代码
app发布的时候都会做混淆处理,但是当发生错误的时候,只能看到一些混淆后的代码很难看清楚哪里错了,那么如何将混淆后的代码进行还原呢?Android sdk 目录下有专门的工具可以帮助我们进行还原。
2023-02-09 16:07:58
5773
原创 Mac 打开JD-GUI报错:ERROR launching ‘JD-GUI‘
Mac下打开JD-GUI报错:ERROR launching 'JD-GUI'No suitable Java version found on your system
2023-01-30 21:02:16
2867
原创 VisualVM 启动报错Error Starting VisualVM:You are running VisualVM using Java Runtime Environment(JRE)
【代码】VisualVM 启动报错Error Starting VisualVM:You are running VisualVM using Java Runtime Environment(JRE)
2023-01-06 19:31:52
1521
3
原创 Java之线程状态
New- 新建状态;Runnable- 运行状态;Blocked- 被阻塞状态;Waiting- 等待状态;- 超时等待状态;Terminated- 终止状态;,但没有调用start()方法,线程处于New状态;,且调用了start()方法,线程处于Runnable状态;,且调用了start()方法,run()方法中调用了或方法,线程处于Waiting状态;,且调用了start()方法,run()方法中调用了方法,线程处于状态;,且调用了start()方法,run()方法中获取monitor。
2022-12-30 00:35:13
597
原创 iostat 命令详解
iostat是Linux系统上查看I/O性能最基本的工具,其全称为。iostat主要用于输出磁盘IO和CPU的统计信息。iostat的输出结果大多数是一段时间内的平均值,因此难以反映峰值情况;iostat仅能对系统整体情况进行分析汇报,却不能针对某个进程进行深入分析;iostat未单独统计IO处理信息,而是将IO处理时间和IO等待时间合并统计,因此包括await在内的指标并不能非常准确地衡量磁盘性能表现。
2022-11-24 22:27:18
6017
原创 Git 之 git tag标签使用
tag可以称它为标签。简单的理解,tag就是对某次commit的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次commit起一个v2.0这样的标签来标识里程碑的意义。tag轻量标签(lightweight):只是某个commit的引用,可以理解为是一个commit的别名;附注标签(annotated):是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间以及其他的标签信息。
2022-10-20 22:32:44
5593
原创 SpringBoot之ApplicationRunner
在开发的过程中,有时候我们的应用在启动后需要执行一些操作,比如初始化配置、加载模板文件等等。我们可能第一个想到的是在启动类的main方法中调用,如果后续迭代过程中需要增加其他初始化的操作时,会导致启动类的main方法越来越长,代码看着不友好。// 初始化操作 . . . } }在SpringBoot中,提供了一个接口,可以达到这样的效果。
2022-10-19 21:39:49
1676
原创 SpringBoot @Value给静态变量注入值
SpringBoot中给普通变量注入值只需在变量上添加@Value注解即可。给普通变量赋值时,直接在变量声明之上添加@Value()注解即可。注需要在类上添加@Component注解。当要给静态变量注入值的时候,若是在静态变量声明之上直接添加@Value()注解是无效的。虽然在编译和运行上没有报错,但是mailName、mailPwd的值都是NULL。那么如何给静态变量注入值呢?Spring不允许/不支持把值注入到静态变量中;Spring的@Value依赖注入是依赖set()方法;set()...
2022-07-16 02:37:45
884
1
原创 SpringBoot @Value注解
直接附在属性名上,在Bean初始化时,会赋初始值。注解将配置文件中的属性注入到容器内组件中(可用在。空时,此时name属性的值为。等Spring托管的类中)没有对应值是,启动报错。
2022-07-16 02:08:17
1820
原创 ClickHouse 函数
文章目录一、日期函数1、时间或日期截取函数(返回非日期)2、时间或日期截取函数(返回日期)3、日期或时间日期生成函数二、类型转化类函数1、精度保留(非四舍五入)2、字符串转化为整数(非整数的字符串返回0)3、日期与时间日期转化4、转化为字符型5、查看数据类型三、字符串操作1、基本字符串操作2、字符串查找3、字符串替换4、字符串分割5、字符串拼接四、条件语句五、数学函数六、舍入函数七、URL操作函数八、IP操作函数九、表操作1、表连接操作2、limit操作十、字典操作一、日期函数1、时间或日期截取函数(返
2022-05-01 01:30:29
14698
原创 SpringBoot AOP切面实现
文章目录一、AOP简介二、AOP体系与概念三、AOP实例1、创建SpringBoot工程2、添加依赖3、AOP相关注解3.1、@Aspect3.2、@Pointcut3.2.1、execution()3.2.2、annotation()3.3、@Around3.4、@Before3.5、@After3.6、@AfterReturning3.7、@AfterThrowing一、AOP简介AOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(其余两
2022-04-30 02:36:49
7431
1
android开发MediaPlayer+Service MP3音乐播放器
2013-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人