简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生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命令查看调用情况发
Linux系统的root账号是非常重要的一个账号,也是权限最大的一个账号,但是有时候忘了root密码怎么办?总不能重装系统吧,这个是下下策,其实Linux系统中,如果忘记了root账号密码,是可以通过进入单用户模式或其它方法修改密码的。当然,具体方式跟Boot Loader、操作系统有关系,GRUB与LILO的实现方式有所不同。Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过
ConcurrentHashMap是既高效又线程安全的HashMapHashTable和ConcurrentHashMap区别HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法,其他线程也访问HashTable的同步方法时,会进入阻塞或轮询状态,因为HashTable只有一把锁。
bean的配置struts2是一个可扩展的框架,核心组件都是可以配置的,这些组件通过struts2自己的依赖注入容器来装配。在struts-default.xml文件中,定义了struts2框架的可配置组件,例如:<bean type="com.opensymphony.xwork2.ActionProxyFactory" name="xwork" class="com.opensympho
为什么使用NIO 在前一段时间我在看dubbo和kafka的源码时发现他们底层很多都是借助于NIO实现的,这些优秀的开源框架为什么使用NIO,相信NIO是一种高效的程序处理方式,从今天我们开始踏入NIO学习的殿堂。作为程序员我们要知道我们代码中的I/O操作相比其他代码要耗时的多的,我们在做I/O操作时要特别注意I/O的优化。现在 JVM 运行字节码的速率已经接近本地编译代码,借助动态运行时优化。
IntroductionKafka 是 linkedin 用于日志处理的分布式消息队列,同时支持离线和在线日志处理。kafka 对消息保存时根据 Topic 进行归类,发送消息者成为 Producer,消息接受者成为 Consumer,此外 kafka 集群有多个 kafka 实例组成,每个实例(server)称为 broker。无论是 kafka集群,还是 producer 和 consumer