- 博客(17)
- 资源 (2)
- 收藏
- 关注

原创 jvm内存结构总结笔记
jvm组成结构先来一张图总体看看jvm的组成部分。jvm主要由运行时数据区和类加载子系统和执行引擎等组成。我们重点来总结一下运行时数据区:1.栈 栈为线程私有,每个线程都有自己的独立栈区域空间,主要用于存储局部变量。在线程运行时,线程的每个方法,虚拟机都会在栈内单独分配一个独立的空间来用于局部变量的作用域表示,这部分独立的空间被称为栈帧。栈帧是基于线程的私有栈内存来进行分配的,例如:线程main中调用了类Class.met
2020-10-12 13:19:16
234
1
原创 jvm,juc,多线程,java基础面试题-1
1.单例模式的实现饿汉模式:没有线程安全问题public class Singleton1 { //饿汉模式--提前创建 public static Singleton1 instance = new Singleton1(); public static Singleton1 getInstance(){ return instance; } private Singleton1() { } public static v
2021-05-26 18:19:37
246
原创 idea中配置类注释生成和方法注释生成
idea配置类注释模板和方法注释模板类注释1)打开idea->setting->editor->File and Code Templates2)选择Class,在里面添加模板代码:/*** @program: ${PROJECT_NAME}** @description: ${description}** @author: hlcen** @create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}**/点击应用保存即可
2020-11-03 15:38:59
369
原创 并发编程重点笔记
记录一些并发编程当中的注意点悲观锁和乐观锁悲观锁:当一个线程必须拿到资源的锁,才进行进行相关操作,否则进入阻塞,直到其他线程释放资源锁;乐观锁:当一个线程进行操作时,不对资源进行加锁,它认为该对象在当前操作时,应该不会有其他线程来影响,所以多个线程都可以对该资源进行操作,对操作进行提交之前,会进行一次比较,把该资源和初始资源进行对比,如果资源内容一致,那么认为这个资源当前只有我操作了,那么就直接提交资源修改;否则进行重试或报错等;并发三大特性1)原子性:在cpu执行时间单位内,一个操作要么全部
2020-10-21 17:53:20
202
原创 Jdk1.8新特性常用操作-列举一部分
JDK8集合操作因为太多了,这里列举几种比较常用的:1)遍历list2)遍历list得到map3)遍历list,根据某个key进行分组4)遍历多个对象,合并多个对象中的明细行首先引入guaua包和fastjson包,方便打印:<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId>
2020-10-20 10:57:15
192
原创 五:(精华)线程池源码深度解析
线程池源码深度解析这篇文章我会带你一起阅读线程池的源码,看清楚了,不要眨眼哈。快12点了,睡了睡了,狗命要紧。。。。
2020-10-15 23:45:27
349
原创 三:线程池类关系和参数解析
上一个章节,我们介绍了线程的状态,这一次我们进入到线程池的学习,线程池我们分为3篇文章来介绍他,当前为第1篇,后续还有四:创建线程池的方式篇,还有五:线程池的源码深度解析篇。当前篇我们分为2个两点来说明:什么是线程池?线程池类关系?线程池定义的参数解析1.什么是线程池? 网上你可以搜索到很多答案,我这里用通俗
2020-10-15 17:23:58
470
原创 二:线程状态流程解析
线程一共有哪些状态线程的状态一共有以下几种:1)NEW2)RUNNABLE3)BLOCKED4)WAITING5)TIMED_WAITING6)TERMINATED我怎么知道的呢?来来,看一下源码:Thread.class里面:public static enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATE
2020-10-14 17:48:29
286
原创 一:线程的定义,start和run的使用,main和thread的执行顺序
线程的定义什么是线程,有很多种说法,我们简单的理解一下:线程就是在一个进程当中独立运行的一个子任务。
2020-10-14 11:31:42
1599
1
原创 jvm垃圾回收笔记
讲JVM垃圾回收,我们从以下4个部分来总结一下:什么是垃圾回收,为什么要回收垃圾怎么定义定义垃圾的2种算法垃圾收集的4种算法垃圾收集器种类和选择full gc时堆空间不足,一定会OOM吗有了垃圾回收,java会不会内存泄露1.什么是垃圾回收 垃圾回收是为了防止java内存泄露,主要是防止堆内存的内存泄露。----------------------------------------------
2020-10-13 16:25:14
485
原创 java特殊要点
关键字篇java中存在的所有关键字:abstract 表明类或者成员方法具有抽象属性assert 断言,用来进行程序调试boolean 基本数据类型之一,声明布尔类型的关键字break 提前跳出一个块byte 基本数据类型之一,字节类型case 用在switch语句之中,表示其中的一个分支catch 用在异常处理中,用来捕捉异常char 基本数据类型之一,字符类型class 声明一个类const 保留关键字,没有具体含义continue 回到一个块的开始处default 默认,例如
2020-10-12 21:42:49
151
1
原创 如何理解String类的不可变?
String类的解析1:String类被final修饰符锁修饰,代表String类一旦声明,就不可被改变;这里的不可变是引用地址不可变,而非指向的内容不可变,下面一张图来理解一下:再来看一下String类的源码:public final class String implements Serializable, Comparable<String>, CharSequence { private final char[] value; private int hash;
2020-10-12 21:23:46
905
原创 JVM参数使用笔记
JVM提供了大量的可配置参数,这些参数根据功能可以划分为几个大类:内存相关参数Xms含义:堆内存最小值使用方式:-xms2g 或者 -XX:InitialHeadSize=2048mXmx含义:堆内存最大值使用方式:-xmx2g 或者 -XX:MaxHeapSize=2048mXmn含义:新生代最大值使用方式:-Xmn1024m 或者 -XX:MaxNewSize=1024mPermSize含义:永久代最小值(1.7)使用方式:-XX:PermSize=2gMaxPermSize
2020-10-12 20:28:09
1361
1
原创 free -m 解读笔记
free -m 这个命令大家都很熟悉了,但是结果的解读多多少少有点迷惑性,自己记录总结一下,以后免得忘记了。先来看一张图,截图的我的一个服务器的内存使用情况。1:先来看-/+ buffers/cache这一行,这个是要这么看的,最左边的-和+是对应后面的2列数字其中,-buffers/cache这个是代表当前服务器的程序实际已经使用的内存。+buffers/cache这个是代表当前服务器的程序还未使用的内存。2:记住二个公式:总的物理内存 = +buffers/cache 加上 -buffer
2020-10-11 16:30:16
2891
3
原创 线上服务器问题排查手段总结笔记
线上服务器CPU100%了,OOM了,内存泄露了,怎么办?这里稍微记录一下,平常自己的一些排查步骤和思路(虽然网上有线程的排错框架,但是我不喜欢用呀)。好了,一般情况下,可以根据以下几个步骤来:1.查找出当前占用CPU最高或者OOMS的进程ID,一般使用jps -l或者top命令。也可以使用 jmap -heap 进程号 查看jvm使用情况2.找到进程pid之后,根据top -Hp pid 找出占用CPU最高的线程号3.将线程号用程序员计算器,转化为16进制编码4.使用命令jstack pi
2020-10-11 16:18:47
425
原创 java对象和xml的转换工具类
package com.lppz.wms.bir.util;import java.io.StringReader;import java.io.StringWriter;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Mars
2017-09-19 09:53:59
559
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人