`
chenjingbo
  • 浏览: 459981 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
    初始化是类加载中最后的一个阶段,也是与我们敲代码关系最大的一个阶段,所以我特意提了一个章节出来说这个问题.我想很多2B老湿经常会拿这个来考学生,看最后打印的值是什么..一般我看到这种题目就觉得恶心,但是我这次还是决定踩这坨屎...     初始化的部分我想分为两个部分     (1)虚拟机什么时候会对类做初始化     (2)继承关系类按照什么顺序进行初始化   虚拟机什么时候会对类做初始化 类在什么情况下被加载,虚拟机的规范中并没有明确的规定 ,但是,类的初始化却明确规定了:有且只有四种情况必须立即对类进行初始化. (1) 遇到new ,getstatic ,puts ...
解析 解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程.这里需要注意三个点,第一是”常量池”,也就是是处理常量池信息的,第二个和第三个点一起说就是”直接引用”和”符号引用”.其实这两个概念很好理解. 看上图的常量池,有”//”注释的就是符号引用常量.它在常量池中的信息是通过一个引用值来标识的.其他可以直接获取到的值,它其实是直接指向目标的指针,
说明 1 类加载(Class Loading)包括加载,验证,准备,解析,和初始化五个部分. 2 这个文档里介绍的是加载,验证和准备 加载 加载(Loading)是类加载(Class Loading)过程中的一个阶段,
类的生命周期 基本上,类的生命周期可以通过如下图来说明 这个图当中,验证+准备+解析 可以统称为装载,这是错误的(好吧,我承认这个图我是copy来的.)这三个在一起,应该统称为连接(Linking).有jvm 规范为证.    可以看到 Verification(验证) + Preparation(准备) + Resolution(解析) 说明一下,虽然类的生命周期在上图中是按照这个箭头走的,但是并不是所有阶段的顺序都是确定的.比如,类的加载过程必须按照这个顺序开始,但是解析阶段却并不一定,比如某些情况下解析阶段会在初始化之后进行.这个是为了支持Java语言的运行时绑定(动态绑 ...
之前遇到的一些问题..mark一下   package zhenghui.jvm.parse; /** * Created by IntelliJ IDEA. * User: zhenghui * Date: 13-1-14 * Time: 下午4:43 * 表示无符号数.类似在jvm specs里规定的u1,u2,u4,u8 */ public class Type { /** * 对应的16进制表示值 */ private String value; Type(String value) { ...
https://github.com/zhenghui/jvm-tool    文件解析基本完成了..不过指令的解析没有做...也只是解析了几个比较常用的attribute..不过出于演示的作用肯定是够的了. 源代码看附件    
/** * 去除会带来json格式出错的特殊字符. * * @param string * @return */ public static String replaceSpecialStr(String string) { if (string == null || string.length() == 0) { return ""; } char b; char c = 0; int ...
    package com.taobao.ju.c2b.item.manager.impl; import com.taobao.ju.c2b.item.domain.ItemOnlineBO; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.util.Date; public final class SizeCalculator { public static int calcSize(ja ...
package com.taobao.ju.c2b.facade.manager.impl; import com.taobao.ju.common.manager.ManagerException; import com.taobao.ump.client.meta.TargetDef; import com.taobao.ump.client.result.ResultSupport; import com.taobao.ump.core.service.client.MarketingActivityTopServiceClient; import com.taobao ...
  public abstract class Either<L, R> implements Serializable{ /** * */ private static final long serialVersionUID = 0l; private Either() { } @SuppressWarnings("unchecked") public boolean isLeft() { return (this instanceof Left); } @SuppressWarnings(&q ...
package com.taobao.ju.c2b.facade.manager.impl; import com.taobao.ju.c2b.facade.domain.CommentQuery; import com.taobao.ju.c2b.follow.domain.CommentBO; import com.taobao.ju.common.manager.ManagerException; import com.taobao.matrix.comment.domain.*; import com.taobao.matrix.comment.enumcons ...
不多说,直接看代码。。谢谢韩棠同学提供..这里做了 一个转换成大写的步骤,也可以去除掉。   public class Test { private static Transliterator pinyinTransliterator = Transliterator .getInstance("Han-Latin;NFD;[[:NonspacingMark:][:Space:]] Remove"); /** * 将中文转换成字母。 * example: 正回--> ZHEN ...
做个记录。     今天前端要求组装一个如下的json格式数据, { "sid" : "50012906", "name" : "低帮鞋", "spell": "dbx", "leaf" : 2, }, { "sid" : ...
我在linux(fedora)上装了idea debug工程,但是报        ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.  主要是调试器加了 xrunjdwp:transport=dt_socket  但是在idea中是无法去掉这个配置到。具体到方法是在 $jboss_home/bin/run.sh 中,去除 JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_s ...

idea的vm配置

    博客分类:
  • idea
  今天继续得空,优化了下idea的速度.它自带的配置真的无法恭维啊.   开始,果断修改 IntellJ/bin/idea.exe.vmoptions (记得备份哦亲)修改成   -Xms512m -Xmx512m -Xmn164m -XX:MaxPermSize=250m -XX:ReservedCodeCacheSize=64m -Xverify:none -Xnoclassgc -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=85 -ea  重启Idea ...
Global site tag (gtag.js) - Google Analytics