java初学者日志_02

面向对象的内存分析

的特点:
1.栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧
2.jvm为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量)
3.栈属于进程私有
4.先进后出
5.栈是由系统自动分配,速度快,是一个连续的内存空间

的特点:
1.堆用于储存创建好的对象和数组
2.JVM只有一个堆,被所有线程共享
3.对是一个不连续的内存空间,分配灵活,速度慢

方法区的特点:
方法区可视作特殊的堆,但其中储存的数据一般不会变,例如的信息

 class Person{
    String name;
    int age;
    public void show(){
        System.out.println("姓名"+name+"\t年龄"+age);
    }
    /*Person(String _name,int _age){
        System.out.println("姓名"+_name+"年龄"+_age);
    }
     */
}
public class project_03 {
    public static void main(String[] args) {
        Person p1=new Person();
        p1.name="星空辰梦";
        p1.age=16;
        p1.show();
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分代垃圾回收机制:
1年轻代
Eden,Servivor,当年轻代区域存放满对象后,就将对象存放到年老代区域
(经历N次,默认15次,垃圾回收后仍然存活的对象,会被放到年老代中)
2年老代
年老代对象太多后就需要启动Major GC和Full GC(全量回收)来大扫除,全面清理年轻代区域和年老代区域
3永久代
随时出现,只要出现就与java虚拟机共存亡,jdk8后使用metaspace元数据空间和堆替代
在这里插入图片描述
Minor GC:清理年轻代区域,Eden区满了就会触发,将有用的对象复制到Survivor1和SURvivor2中

Major GC:清理年老代区域

Full GC:清理年轻代,年老代区域,成本较高,会对系统性能产生影响

JVM调优:很大一部分工作是对于Full GC的

this的本质就是"创建好的对象的地址“

public class project_03 {
    int id;
    String name;
    String pwd;
    static String company="张三";
    public  project_03(int id, String name){
        this.id=id;
        this.name=name;
    }
    public project_03(int id,String name,String pwd){
        this(id,name);//使用this调用别的构造器,并且必须位于第一句
        this.pwd=pwd;
    }
    public static void pc(){
        System.out.println(company);

    }
    public void login(){
        System.out.println(this.name);
        System.out.println(company);
        project_03.pc();//对象可以调用company(proje_03类)
    }
    public static void main(String[] aegs){
        project_03 p1=new project_03(18,"法外狂徒");
        p1.login();
        project_03.company="fuck狂徒";
        project_03.pc();
    }
}

this的解释:this.id
{1.main方法开始,然后p1创建,方法区中project_03类创建,堆中project_03出现,地址为0x11}
this.id即为0x11.id

this不能用于static方法中

static声明的成员变量为静态成员变量,也称为类变量,类变量的生命周期与类相同,在整个应用程序执行期间都有效
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值