栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java面向对象上

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java面向对象上

面向对象和面向过程

面向过程:以过程为中心的编程思想,实现功能的每一步,都是自己实现的

面向对象:以对象为中心的编程思想,通过指挥对象实现具体的功能

对象:客观存在的具体事物 万物皆对象

类:一类具有共同属性和行为的事物的抽象
类是具有相同属性和行为的一组对象的集合

属性:对象具有的各种特征

单个对象内存图
package javabase;

public class TestStudent {
	public static void main(String []args)
	{
		Student s = new Student();
		System.out.println(s);
		System.out.println(s.name + "..." + s.age);
		s.name = "小明";
		s.age = 21;
		System.out.println(s.name + "..." + s.age);
		s.study(); 
	}
}

package javabase;

public class Student {
	String name;
	int age;
	
	public void study()
	{
		System.out.println("学习");
	}
}

首先测试类字节码文件加载到方法区,测试类只有一个主方法,主方法被jvm自动调用执行到栈内存,调入栈内存之后,开始执行方法

之后加载student类的字节码文件进入方法区,加载完毕之后,在堆内存开辟一个空间,将相关成员变量进行初始化,成员方法的地址放入堆内存,之后将堆内存地址赋值给s,那么控制台打印堆内存地址,

调用s.study: s通过记录的堆内存地址 找到堆内存,之后找到方法的地址。然后通过成员方法地址找到方法区的study的字节码文件,将该字节码文件调入栈内存,之后开始执行study方法,调用完毕之后,弹栈消失

两个引用指向同一对象内存图
package javabase;

public class TestStudent2 {
	
	public static void main(String[] args)
	{
		Student stu1 = new Student();
		stu1.name = "小明";
		
		
		//将stu1的堆内存地址 赋值给stu2  两个引用指向同一个堆内存地址
		Student stu2 = stu1;
		
		
		//修改是有效的
		stu2.name = "小红";
		System.out.println(stu1.name + "..." + stu2.name);
	}
}

垃圾回收机制:当堆内存,对象或者数组产生的地址,通过任何方式都不能被找到之后,就会被判定为内存中的垃圾。空闲的时候自动清理垃圾。

成员变量与局部变量

成员变量:类中方法外的变量
局部变量:类中方法内的变量

成员变量存放在堆内存中,局部变量存放在栈内存中,成员变量随着对象的存在而存在,随着对象的消失而消失,局部变量随着方法的调用而存在,随着方法的调用完毕而消失。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/293367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号