Java中的类与对象,堆,栈,方法区的解释

1, Java作为一门面向对象的编程语言,感觉其实也不是100%的面向对象,由于还是保留了一些面向过程的东西,其实也就是一个95%面向对象,有人说小白编程面向对象,有点东西的是面向百度编程。类与对象到底是个什么东西呢?

2, 是个什么东西呢,人类认识事物的时候,就是通过抽象从而得出很多理论,有些东西它有共性,这也就成为了分类的重要依据之一,比如我家有三条狗大黄,二黄,三黄,它们是相同的种类,“中华田园犬,作为同一种类,中华田园犬是人为抽象出来的一个概念,这个名词是抽象出来的词汇,是人为给起的名字就像你给类起名字一样,大黄,二黄,三黄这三条狗是真实存在的,它们不就是对象吗,起一样的名字,那肯定是有说法的,估计它们是有什么特征是一样的吧,比如耳朵都耷拉着,叫声都很接近,耳朵和叫声刚好对应了狗子的特征行为吧,特征行为不就刚好对应了类的属性方法吧,如果你能看得到这篇文章,相信你对class Point也肯定烂熟于心了吧,属性与方法怎么写小弟就不解释了哈。

3, 堆,栈,方法区(JVM内存结构的三个组成部分)

JVM中一共由上图上面的三个区域,栈区,方法区,堆区,它们都是在内存中,Java程序一运行,叮,类的装载器把类进行装载,装载的是字节码文件,也就是.class文件,然后这个被装载的类的基本信息与方法定义给加载JVM内存结构方法区里面,就像你玩游戏的时候,游戏文件加载到内存一样的操作。

现在程序开始运行了,你在程序里面,有很多的局部变量你调用一个方法一次JVM给栈里面写一个记录,这个记录叫做栈帧方法调用完成,栈帧消亡,被JVM清除,引用类型的变量是存放在栈里面的Point p = new Point() p是存放在栈中的。

然后堆中存放的是对象,就是你new出来的对象,如下图

你新建一个对象堆内存里面堆多一行记录,作为对象的引用p就指向你新建时候的这个引用所指代的对象。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值