`
文章列表
Class装载系统 一.class文件的装载过程    class文件通常以文件的形式存在,只有被虚拟机装载的class类型才能在程序中使用.系统装载CLass类型可以分为加载,连接和初始化.      1.1类装载的条件     Class只有在必须要使用的时候才会被加载,一个类或者接口在初次使用前必须要初始化. 被动使用不会引起类的初始化.      下面的例子,只会初始化Parent.   (PS:虽然Child没被初始化,但是已经被加载了)加上 -XX:+TraceClassLoading观察类加载过程.       final字段由于它的不变性,虚拟机进行了优化,把这个 ...

第七章 java堆

    博客分类:
  • jvm
   java堆 一.内存溢出的原因           1.堆溢出         当堆中强引用对象占用了大部分空间,导致内存无法回收,对象大小之和大于-Xmx就会导致堆溢出.     2.直接内存溢出         下面的代码申请直接内存,导致直接内存溢出 . 当JAVA进程的所有内存之和(堆空间,栈空间,直接内存,以及虚拟机自身所用的内存)大于-Xmx *2的时候,就会出现OOM.           -Xmx1g -XX:+PrintGCDetails (32位虚拟机,用户空间为2GB) for(int i = 0 ;i< 1024;i++){ ...
垃圾回收器以及内存分配     一.垃圾回收器            1.串行回收器              它分为新生代串行回收器和老年代串行回收器             1.1新生代串行回收器              它有两个特点:单线程,独占式。在实时性要求高的系统,这个是不可接收的.                         新生代串行处理器默认使用复制算法。在cpu处理器等硬件不是特别优越的场合,它的性能比并行的好。              1.2老年代串行回收器                它默认使用的是标记压缩算法.它可以和多种 ...
  JVM垃圾回收算法以及引用类型  一.垃圾回收算法     垃圾回收是java体系最重要的组成部分之一.垃圾回收顾名思义就是把不用的对象给丢弃,释放内存空间.   接下来来看看java垃圾回收机制的理论基础:引用技术法,标记压缩法,标记清楚法,复制算法和分代分区.       1.引用技术法      引用计算法的实现很简单,对于一个对象a,只要有任何一个根对象引用它,那么计数加一,引用失效时,计数减1.为0时

第二篇 jvm常用参数

    博客分类:
  • jvm
不同的jvm参数可以在gc信息中显示出不同的内容,我们先来学习以下简单的gc信息.     开启-XX:+PrintGCDetails参数,运行java程序查看gc信息   [GC (System.gc()) [PSYoungGen: 523K->368K(4608K)] 523K->376K(15872K(可用堆大小)), 0.0014747 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] [Full GC (System.gc()) [PSYoungGen: 368K->0K(4608K)] [ParOld ...
       一. Java虚拟机的基本结构以及各个部分的作用                     每个区域各司其职 1.     类加载系统负责从文件系统或者网络中加载class信息        2.     方法区存放加载的class信息 3.     java堆存放几乎所有的对象实例。所有线程共享
安装依赖:   [html] view plain copy   yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel   下载nginx:
  1)AttributeMap这是是绑定在Channel或者ChannelHandlerContext上的一个附件,相当于依附在这两个对象上的寄生虫一样,相当于附件一样,如图所示: 这个图还算比较形象地描述了AttributeMap的作用,我们知道每一个ChannelHandlerContext都是ChannelHandler和ChannelPipeline之间连接的桥梁,每一个ChannelHandlerContext都有属于自己的上下文,也就说每一个ChannelHandlerContext上如果有AttributeMap都是绑定上下文的,也就说如果A的ChannelHandl ...
TCP/IP协议三次握手与四次握手流程解析  一、TCP报文格式  TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式  上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,用来标 ...
   REDIS底层数据结构  一.redis的字符串    redis底层使用SDS(simple dynamic string) 作为默认字符串表示.SDS还被用作缓冲区,AOF模块的缓冲区以及客户端状态中的输入缓冲区.       1.1  SDS的定义     struct sdshdr{ int len;//字符串 ...
           第十二章 ActiveMQ性能调优 章节导读    学习调优技术    如何优化生产者和消费者    一个优化的实例       ActiveMQ的性能高度依赖于许多不同的因素,包括代理网络的拓扑结构,传输连接器,网络的速度和服务质量,硬件,操作系统以及Java虚拟机.      但是不管在什么应用环境下,你都可以使用一些性能调优技术以改善ActiveMQ性能.也许你的程序不需要确保消息能够准确投送,这时使用可靠的,非持久化消息会有更好的性能.对于减少消息在传输路劲中的序列化次数来说,使用嵌入式代理是很合理的.另外,可以使用大量的调优参数,它们有各自的 ...
  一、安装Jenkins 地址https://jenkins.io/index.html选择适合你的操作系统文件下载我这里选的是windows的msi包下载 直接一键安装,默认目录是C:\Program Files (x86)\Jenkins\ 然后控制面板->管理工具->服务->jenkins->启动 如果端口8080已经被占用了,那么需要修改端口,在目录下的jenkins.xml中修改端口号,我把端口号改成8888  
  安装apache,在命令行终端中输入一下命令: $ sudo apt-get install apache2 如果安装失败,执行以下命令之后再安转 sudo apt-get upgrade,sudo apt-get  update   修改Apache端口 sudo vi /etc/apache2/ports.conf   将配置文件中的端口改成你想要的端口   然后启动apache
                                第十一章 高级客户端选项 章节导读      如何使用专属消费者    消息组    了解对流对象以及二进制大对象的支持    失败重连     调度消息传递   11.1 专属消费者          ...
                  第十章 ActiveMq代理的属性在实际中的应用 章节导读      使用通配符和复合的目的地    利用advistory消息    理解虚拟的topic 以及追溯消费者    使用activeMq插件    apache camel的介绍     10.1 通配符和复合的destination          下面会介绍使用通配符订阅多个目的地,使用复合目的地发布消息到多个目的地.                       10.1.1 使用通配符从多个目的地中消费                  activem ...
Global site tag (gtag.js) - Google Analytics