- 博客(222)
- 收藏
- 关注
原创 js-promise、async/await
写成async/await,这样async函数返回里面只有await 修饰就会等待await修改的函数执行完成以后再执行下一句。promise,简单就就是回调的一种简化了回调地狱(如果多个调用是异步并且有结果依赖,那么就需要写成回调)。async/await,需要成对使用,是对promise的更高级的抽象,
2024-06-19 00:08:31 224
原创 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 422
原创 内存-VSS、RSS、PSS、USS
虚拟耗用内存大小,是进程可以访问的所有虚拟内存的总量,包括进程独自占用的物理内存、和其他进程共享的内存、分配但未使用的内存。比例驻留内存大小,包括进程独自占用的物理内存、比例分配和其他进程共享的内存(共享库内存会均分到各个共享进程)。驻留内存大小,是进程当前实际占用的物理内存大小,包括进程独自占用的物理内存、和其他进程共享的内存。独立内存大小,表示进程独自占用、不与其他进程共享的物理内存。
2024-06-16 20:59:20 272
原创 内存中的buffer和cache
如果数据不在Cache中,内核会从文件系统中读取数据,并将一份拷贝存储在Cache中,以备将来的读取请求。它通过预加载常用文件的内容,提高了对这些文件的访问速度,从而加速文件系统的读取操作。当数据从磁盘或其他设备读取到内存时,首先会存储在Buffer中,以提供对这些数据的快速访问。Cache更侧重于文件系统的读取,通过缓存文件数据和元数据提高文件系统的整体读取速度。Buffer存储的是I/O操作的数据块,通常是对物理设备的读写请求的中介。Cache存储的是文件系统的数据块,包括文件的元数据和实际内容。
2024-06-16 20:56:46 858
原创 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 462
原创 cpu100%原因及排查方向
根据Java文档,默认情况下,如果Java进程花费其时间的98%以上用于GC,并且每次运行中仅回收不到2%的堆,则JVM配置为抛出此错误。频繁的IO操作:如果代码中频繁进行磁盘或网络IO操作,会导致CPU等待IO操作完成,从而造成CPU占用率过高。:一款商业化的Java性能分析工具,它可以提供更详细的性能分析信息,帮助我们找出CPU占用率过高的原因。数据库中的数据表数据太大,由于没有判断带有条件,导致查询全表数据,查询出来的数据量太大,内存溢出;给服务器的堆内存设置的太小,没有足够的内存可以使用;
2024-06-15 21:54:04 550
原创 大数据-基础架构设施演进的过程
以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 299
原创 java日志-干货系列-拒绝长篇大论
日志门面:简单点说就是统一了操作日志的api,然应用层无需关心底层的日志框架是什么,因为api都是同一个。日志框架:日志框架相较于门面是先出现的,因此日志框架本身就可以单独使用的,并不需要日志门面。logback是springboot默认的日志框架,出生时间相较于log4j要晚。logback 不用桥接,因为logback在按照slf4j来实现的。桥接、绑定:具体谁来做统一api的事情呢?也就是桥接和绑定来做。log4j2是log4j的升级版,log4j使用比较广泛。
2024-03-09 14:40:50 274
原创 阿里云-linux搭建java环境并让项目running起来
点击上图按钮点击上图红框文字密码:不知道是我忘记了,还是本来就没有密码,直接修改密码就行简单。
2024-03-03 23:43:34 675
原创 mysql-json数组,json对象,json对象中数组索引创建及性能
给json对象中的数组添加索引。给json数组添加索引。给json对象添加索引。
2024-02-21 22:15:18 197
原创 linux-nohup、&区别
忽略挂断信号SIGHUP(比如:端口shell连接),底层是将进程转为守护进程,还可以重定向输入,比如将日志输出到指定文件。在shell中为空命令 在判断中可以做为 ture,忽略中断信号,比如ctrl+c,
2024-01-04 00:59:30 542
转载 java-守护线程和守护进程
由于在调用了fork函数时,子进程全盘拷贝了父进程的会话期、进程组、控制终端等,虽然父进程退出了,但会话期、进程组、控制终端等并没有改变,因此,这还不是真正意义上的独立开来,而setsid函数能够使进程完全独立出来,从而摆脱其他进程的控制。由于在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控 制终端,当控制终端被关闭时,相应的进程都会自动关闭。每个进程组都有一个组长进程,其组长进程的进程号等于进程组ID。
2024-01-04 00:31:30 322
原创 maven-plugin
可以通过mvn help:effective-pom这个命令在父工程目录或者子工程目录中执行,查看到底有没有被继承。plugin也是可以在继承的,即在父pom配置后,在子pom中也会有,
2023-12-06 01:10:15 258
原创 maven-profile
比如有些是用activeProfiles在pom中指定的,或者maven仓库指定的,如果在mvn package -P test。这样指定了以后将会用指定的代替默认的。指定profile生效的几种方式。查看当前生效的profile。
2023-12-06 01:02:44 202
原创 域名与服务器负载均衡技术学习总结
域名与服务器负载均衡技术学习总结_域名负载均衡-CSDN博客OSI七层网络模型和TCP/IP四层网络模型的异同_七层模型和四层模型的区别-CSDN博客
2023-11-28 22:08:37 302
原创 java-hprof 文件是什么
hprof 文件是 Java进程所使用的内存情况在某一时间的一次快照(Heap Profile 的缩写),格式为java_pidxxxxx*.hprof。
2023-11-26 10:24:00 3337
转载 java-创建数组三种方式
注意这里的花括号不是语句块,而且而且花括号后的分号也不能省,…不是元素意思是可以指定多个元素。注意:最大元素下标为2,并且所有的元素值均为0。三、声明数组时指定元素个数然后赋值。二、声明数组名开辟空间并且赋值。赋值一般用for循环。
2023-11-24 00:28:11 483
转载 javaweb-三大组件
【精选】JavaWeb:三大组件servlet & Filter & Listener_tomcat三大组件:servlet、listener、filter-CSDN博客
2023-11-23 11:06:01 37
原创 maven-六类属性
java系统仅针对java程序,环境变量是全局的。两者都可以传进java进程。系统变量指的是java系统的变量,环境变量指的系统变量和用户变量。
2023-11-10 17:56:39 330
原创 java-为什么需要16进制如内存地址
其实16进制是综合上面三种进制的优缺点,得出来的。二进制太长,8进制不够短,32进制太难翻译,以上的缺点都是对于人而言的,10进制转态2进制不像2的倍数进制方便。【【学科冷知识】计算机为什么需要16进制?目的就一个:方便人看。机器其实不需要16进制,机器需要的是二进制,因此主要的目的是给人看。为什么不用二进制,八进制,三十二进制呢。
2023-11-10 16:53:14 65
转载 maven-maven-resources-plugin详解
maven-resources-plugin详解-CSDN博客Maven的生命周期详解_maven生命周期详解_怪 咖@的博客-CSDN博客
2023-11-07 23:20:35 71
原创 java-对Integer.MAX_VALUE做加法
原因是,int最大值用二级制表示是,第一位是符号为,0为正式,1为负数。因此此时是int能表示的最小数-2147483648。超出int最大值后会从最小值继续累加不会报错。,二级制逢二进一,因此。
2023-11-07 01:02:44 368
原创 es-并发写入报错及解决
哪怕是删除,也对这条数据的版本号加1。其实,每次删除一个document并不是立即进行物理删除的,因为它的一些版本号信息还保留着,比如先删除一条document,再重新创建这条document,会发现新建的这条document的_version版本号的值取自删除时_version的值再加1。以上简述的方案,虽然不能从根本上解决版本号异常的问题,但是却可以大大减少版本号异常发生的频次,同时也可以降低写入次数,并且当前文档更新的阻塞不会影响后续的数据同步,基本上解决了版本号异常对数据同步造成的堆积延迟。
2023-11-04 02:33:12 1265
原创 groovy-比较运算符
二、"=="比较运算符不会出现类型转换的异常,因为groovy是弱类型语言。"=="比较运算符相当于java的equals。一、if的表达式为false的场景。".is"相当于java中的"="
2023-11-04 00:20:28 233
原创 xxl-job-架构及原理
2、接受调度请求,找到对应的bean,并把bean放到线程池(最大200个线程)中执行,不需要等待结果,请求立即返回。2、注册任务类,任务类需要实现JobHandler这个接口的类。2、底层通过netty发起调度。1、注册到服务端成为执行器。1、根据执行器创建任务,
2023-10-26 23:13:34 471
原创 java-各种成员变量初始化过程-待完善
static 修改 在链接阶段的准备阶段分配内存并赋默认值(int 类型为0,Integer 为 null,对象 为 null)static final 修饰变量,如果可以在编译期推导出来,则在编译器分配内存及赋值,如果不能则在初始化赋值。Setter被执行——spring容器。一、本文章讨论的成员变量。然后再初始化时赋值。
2023-10-21 02:03:30 483 1
转载 mysql timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性
当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,他的值也会跟着更新为当前UPDATE操作时的时间。CURRENT_TIMESTAMP,则无论这个字段有木有set值都插入当前系统时间。在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它。在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它。在创建新记录的时候把这个字段设置为0,以后修改时刷新它。在创建新记录和修改现有记录的时候都对这个数据列刷新。
2023-10-13 00:58:08 2958
转载 java-@Autowired和@Resouce的区别
@Autowired和@Resouce的区别_@autowired注解和@resouce区别_龙腾天下3的博客-CSDN博客
2023-10-11 01:59:09 49
转载 Spring定时任务@Scheduled注解使用配置方式(cron表达式、fixedRate和fixedDelay)
Spring定时任务@Scheduled注解使用配置方式(cron表达式、fixedRate和fixedDelay)_scheduled(fixedrate-CSDN博客
2023-10-11 01:31:18 147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人