自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Java项目线上CPU飙升原因排查

3、执行“printf '%x' PID”命令:后续查看线程堆栈信息展示的都是十六进制,为了找到该线程的堆栈信息,需要把线程号转成16进制。执行cpu最高的线程对应的进程ID为1700。1、核心排查步骤:执行‘top’命令,查看所有进程占系统CPU的排序,极大可能第一个就是咱们的Java进程,PID那列就是进程号,假设PID=1677。5、通过“vim x.txt”命令打开x.txt文本,按下 “ / ” 进入搜索模式,输入 ‘6a4’匹配到该进程,找到有问题的代码行并排查。

2024-06-17 09:52:07 283

原创 浅谈JVM

虚拟机自动内存管理机制,不用像C和C++那样为每一个new操作去写对应的delete/free操作,不容易出现内存泄漏和内存溢出问题。 运行时数据区域:JDK1.8之前:线程共享:堆,方法区(运行时常量池)。线程私有:虚拟机栈,本地方法栈,程序计数器。线程共享:直接内存。线程私有:1.程序计数器:实现代码的流程控制,多线程情况下,记录当前线程执行的位置。2.Java虚拟机栈:由一个个栈帧组成,每个栈帧中都拥有局部变量表,操作数栈,动态链接,方法出口信...

2021-09-02 09:46:57 92

原创 日志的报错类型

off:最高等级,用于关闭所有日志记录。 fatal:指出每个严重的错误事件将会导致应用程序的退出。 error:指出虽然发生错误事件,但仍然不影响系统的继续运行。打印错误和异常信息,如果不想输出太多日志,可以使用这个级别。 warn:表明会出现潜在的错误的情形,有些信息不是错误信息,但也要给出提示。 info:突出强调应用程序的运行过程,(常用于生产环境打印感兴趣或重要的信息) debug:对调试应用...

2021-08-23 09:29:54 2082

原创 谈一谈线程

进程和线程:进程是程序运行和资源分配的最小单位,一个程序最少又一个进程,一个进程最少有一个线程。进程在执行过程中拥有独立内存单元,而多个线程共享内存资源,减少切换次数,因此效率更高。线程是进程的一个实体,是cpu调度和分派的基本单位。 线程的创建:1.继承Thread并重写run方法,调用线程对象的start()方法启动该线程。2.实现runnable接口并重写run方法,返回值是void,调用线程对象的start()方法来启动该线程。3.实现callable接口并重写实现...

2021-08-20 16:31:44 134

原创 RabbitMQ

角色:消费者,生产者,代理(RabbitMQ) 重要组件:ConnectionFactory,Channel(消息推送使用的通道),Exchange(接收分配消息),Queue(存储生产者产生的消息),RoutingKey(路由键,用于把生产者的消息数据分配到交换器),bindingKey(绑定键,用于把交换器的消息绑定到队列) 消息怎么发送:客户端和MQ之间创建tcp连接,认证通过后在客户端和MQ间就创建了一条通道(channel),信道是创建在真是tc...

2021-08-20 11:53:32 88

原创 Java容器

collection是一个集合接口。直接继承接口又List和set。它提供了对集合对象进行基本操作的通用接口方法。collections是集合类的一个一个工具类/帮助类,并提供了一系列静态方法,用于对集合中元素进行排序,搜索以及线程安全等操作。 hashMap是非同步的(可同时多个线程操作),当我们往Hashmap中put元素时,首先根据key的hashcode重新计算hash值,根绝hash值得到这个元素在数组中的位置(下标),如果该数组在该位置上已经存放了其他元素,那么...

2021-08-20 10:36:20 65

原创 Java对象的序列化

Java序列化就是把Java对象转换成字节序列的过程,反序列化则是把字节序列转换成Java对象的过程。(核心作用就是对象状态的保存和重建,核心过程就是字节流中对象所保存的对象状态及描述信息) 序列化的作用:在传递和保存对象的时候保证对象的完整性和可传递性。对象转换成有序字节流,以便在网上传输或者保存在本地。反序列化的作用:根据字节流中的对象状态及描述信息,反建对象。序列化的时候系统会把当前类的serialVersionUID写入序列化的文件中,当反序列化的...

2021-08-19 16:55:17 247

原创 操作字符串的三种类

String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象,而StringBuffer、StringBuilder可以在原有对象的基础上操作,所以在经常改变字符串的时候不要使用String。 StringBuffer是和StringBuilder最大的区别在于,StringBuffer是线程安全的,而StringBuilder是非线程安全的,但是StringBuilder的性能高于StringBuffer,所以建议单线程下使用...

2021-08-19 16:31:21 165

原创 Java反射机制

1.Class class1 = User.getClass();2.Class class2 = String.class3.Class.forName(String name)可以把类中的方法属性给反射为一个个的对象,然后通过newInstance方法生成类对象,如下:

2021-08-17 11:22:15 64

原创 谈一谈你对HashMap的理解

1、hashMap是基于Map接口的非同步实现(同步就是一个对象只能一个线程访问),它是以Key-value键值对的形式(封装成Node对象)存取数据的,线程不安全的集合,允许null键和null值,只能一个null键,但是可以有多个null值。 JDK7之前是数组+链表的形式(数组的每个位置都存储一个单向链表),JDK8后是数组+链表+红黑树的形式(链表的数据达到一定的阙值(8)就会转换成红黑树)。 容量:哈希表中数组的数量,默认初始容量是16(必须的2...

2021-08-17 09:51:17 2444

原创 简单排序算法

普通方式排序每一轮比较完,找出最小值的下标,与指针指向的元素替换位置 n = 6;个元素轮数 i = 0 时 内层循环比较 5次 ,最小下标对应的元素与 a[0] 换位置 i = 1 时 内层循环比较 4次 ,最小下标对应的元素与 a[1] 换位置 i = 2 时 内层循环比较 3次 ,最小下标对应的元素与 a[2] 换位置 i = 3 时 内层循环比较 2次 ,最小下标对应的元素与 a[3] 换位置 i = 4 时...

2021-08-13 15:16:52 152

空空如也

空空如也

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

TA关注的人

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