8 不要提前创建对象
尽量在需要的时候创建对象,重复的分配、构造对象可能会因垃圾回收(GC)做额外的工作,降低系统性能,例如:
... ...
void f() {
int i;
A a = new A();
// 类A的对象a被创建
// 在判断语句之外没有应用过a对象
...
if(...) {
// 类A的对象a仅在此处被应用
a.showMessage();
...
}
...
}
正确的书写方式为:
void f() {
int i;
...
if(...) {
A a = new A();
// 类A的对象a被创建
// 在判断语句中使用了a对象
a.showMessage();
...
}
...
}
分享到:
相关推荐
Java自动管理内存,通过垃圾回收器回收不再使用的对象,防止内存泄漏。开发者需要理解何时对象会被标记为可回收,以及如何优化垃圾回收的性能。 最后,随着Java 8及更高版本的发布,函数式编程的概念也被引入。...
- **自动垃圾回收**:Java提供自动内存管理功能,通过垃圾回收器(garbage collector)自动释放不再使用的内存空间。 - **优点**:简化了内存管理过程,避免了因手动管理内存可能引起的内存泄漏等问题。 4. **...
Java是一种跨平台的面向对象的编程语言,它的强类型、内存管理以及丰富的类库使其成为开发各种应用的理想选择。在本游戏中,Java的多线程特性起到了关键作用。"线程"是Java的标签之一,意味着开发者利用了并发处理来...
《Android编程之虚拟机Dalvik教程》是一份深入解析Android操作系统核心组件——Dalvik虚拟机的宝贵资料。本文将从多个角度详细介绍Dalvik虚拟机及其在Android开发中的重要性,帮助开发者深化对Android系统运行机制的...
- **环境配置**:熟悉Java编程环境的搭建及配置,如IDE(集成开发环境)的选择和安装、项目结构的搭建等。 #### 第二周:Java基础知识掌握 1. **类之间的关系**: - **关联**: 表示一个类的对象与另一个类的对象...
然而,Java中有一种类似`goto`的替代品——标签化的`break`和`continue`语句,它们可以用于从循环中提前退出或跳过某些迭代,尽管这并不等同于C或C++中的`goto`。 #### 3\. `&`与`&&`的区别 在Java中,`&`和`&&`都...
- **泛型编程**:使用面向对象语言的泛型或模板,可以使栈支持多种数据类型。 - **动态数组**:如C++中的`std::vector`或Java中的`ArrayList`,可以在需要时自动扩展,提供更灵活的容量管理。 总的来说,栈的使用...
Java的垃圾收集机制虽然自动管理内存,但在大量对象创建或内存消耗大的情况下,仍需注意内存泄漏和性能瓶颈。我们可以通过分析代码中的内存分配和数据结构选择,学习如何提高程序的运行效率。 综上所述,...
- **AOP(Aspect Oriented Programming)**:面向切面编程,是一种编程范式,用于将横切关注点(如日志记录、事务管理等)从业务逻辑中分离出来。 - **IOC(Inversion of Control)**:控制反转,是一种设计模式,用于...