作者归档
第七章.虚拟机类加载机制
类加载的生命周期
类加载的整个生命周期:加载–验证–准备–解析–初始化–使用–卸载 7个阶段,其中验证、准备、解析部分统称为连接。
类初始化的5中条件
1. 使用new关键字实例化对象的时候,读取或设置一个类的静态字段(该字段不被final修饰)的时候,以及调用一个类的静态方法的时候
2. 使用java.lang.reflect包的方法对类进行反射调用的时候
3. 当初始化一个类的时候,如果发现其父类还没有进行过初始化,则需要先初始化其父类
4. 当虚拟机启动的时候,用户需要指定一个要执行的主类,虚拟机需要先初始化这个主类
5. 当使用JSK1.7的动态语言支持时,如果一个java.lang.invoke.MethodHandle实例最后的解析结果REFgetStatic、REFputStatic、REF_invokeStatic的方法句柄,并且这个方法句柄说对应的类没有进行过初始化
《Apache RocketMQ用户指南》官方文档
RocketMQ–导读
原文链接 译者:小村长
最近两个项目中用到了RocketMQ消息中间件,每次都是在网上找几个Demo,而没有去看它的官方文档。年前面试某大型互联网企业。RocketMQ多有提及。今借此机会翻译一篇RocketMQ的官方文档。希望能够对大家的工作和学习有所帮助。
由于RocketMQ是互联网企业解耦常用的消息中间件,希望大家在使用的时候也多多思考几个问题:
第一,RocketMQ由几部分组成以及每个组件的作用。
第二,RocketMQ消息怎么保证可靠性以及高可用性。
第三,RocketMQ消息种类以及怎么保证消息有序。
最后,我还是建议有能力的童鞋能够自己去Apache RocketMQ官方看看。 阅读全文
《Apache RocketMQ用户指南》之日志追加消息示例
日志追加型日志示例
原文链接 译者:小村长
RocketMQ logappender提供log4j appender,log4j2 appender和logback appender供业务使用,下面是配置示例.
log4j
当使用log4j属性配置文件时,config如下.
[code lang=”java”]
log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender
log4j.appender.mq.Tag=yourTag
log4j.appender.mq.Topic=yourLogTopic
log4j.appender.mq.ProducerGroup=yourLogGroup
log4j.appender.mq.NameServerAddress=yourRocketmqNameserverAddress
log4j.appender.mq.layout=org.apache.log4j.PatternLayout
log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) %-5p – %m%n
[/code]