JVM内存结构,匿名对象的使用,方法的重载

#JVM内存结构
编译完源程序以后,生成一个或多个字节码文件。
我们使用JVM中的类的加载器和解释器对生成的字节码文件进行解释运行。意味着,需要将字节码文件对应的类加载到内存中,涉及到内存解析。

在这里插入图片描述
虚拟机栈,即为平时提到的栈结构。我们将局部变量存储在栈结构中
堆,我们将new出来的结构(比如:数组、对象)加载在对空间中。补充:对象的属性(非static的)加载在堆空间中。
方法区:类的加载信息、常量池、静态域
#2类的成员之二:
##方法(method)

package atwanyi.java;
/*
 * 一、理解“万事万物皆对象”
 * 1.在java语言范畴中,我们都将功能、结构等封装到类中,通过类的实例化,来调用具体的功能结构
 * 	>Scanner,String等
 * 	>文件,File
 * 	>网络资源:URL
 * 2.涉及到java语言与前端Html、后端的数据库交互时,前后端的结构在Java层面交互时,
 * 都体现为类、对象。
 * 
 * 二、内存解析的说明
	 * 1.引用类型的变量,只可能存储两类值:null或地址值(含变量的类型)
 * 
 *	三、匿名对象的使用
 *1.理解:我们创建的对象,没有显示的赋给一个变量名。即为匿名对象
 *2.特征:匿名对象只能调用一次
 *3.使用:如下
 */
public class InstanceTest {
	public static void main(String[] args) {
		Phone p = new Phone();
//		p = null;
		System.out.println(p);
		
		p.sendEmail();
		p.playGame();
		
		//匿名对象
//		new Phone().sendEmail();
//		new Phone().playGame();
		
		new Phone().price = 1999;
		new Phone().showPrice();//0.0
	
		//*******************
		PhoneMall mall = new PhoneMall();
//		mall.show(p);
		//匿名对象的使用
		mall.show(new Phone());
	}
}
class PhoneMall{
	public void show(Phone phone) {
		phone.sendEmail();
		phone.playGame();
}
}
class Phone{
	double price;//价格
	
	public void sendEmail() {
		System.out.println("发送邮件");
	}
	
	public void playGame() {
		System.out.println("玩游戏");
	}
	
	public void showPrice() {
		System.out.println("手机价格为:" + price);
	}
}

##方法的重载
在这里插入图片描述

package atwanyi.java1;
/*
 * 方法的重载(overload)loading...
 * 
 * 1.定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
 * 
 * "两同一不同":同一个类、相同方法名
 * 				参数列表不同:参数个数不同,参数类型不同
 * 
 * 2.举例:
 * 	Arrays类中重载的sort() / binarySearch()
 * 3.判断是否是重载:
 * 		跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系!
 * 
 * 4.在通过对象调用方法时,如何确定某一个指定的方法:
 * 		方法名---->参数列表
 */
public class OverLoadTest {
	public static void main(String[] args) {
		
		OverLoadTest test = new OverLoadTest();
		test.getSum(1, 2);
	}
	//如下的四个方法构成了重载
	public void getSum(int i,int j) {
		System.out.println("1");
	}
	
	public void getSum(double d1,double d2) {
		System.out.println("2");
	}
	
	public void getSum(String s,int i) {
		System.out.println("3");
	}
	public void getSum(int i,String s) {
		System.out.println("4");
	}
	
//	public int getSum(int i,int j){
//	return 0;
//	}
	
//	public void getSum(int m,int n) {
//		
//	}
	
//	private void getSum(int i,int j) {
//		
//	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值