java在内存中占用的区域叫jvm
java文件进入内存时,会首先进入然后存在内存中的jvm方法区内
方法的执行:
所有方法在执行时首先要在栈空间里申请一块子栈,整个程序的执行顺序是由栈来控制的,执行时不是在方法区执行,而是被拷贝一份在子栈执行,若此方法执行完毕,就是出栈操作
两个连接起来的方法,上面的被下面的方法调用
整个程序的执行顺序是由栈来控制的,执行时入栈,执行完出栈
当方法中定义了变量时,变量拷贝进入线程栈中的方法栈中
上述一系列调用就是一个线程
线程的本质是个栈
当一个块中结束时(即执行到"}"时),在块中声明的变量也会被释放
m1方法执行完毕后,在栈中所占子栈也被回收
如果更改基本类型的值,那么直接在栈中更改变量那一块的值即可
执行i++命令
回收变量时,只是销毁等号左边的句柄,如果是基本类型,则先回收句柄,同时基本类型的值由于没有句柄也会被回收,如果是引用类型,那么会先回收句柄,值则被堆回收
java中任何东西(方法,变量,类,对象)只有有了属于自己的内存才能被操作
静态域:
static修饰的方法,属性只要进入内存就会分配地址,可以直接用类.方法名来使用
Test类:
Person类:
如果更改对象中的引用类型:
在堆中的对象再来一个指针指向更改后的引用类型的地址,普通类型直接改变数值