当前位置: 首页>>代码示例>>Java>>正文


Java InstanceKlass类代码示例

本文整理汇总了Java中sun.jvm.hotspot.oops.InstanceKlass的典型用法代码示例。如果您正苦于以下问题:Java InstanceKlass类的具体用法?Java InstanceKlass怎么用?Java InstanceKlass使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


InstanceKlass类属于sun.jvm.hotspot.oops包,在下文中一共展示了InstanceKlass类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getInterfaces

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
List getInterfaces() {
    List myInterfaces;
    if (saKlass instanceof ArrayKlass) {
        // Actually, JLS says arrays implement Cloneable and Serializable
        // But, JVMDI-JDI just returns 0 interfaces for arrays. We follow
        // the same for consistency.
        myInterfaces = new ArrayList(0);
    } else {
        // Get a list of the sa InstanceKlass types
        List saInterfaces = ((InstanceKlass)saKlass).getDirectImplementedInterfaces();

        // Create a list of our InterfaceTypes
        int len = saInterfaces.size();
        myInterfaces = new ArrayList(len);
        for (int ii = 0; ii < len; ii++) {
            myInterfaces.add(new InterfaceTypeImpl(vm, (InstanceKlass)saInterfaces.get(ii)));
        }
    }
    return myInterfaces;
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:21,代码来源:ReferenceTypeImpl.java

示例2: doit

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public void doit(Tokens t) {
    if (t.countTokens() != 0) {
        usage();
    } else {
        SystemDictionary sysDict = VM.getVM().getSystemDictionary();
        sysDict.allClassesDo(new SystemDictionary.ClassVisitor() {
                public void visit(Klass k) {
                    if (k instanceof InstanceKlass && ((InstanceKlass)k).getConstants().getCache() != null) {
                        MethodArray methods = ((InstanceKlass)k).getMethods();
                        for (int i = 0; i < methods.length(); i++) {
                            Method m = methods.at(i);
                            HTMLGenerator gen = new HTMLGenerator(false);
                            out.println(gen.genHTML(m));
                        }
                    }
                }
            }
            );
    }
}
 
开发者ID:arodchen,项目名称:MaxSim,代码行数:21,代码来源:CommandProcessor.java

示例3: addReferenceType

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private synchronized ReferenceTypeImpl addReferenceType(Klass kk) {
    if (typesByID == null) {
        initReferenceTypes();
    }
    ReferenceTypeImpl newRefType = null;
    if (kk instanceof ObjArrayKlass || kk instanceof TypeArrayKlass) {
        newRefType = new ArrayTypeImpl(this, (ArrayKlass)kk);
    } else if (kk instanceof InstanceKlass) {
        if (kk.isInterface()) {
            newRefType = new InterfaceTypeImpl(this, (InstanceKlass)kk);
        } else {
            newRefType = new ClassTypeImpl(this, (InstanceKlass)kk);
        }
    } else {
        throw new RuntimeException("should not reach here:" + kk);
    }

    typesByID.put(kk, newRefType);
    typesBySignature.add(newRefType);
    return newRefType;
}
 
开发者ID:arodchen,项目名称:MaxSim,代码行数:22,代码来源:VirtualMachineImpl.java

示例4: classLoader

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public ClassLoaderReference classLoader() {
    if (ref() instanceof TypeArrayKlass) {
        // primitive array klasses are loaded by bootstrap loader
        return null;
    } else {
        Klass bottomKlass = ((ObjArrayKlass)ref()).getBottomKlass();
        if (bottomKlass instanceof TypeArrayKlass) {
            // multidimensional primitive array klasses are loaded by bootstrap loader
            return null;
        } else {
            // class loader of any other obj array klass is same as the loader
            // that loaded the bottom InstanceKlass
            Instance xx = (Instance)(((InstanceKlass) bottomKlass).getClassLoader());
            return vm.classLoaderMirror(xx);
        }
    }
}
 
开发者ID:arodchen,项目名称:MaxSim,代码行数:18,代码来源:ArrayTypeImpl.java

示例5: doit

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public void doit(Tokens t) {
    if (t.countTokens() != 0) {
        usage();
    } else {
        ClassLoaderDataGraph cldg = VM.getVM().getClassLoaderDataGraph();
        cldg.classesDo(new ClassLoaderDataGraph.ClassVisitor() {
                public void visit(Klass k) {
                    if (k instanceof InstanceKlass && ((InstanceKlass)k).getConstants().getCache() != null) {
                        MethodArray methods = ((InstanceKlass)k).getMethods();
                        for (int i = 0; i < methods.length(); i++) {
                            Method m = methods.at(i);
                            HTMLGenerator gen = new HTMLGenerator(false);
                            out.println(gen.genHTML(m));
                        }
                    }
                }
            }
            );
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:21,代码来源:CommandProcessor.java

示例6: SAInstanceKlassSize

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private static void SAInstanceKlassSize(int lingeredAppPid,
                                        String[] instanceKlassNames) {

    HotSpotAgent agent = new HotSpotAgent();
    try {
        agent.attach(lingeredAppPid);
    }
    catch (DebuggerException e) {
        System.out.println(e.getMessage());
        System.err.println("Unable to connect to process ID: " + lingeredAppPid);

        agent.detach();
        e.printStackTrace();
    }

    for (String instanceKlassName : instanceKlassNames) {
        InstanceKlass iKlass = SystemDictionaryHelper.findInstanceKlass(
                                   instanceKlassName);
        Asserts.assertNotNull(iKlass,
            String.format("Unable to find instance klass for %s", instanceKlassName));
        System.out.println("SA: The size of " + instanceKlassName +
                           " is " + iKlass.getSize());
    }
    agent.detach();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:26,代码来源:TestInstanceKlassSizeForInterface.java

示例7: SAInstanceKlassSize

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private static void SAInstanceKlassSize(int pid,
                                        String[] SAInstanceKlassNames) {
    HotSpotAgent agent = new HotSpotAgent();
    try {
        agent.attach(pid);
    }
    catch (DebuggerException e) {
        System.out.println(e.getMessage());
        System.err.println("Unable to connect to process ID: " + pid);

        agent.detach();
        e.printStackTrace();
    }

    for (String SAInstanceKlassName : SAInstanceKlassNames) {
        InstanceKlass ik = SystemDictionaryHelper.findInstanceKlass(
                           SAInstanceKlassName);
        Asserts.assertNotNull(ik,
            String.format("Unable to find instance klass for %s", ik));
        System.out.println("SA: The size of " + SAInstanceKlassName +
                           " is " + ik.getSize());
    }
    agent.detach();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:25,代码来源:TestInstanceKlassSize.java

示例8: sourceDebugExtensionInfo

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private SDE sourceDebugExtensionInfo() {
    if (!vm.canGetSourceDebugExtension()) {
        return NO_SDE_INFO_MARK;
    }
    SDE sde = null;
    sde = (sdeRef == null) ?  null : (SDE)sdeRef.get();
    if (sde == null) {
       String extension = null;
       if (saKlass instanceof InstanceKlass) {
          extension = ((InstanceKlass)saKlass).getSourceDebugExtension();
       }
       if (extension == null) {
          sde = NO_SDE_INFO_MARK;
       } else {
          sde = new SDE(extension);
       }
       sdeRef = new SoftReference(sde);
    }
    return sde;
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:21,代码来源:ReferenceTypeImpl.java

示例9: writeFieldDescriptors

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private void writeFieldDescriptors(List fields, InstanceKlass ik)
    throws IOException {
  // ik == null for instance fields.
  out.writeShort((short) fields.size());
  for (Iterator itr = fields.iterator(); itr.hasNext();) {
    Field field = (Field) itr.next();
    Symbol name = symTbl.probe(field.getID().getName());
    writeSymbolID(name);
    char typeCode = (char) field.getSignature().getByteAt(0);
    int kind = signatureToHprofKind(typeCode);
    out.writeByte((byte)kind);
    if (ik != null) {
      // static field
      writeField(field, ik.getJavaMirror());
    }
  }
}
 
开发者ID:geoff-addepar,项目名称:heap-dump,代码行数:18,代码来源:HeapHprofBinWriter.java

示例10: baseSourceName

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
String baseSourceName() throws AbsentInformationException {
  if (saKlass instanceof ArrayKlass) {
        throw new AbsentInformationException();
  }
  Symbol sym = ((InstanceKlass)saKlass).getSourceFileName();
  if (sym != null) {
      return sym.asString();
  } else {
      throw new AbsentInformationException();
  }
}
 
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:12,代码来源:ReferenceTypeImpl.java

示例11: sourceDebugExtensionInfo

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private SDE sourceDebugExtensionInfo() {
    if (!vm.canGetSourceDebugExtension()) {
        return NO_SDE_INFO_MARK;
    }
    SDE sde = null;
    sde = (sdeRef == null) ?  null : (SDE)sdeRef.get();
    if (sde == null) {
       String extension = null;
       if (saKlass instanceof InstanceKlass) {
          Symbol sdeSym = ((InstanceKlass)saKlass).getSourceDebugExtension();
          extension = (sdeSym != null)? sdeSym.asString() : null;
       }
       if (extension == null) {
          sde = NO_SDE_INFO_MARK;
       } else {
          sde = new SDE(extension);
       }
       sdeRef = new SoftReference(sde);
    }
    return sde;
}
 
开发者ID:aducode,项目名称:openjdk-source-code-learn,代码行数:22,代码来源:ReferenceTypeImpl.java

示例12: addReferenceType

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
private synchronized ReferenceTypeImpl addReferenceType(Klass kk) {
    if (typesByID == null) {
        initReferenceTypes();
    }
    ReferenceTypeImpl newRefType = null;
    if (kk instanceof ObjArrayKlass || kk instanceof TypeArrayKlass) {
        newRefType = new ArrayTypeImpl(this, (ArrayKlass)kk);
    } else if (kk instanceof InstanceKlass) {
        if (kk.isInterface()) {
            newRefType = new InterfaceTypeImpl(this, (InstanceKlass)kk);
        } else {
            newRefType = new ClassTypeImpl(this, (InstanceKlass)kk);
        }
    } else {
        throw new RuntimeException("should not reach here");
    }

    typesByID.put(kk, newRefType);
    typesBySignature.add(newRefType);
    return newRefType;
}
 
开发者ID:aducode,项目名称:openjdk-source-code-learn,代码行数:22,代码来源:VirtualMachineImpl.java

示例13: canInclude

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public boolean canInclude(InstanceKlass kls) {
    if (kls.getClassLoader() == null) return false;
    if (emitted.get(kls.getName()) != null) {
        // Since multiple class loaders are being shoved
        // together duplicate classes are a possibilty.  For
        // now just ignore them.
        return false;
    }
    emitted.put(kls.getName(), kls);
    return true;
}
 
开发者ID:arodchen,项目名称:MaxSim,代码行数:12,代码来源:CommandProcessor.java

示例14: genericSignature

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public String genericSignature() {
    if (saKlass instanceof ArrayKlass) {
        return null;
    } else {
        Symbol genSig = ((InstanceKlass)saKlass).getGenericSignature();
        return (genSig != null)? genSig.asString() : null;
    }
}
 
开发者ID:arodchen,项目名称:MaxSim,代码行数:9,代码来源:ReferenceTypeImpl.java

示例15: classLoader

import sun.jvm.hotspot.oops.InstanceKlass; //导入依赖的package包/类
public ClassLoaderReference classLoader() {
  Instance xx = (Instance)(((InstanceKlass)saKlass).getClassLoader());
  return (ClassLoaderReferenceImpl)vm.classLoaderMirror(xx);
}
 
开发者ID:arodchen,项目名称:MaxSim,代码行数:5,代码来源:ReferenceTypeImpl.java


注:本文中的sun.jvm.hotspot.oops.InstanceKlass类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。