第4章类与对象-垃圾收集(小车运行)
对象 运行 收集 垃圾 小车
2023-09-27 14:27:29 时间
问题:
通过小车的数据输出关于小车的行驶状态
代码:
Test.java
public class Test {
public static void main(String[]args){
Vehicle car1,car2,car3;
car1=new Vehicle();
car2=new Vehicle();//创建两个对象
car1.speedUp(60);//加速
car2.speedUp(90);
System.out.println("car1目前的速度是 "+car1.getSpeed());
System.out.println("car2目前的速度是 "+car2.getSpeed());
car1=car2;
car3=car2;
System.out.println("car1目前的速度是 "+car1.getSpeed());
System.out.println("car2目前的速度是 "+car2.getSpeed());
System.out.println("car3目前的速度是 "+car3.getSpeed());
car1=null;
System.out.println("car1目前的速度是 "+car1.getSpeed());
}
}
Vehicle.java
public class Vehicle {
double speed;
int power;
void speedUp(int s){//加速
speed=speed+s;
}
void speedDown(int d){//减速
speed=speed-d;
}
void setPower(int p){//设定马力
power=p;
}
int getPower(){//得到马力
return power;
}
double getSpeed(){//得到速度
return speed;
}
}
运行结果:
总结:
上面发生了NullPointerException异常
和c++不同,在JAVA语言中,类有构造方法但没有析构方法,Java运行环境有“垃圾收集”机制,因此不必像c++程序员一样要时刻检查哪些对象应该使用析构方法释放内存,因此Java很少出现内存泄露。
相关文章
- [SQL Server]无法创建 SSIS 运行时对象,请验证 DTS.dll 是否可用及是否已注册
- Serialzable和Parcelable的区别?Bunder传递对象为什么需要序列化?
- java中使用Optional 判断对象
- ES6教程-字符串,函数的参数,了解函数的arguments对象,js面向对象,设计模式-单例模式,解构赋值
- Javascript 笔记与总结(2-9)获取运行时的 style 对象
- 深入理解Java虚拟机——Java对象是否存活
- String对象的Replace()
- 《提高转化率!网页A/B测试与多变量测试实战指南》一第2章 关于测试方式2.1 测试宜尽早,对象需主流
- python 列表对象的增减
- 使用 Yolov5、FastAPI 和 Docker 构建和部署对象检测
- DOM The Document Object Model 以树状结构组织的文档对象模型
- Objective-C Runtime 运行时之一:类与对象
- SwiftUI 代码速查之 12 Sworm 对象关系映射库ORM 数据管理CoreData
- Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
- python第四十九课——对象序列化与反序列化
- JavaScript之对象学习
- socket互传对象以及IO流的顺序问题
- [转]使用互斥对象让程序只运行一次(delphi)