- 浏览: 57116 次
- 性别:
- 来自: 福州
最新评论
文章列表
第八章 Class装载系统
- 博客分类:
- jvm
Class装载系统
一.class文件的装载过程
class文件通常以文件的形式存在,只有被虚拟机装载的class类型才能在程序中使用.系统装载CLass类型可以分为加载,连接和初始化.
1.1类装载的条件
Class只有在必须要使用的时候才会被加载,一个类或者接口在初次使用前必须要初始化. 被动使用不会引起类的初始化.
下面的例子,只会初始化Parent. (PS:虽然Child没被初始化,但是已经被加载了)加上 -XX:+TraceClassLoading观察类加载过程.
final字段由于它的不变性,虚拟机进行了优化,把这个 ...
java堆
一.内存溢出的原因
1.堆溢出
当堆中强引用对象占用了大部分空间,导致内存无法回收,对象大小之和大于-Xmx就会导致堆溢出.
2.直接内存溢出
下面的代码申请直接内存,导致直接内存溢出 . 当JAVA进程的所有内存之和(堆空间,栈空间,直接内存,以及虚拟机自身所用的内存)大于-Xmx *2的时候,就会出现OOM.
-Xmx1g -XX:+PrintGCDetails (32位虚拟机,用户空间为2GB)
for(int i = 0 ;i< 1024;i++){ ...
第四篇 垃圾回收器以及内存分配
- 博客分类:
- jvm
垃圾回收器以及内存分配
一.垃圾回收器
1.串行回收器
它分为新生代串行回收器和老年代串行回收器
1.1新生代串行回收器
它有两个特点:单线程,独占式。在实时性要求高的系统,这个是不可接收的.
新生代串行处理器默认使用复制算法。在cpu处理器等硬件不是特别优越的场合,它的性能比并行的好。
1.2老年代串行回收器
它默认使用的是标记压缩算法.它可以和多种 ...
第三篇 JVM垃圾回收算法以及引用类型
- 博客分类:
- jvm
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虚拟机
- 博客分类:
- jvm
一. Java虚拟机的基本结构以及各个部分的作用
每个区域各司其职
1. 类加载系统负责从文件系统或者网络中加载class信息
2. 方法区存放加载的class信息
3. java堆存放几乎所有的对象实例。所有线程共享
centos7编译安装nginx升级https
- 博客分类:
- nginx
安装依赖:
[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底层数据结构
一.redis的字符串
redis底层使用SDS(simple dynamic string) 作为默认字符串表示.SDS还被用作缓冲区,AOF模块的缓冲区以及客户端状态中的输入缓冲区.
1.1 SDS的定义
struct sdshdr{
int len;//字符串 ...
第十二章 ActiveMQ性能调优
- 博客分类:
- activemq
第十二章 ActiveMQ性能调优
章节导读
学习调优技术
如何优化生产者和消费者
一个优化的实例
ActiveMQ的性能高度依赖于许多不同的因素,包括代理网络的拓扑结构,传输连接器,网络的速度和服务质量,硬件,操作系统以及Java虚拟机.
但是不管在什么应用环境下,你都可以使用一些性能调优技术以改善ActiveMQ性能.也许你的程序不需要确保消息能够准确投送,这时使用可靠的,非持久化消息会有更好的性能.对于减少消息在传输路劲中的序列化次数来说,使用嵌入式代理是很合理的.另外,可以使用大量的调优参数,它们有各自的 ...
一、安装Jenkins
地址https://jenkins.io/index.html选择适合你的操作系统文件下载我这里选的是windows的msi包下载
直接一键安装,默认目录是C:\Program Files (x86)\Jenkins\
然后控制面板->管理工具->服务->jenkins->启动
如果端口8080已经被占用了,那么需要修改端口,在目录下的jenkins.xml中修改端口号,我把端口号改成8888
unbuntu下apache+svn的配置
- 博客分类:
- apache
安装apache,在命令行终端中输入一下命令:
$ sudo apt-get install apache2
如果安装失败,执行以下命令之后再安转
sudo apt-get upgrade,sudo apt-get update
修改Apache端口
sudo vi /etc/apache2/ports.conf
将配置文件中的端口改成你想要的端口
然后启动apache
第十一章 高级客户端选项
- 博客分类:
- activemq
第十一章 高级客户端选项
章节导读
如何使用专属消费者
消息组
了解对流对象以及二进制大对象的支持
失败重连
调度消息传递
11.1 专属消费者
...
第十章 ActiveMq代理的属性在实际中的应用
章节导读
使用通配符和复合的目的地
利用advistory消息
理解虚拟的topic 以及追溯消费者
使用activeMq插件
apache camel的介绍
10.1 通配符和复合的destination
下面会介绍使用通配符订阅多个目的地,使用复合目的地发布消息到多个目的地.
10.1.1 使用通配符从多个目的地中消费
activem ...