java对象是怎么在jvm中new出来的
查看java对象字段属性在内存中的值
java 对象 创建 流程
附上java源码
java
public class MiDept {
private int innerFiled=999;
public MiDept() {
System.out.println("new MiDept--------------");
}
public String show(int data) {
System.out.println("mi--------------"+data);
return "yym-invoke-method";
}
public int getInnerFiled() {
return innerFiled;
}
public void setInnerFiled(int innerFiled) {
this.innerFiled = innerFiled;
}
}
public class GDBDebugJava {
public static int static_field = 8888;
MiDept miDept0=null;
MiDept miDept1=null;
MiDept miDept2=null;
public static void main(String[] args) {
GDBDebugJava gDBDebugJava = new GDBDebugJava();
int i=0;
try {
TimeUnit.SECONDS.sleep(1);
System.out.println("mi"+i++);
}catch (Exception e) {
e.printStackTrace();
}
Thread.currentThread().setName("yym");
gDBDebugJava.miDept0 = new MiDept();
gDBDebugJava.miDept0.setInnerFiled(666);
System.out.println(gDBDebugJava.miDept0.show(123456));
}
}
1、分配java对象内存 jvm源代码oop obj = klass->allocate_instance(CHECK);
2、打印java对象在内存中地址
3、使用gdb attach 28965 java进程 查看java对象int字段属性在内存中值
计算器转换10十进制数字