- 博客(9)
- 收藏
- 关注
原创 jstack排查线上问题总结及拓展
深入理解Java内置工具jstack在分析线上问题时常使用到jstack 命令将当时Java应用程序的线程堆栈dump出来。面对jstack 日志,我们如何查看?今天一起和大家共同探讨下。线程的几种状态想要通过jstack命令来分析线程的情况的话,首先要知道线程都有哪些状态,下面这些状态是我们使用jstack命令查看线程堆栈信息时可能会看到的线程的几种状态:NEW 未启动的。不会出现在Dump中。RUNNABLE 可运行线程的线程状态。处于可运行状态的某一线程正在Java虚拟机中运行,但
2022-04-20 15:12:14
1236
原创 Java项目,内存泄漏问题排查与总结,拓展容器相关知识Dockerfile
问题场景:现象:有一次发现容器里面启动的java项目探活每过一段时间(大概半小时)就失败,导致项目在容器中重复的重启,服务时好时断。问题描述在容器中排查问题的时候发现了两个问题:进入容器查看启动日志发现,项目启动之初是能够正常运行并且访问的。在经过一段时间后就出现了OOM,导致项目被hang住了,一直在进行Full GC,最终无法访问。在这个情况下,本来想通过jstack命令去看看栈的情况,却收到提示Unable to get pid of LinuxThreads manager thread
2022-04-13 15:34:46
2083
原创 随笔:@Async注解
记录@Async使用方法以及遇到的问题1.在启动类使用@EnableAsync@SpringBootApplication@EnableAsyncpublic class AsyncApplication { public static void main(String[] args) { SpringApplication.run(AsyncApplication.class, args); }}2.在想要异步的方法类上标注@Async@Override @Async
2021-10-06 13:45:02
201
转载 Java中的垃圾回收器
一、垃圾回收器前面我们介绍的所有回收算法都是为实现垃圾回收器服务的,而垃圾回收器就是内存回收的具体实现。目前HotSpot虚拟机用到的垃圾回收器如下图所示。注意只有两个回收器之间有连线才能配合使用。1、串行垃圾回收器在JDK1.3.1之前,单线程回收器是唯一的选择。它的单线程意义不仅仅是说它只会使用一个CPU或一个收集线程去完成垃圾收集工作。而且它进行垃圾回收的时候,必须暂停其他所有的工作线程(Stop The World,STW),直到它收集完成。它适合Client模式的应用,在单CPU环境下,它
2020-08-27 16:54:26
1117
转载 继承:父类和子类的关系
继承:父类和子类的关系一、父类引用指向子类对象时1、若子类覆盖了某方法,则父类引用调用子类重新定义的新方法2、若子类未覆盖某方法,则父类引用调用父类本身的旧方法3、若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性4、若子类未覆盖某属性,则父类引用调用父类本身的旧属性5、父类引用不能访问子类新定义的方法二、子类引用指向自身对象时1、若子类覆盖了某方法,则子类引用调用子类重新定义的新方法 2、若子类未覆盖某方法,则子类引用调用父类本身的旧方法3、若子类覆盖了某属性,则子类引用调用子类重新定
2020-08-23 22:15:21
907
原创 算法:二叉树前序,中序,后序,知二求一(Java代码)
算法:二叉树前序,中序,后序,知二求一(Java代码)注意:通过前序和中序,后序和中序都可以得到唯一一个确定的二叉树。而只知道前序和后序遍历的结果是没办法确定唯一一个二叉树的,因为可能有多种情况。所以这里为了简化问题,暂时提出一个限制条件:如果根节点只有一个子节点那么这个节点规定为左节点。直接上代码:public class Main { static ArrayList<Integer> Pre = new ArrayList<>(); static Arr
2020-08-07 11:48:52
474
原创 1.7和1.8HashMap和ConcurrentHashamap
HashMap的数据结构HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。1.7时HashMap的结构Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtabl
2020-07-26 23:21:32
194
原创 Java基础--String篇
Java基础–String篇1.StringString类型的对象是不可变的,对象内部的成员变量值不可改变。下图是String类中的成员变量:可以看到第一个成员变量的属性为:private final char value[];用final修饰,并且将输入的字符串都储存在一个数组中。字符串之间进行比较时用equals方法,一般不用==。注意:往往在项目中程序员们更倾向于将确定的字符串结果对象作为使用equals方法的主体对象,这样可以避免发生空指针异常的情况。例如下图所示:2. StringBu
2020-07-23 16:42:34
349
原创 Java面试基础篇(数据类型)
Java面试基础篇(数据类型)一、八种基本数据类型以及其对应的包装类-原始基本数据类型(对应字节数):boolean(true/false),char(\u0000-\uffff),byte(1),short(2),int(4),long(8),float(4),double(8).-对应包装类:Boolean,Character,Byte,Short,Integer,Long,Float,Double自动装箱(Auto-Boxing)与自动拆箱(Unboxing)常见的面试题(一):输出结果
2020-07-23 01:48:38
316
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人