
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
redis命令解释说道Redis的分布式锁都是通过setNx命令结合getset来实现的,在讲之前我们先了解下setNx和getset的意思,在redis官网是这样解释的注:redis的命令都是原子操作SETNX key value将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。SETNX 是『SET if Not
在域模型中,类之间存在四种关系1、关联(Association)类之间的引用关系,可以有一对一、一对多和多对多,例如customer与order之间就是一对多public class Order{// 与order对象关联的Customer对象private Customer customer;}以上代码建立了从Order类到Customer类的关联,同样也可以建立从C
除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM),下面我们来详细分析。Java堆溢出Java堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制来清除这些对象,那么对象数量到达最大堆容量限制后就会产生内存溢出异常。例如:// VM Args:-Xms20m -Xmx20m -XX:+HeapD
对象的创建java是一门面向对象的语言,在Java程序运行过程中无时无刻有Java对象被创建出来。在语言层面上,创建对象(克隆、反序列化)通常是一个new关键字而已,而在虚拟机中,对象的创建过程如下:1、当虚拟机遇到new指令时,首先将去检查这个指令参数是否能在常量池中定位到一个类的引用符号,并且检查这个符号引用代表的类是否被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。
JVM在执行java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途和创建、销毁时间。有些区域随着虚拟机的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范1.7》规定,Java虚拟机所管理的内存分为以下几个区域:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量池、直接内存程序计数器是一块较小的内存
首先通过Top命令查看占用CPU较高的进程PID,执行Top之后按1可以查看每个核占用比例top这里由于我是用的虚拟机,即使我的Java进程占用CPU很高也只是占的虚拟机的,而对整个机器的CPU来说占的并不高。这里我们找到了pid=7957然后我们在根据pid找出占用CPU过高的线程top -H -p 7957然后根据线程id=7958使用strace -p命令查看调用情况发







