- 博客(229)
- 收藏
- 关注
原创 为什么不排序的数据库查询结果顺序会不一致
当ALTER TABLE、OPTIMIZE TABLE或大量DML操作后,这些物理结构会发生重组,直接影响无序查询的返回顺序。不指定ORDER BY时,数据库认为应用程序不关心结果顺序,会选择最高效的数据获取方式,而这种方式可能随时变化。
2025-06-24 16:54:36
272
原创 G1在GC的时候会占用内存吗?占用的是分配的内存还是分配外的内存
总结:G1 GC确实需要额外内存空间来支持其运行,这部分内存属于堆外内存,不计入您设置的堆大小限制,但会占用系统资源。对于1G堆,建议额外预留约20-30%的内存用于GC相关数据结构。
2025-05-13 20:16:10
432
原创 G1JVM内存分配机制详解
当您的应用负载增加,内存压力上升时,JVM会逐渐增加堆空间,但仍会保持在安全范围内,不会超过计算后的最大限制(约3GB减去必要的非堆开销)。总结:JVM内存分配是动态的,基于实际需求而非简单按百分比计算,这确保了资源的高效利用。
2025-05-13 20:13:01
485
原创 数仓面试之Hive与Hbase的区别
hivehbase基于hdfs平台的nosql的数据源数据是存放在hdfs上的基于数据库本身的实时查询,而不是去运行MapReduce。
2024-12-27 23:27:17
209
原创 vs code 正则提取文本
2、提取文本,保留中括号及中括号内的内容。[^.]+ 表示除了.以外的任意个字符。1、使用替换功能将逗号。$1 表示第1个分组。
2024-10-18 03:26:22
963
原创 js-promise、async/await
写成async/await,这样async函数返回里面只有await 修饰就会等待await修改的函数执行完成以后再执行下一句。promise,简单就就是回调的一种简化了回调地狱(如果多个调用是异步并且有结果依赖,那么就需要写成回调)。async/await,需要成对使用,是对promise的更高级的抽象,
2024-06-19 00:08:31
298
原创 jvm工具-jps、jstat、jmap、jstack
一、jpsjps -v 【输出其他参考二、jstatjstat -gc 【vmid】 【查看Java堆的状态】jstat -gcutil 【vmid】 【查看Java堆占用百分比】S0 幸存0区域S1 幸存1区域E 伊甸园区O 老年区M 元空间 【有可能是P,表示永久代。具体的和jdk版本有关,笔者jdk版本是8】YGC 年轻代的GC,也就是Minor GC ,轻量GC ,次数15YGCT 轻量GC所耗时间 0.223秒FGC 重量级GC次数 3。
2024-06-16 21:27:56
504
原创 内存-VSS、RSS、PSS、USS
虚拟耗用内存大小,是进程可以访问的所有虚拟内存的总量,包括进程独自占用的物理内存、和其他进程共享的内存、分配但未使用的内存。比例驻留内存大小,包括进程独自占用的物理内存、比例分配和其他进程共享的内存(共享库内存会均分到各个共享进程)。驻留内存大小,是进程当前实际占用的物理内存大小,包括进程独自占用的物理内存、和其他进程共享的内存。独立内存大小,表示进程独自占用、不与其他进程共享的物理内存。
2024-06-16 20:59:20
460
原创 内存中的buffer和cache
如果数据不在Cache中,内核会从文件系统中读取数据,并将一份拷贝存储在Cache中,以备将来的读取请求。它通过预加载常用文件的内容,提高了对这些文件的访问速度,从而加速文件系统的读取操作。当数据从磁盘或其他设备读取到内存时,首先会存储在Buffer中,以提供对这些数据的快速访问。Cache更侧重于文件系统的读取,通过缓存文件数据和元数据提高文件系统的整体读取速度。Buffer存储的是I/O操作的数据块,通常是对物理设备的读写请求的中介。Cache存储的是文件系统的数据块,包括文件的元数据和实际内容。
2024-06-16 20:56:46
1309
原创 redis-大key及影响
Redis大Key其实并不是字面意思,不是指存储在Redis中的某个Key的大小超过一定的阈值,而是指该Key所对应的value过大。对于string类型来说,一般情况下超过10KB则认为是大Key,对于set,zset,hash等类型来说,一般数据超过5000条即认为是大Key。当Redis存储的Key过大时,会对Redis的性能产生负面影响,如内存使用率过高、写入和读取数据的速度变慢等。
2024-06-16 20:19:48
712
原创 cpu100%原因及排查方向
根据Java文档,默认情况下,如果Java进程花费其时间的98%以上用于GC,并且每次运行中仅回收不到2%的堆,则JVM配置为抛出此错误。频繁的IO操作:如果代码中频繁进行磁盘或网络IO操作,会导致CPU等待IO操作完成,从而造成CPU占用率过高。:一款商业化的Java性能分析工具,它可以提供更详细的性能分析信息,帮助我们找出CPU占用率过高的原因。数据库中的数据表数据太大,由于没有判断带有条件,导致查询全表数据,查询出来的数据量太大,内存溢出;给服务器的堆内存设置的太小,没有足够的内存可以使用;
2024-06-15 21:54:04
1218
原创 大数据-基础架构设施演进的过程
以Hadoop为代表的离线数据处理基础设施1.1、围绕HDFS和MR,产生了一系列的组件1.2、随着对批处理性能要求越来越高,产生了Tez、Spark、Flink等计算引擎。RM模型也逐步进化成DAG模型。DAG模型1、增加计算模型的抽象和并发能力根据聚合操作把任务分为多个stage,每个stage由一个或者多个task组成,task可以并行执行,从而提供计算的并行能力2、减少计算过程中的中间结果IO操作。
2024-03-17 00:15:37
428
原创 java日志-干货系列-拒绝长篇大论
日志门面:简单点说就是统一了操作日志的api,然应用层无需关心底层的日志框架是什么,因为api都是同一个。日志框架:日志框架相较于门面是先出现的,因此日志框架本身就可以单独使用的,并不需要日志门面。logback是springboot默认的日志框架,出生时间相较于log4j要晚。logback 不用桥接,因为logback在按照slf4j来实现的。桥接、绑定:具体谁来做统一api的事情呢?也就是桥接和绑定来做。log4j2是log4j的升级版,log4j使用比较广泛。
2024-03-09 14:40:50
324
原创 阿里云-linux搭建java环境并让项目running起来
点击上图按钮点击上图红框文字密码:不知道是我忘记了,还是本来就没有密码,直接修改密码就行简单。
2024-03-03 23:43:34
755
原创 mysql-json数组,json对象,json对象中数组索引创建及性能
给json对象中的数组添加索引。给json数组添加索引。给json对象添加索引。
2024-02-21 22:15:18
461
原创 linux-nohup、&区别
忽略挂断信号SIGHUP(比如:端口shell连接),底层是将进程转为守护进程,还可以重定向输入,比如将日志输出到指定文件。在shell中为空命令 在判断中可以做为 ture,忽略中断信号,比如ctrl+c,
2024-01-04 00:59:30
618
转载 java-守护线程和守护进程
由于在调用了fork函数时,子进程全盘拷贝了父进程的会话期、进程组、控制终端等,虽然父进程退出了,但会话期、进程组、控制终端等并没有改变,因此,这还不是真正意义上的独立开来,而setsid函数能够使进程完全独立出来,从而摆脱其他进程的控制。由于在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控 制终端,当控制终端被关闭时,相应的进程都会自动关闭。每个进程组都有一个组长进程,其组长进程的进程号等于进程组ID。
2024-01-04 00:31:30
674
原创 maven-plugin
可以通过mvn help:effective-pom这个命令在父工程目录或者子工程目录中执行,查看到底有没有被继承。plugin也是可以在继承的,即在父pom配置后,在子pom中也会有,
2023-12-06 01:10:15
303
原创 maven-profile
比如有些是用activeProfiles在pom中指定的,或者maven仓库指定的,如果在mvn package -P test。这样指定了以后将会用指定的代替默认的。指定profile生效的几种方式。查看当前生效的profile。
2023-12-06 01:02:44
248
原创 域名与服务器负载均衡技术学习总结
域名与服务器负载均衡技术学习总结_域名负载均衡-CSDN博客OSI七层网络模型和TCP/IP四层网络模型的异同_七层模型和四层模型的区别-CSDN博客
2023-11-28 22:08:37
357
原创 java-hprof 文件是什么
hprof 文件是 Java进程所使用的内存情况在某一时间的一次快照(Heap Profile 的缩写),格式为java_pidxxxxx*.hprof。
2023-11-26 10:24:00
5924
转载 java-创建数组三种方式
注意这里的花括号不是语句块,而且而且花括号后的分号也不能省,…不是元素意思是可以指定多个元素。注意:最大元素下标为2,并且所有的元素值均为0。三、声明数组时指定元素个数然后赋值。二、声明数组名开辟空间并且赋值。赋值一般用for循环。
2023-11-24 00:28:11
843
转载 javaweb-三大组件
【精选】JavaWeb:三大组件servlet & Filter & Listener_tomcat三大组件:servlet、listener、filter-CSDN博客
2023-11-23 11:06:01
76
原创 maven-六类属性
java系统仅针对java程序,环境变量是全局的。两者都可以传进java进程。系统变量指的是java系统的变量,环境变量指的系统变量和用户变量。
2023-11-10 17:56:39
371
原创 java-为什么需要16进制如内存地址
其实16进制是综合上面三种进制的优缺点,得出来的。二进制太长,8进制不够短,32进制太难翻译,以上的缺点都是对于人而言的,10进制转态2进制不像2的倍数进制方便。【【学科冷知识】计算机为什么需要16进制?目的就一个:方便人看。机器其实不需要16进制,机器需要的是二进制,因此主要的目的是给人看。为什么不用二进制,八进制,三十二进制呢。
2023-11-10 16:53:14
190
转载 maven-maven-resources-plugin详解
maven-resources-plugin详解-CSDN博客Maven的生命周期详解_maven生命周期详解_怪 咖@的博客-CSDN博客
2023-11-07 23:20:35
143
原创 java-对Integer.MAX_VALUE做加法
原因是,int最大值用二级制表示是,第一位是符号为,0为正式,1为负数。因此此时是int能表示的最小数-2147483648。超出int最大值后会从最小值继续累加不会报错。,二级制逢二进一,因此。
2023-11-07 01:02:44
583
原创 es-并发写入报错及解决
哪怕是删除,也对这条数据的版本号加1。其实,每次删除一个document并不是立即进行物理删除的,因为它的一些版本号信息还保留着,比如先删除一条document,再重新创建这条document,会发现新建的这条document的_version版本号的值取自删除时_version的值再加1。以上简述的方案,虽然不能从根本上解决版本号异常的问题,但是却可以大大减少版本号异常发生的频次,同时也可以降低写入次数,并且当前文档更新的阻塞不会影响后续的数据同步,基本上解决了版本号异常对数据同步造成的堆积延迟。
2023-11-04 02:33:12
2034
原创 groovy-比较运算符
二、"=="比较运算符不会出现类型转换的异常,因为groovy是弱类型语言。"=="比较运算符相当于java的equals。一、if的表达式为false的场景。".is"相当于java中的"="
2023-11-04 00:20:28
405
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅