(1)

for (int i = 0; i < 10000; ++i) {
Object obj = new Object();
System.out.println("obj= "+ obj);
}

(2)

Object obj = null;

for (int i = 0; i < 10000; ++i) {
obj = new Object();
System.out.println("obj= "+ obj);
}

在循环体外,始终都是这一个对象,循环放入的都是最新的值。

在循环体内,创建的是不同的对象,每次放入的对应这不同值的对象。

将变量声明在循环体外的方式多少能节省点空间,可是带来的变量声明周期变长,回收时间推后以及更加严重的隐性bug危险等问题很多。比较而言,有些得不偿失了。

将对象的值赋值为null,相当于把对象的引用清除掉,即把引用对象的指针kill掉,再使用集合就会报空指针异常;

调用集合的clear()方法,是把集合内部的对象都清空,而集合的引用还存在。

for (int i = 0; i < 10000; ++i) {
Object obj = new Object();
System.out.println("obj= "+ obj);
}

应改成
(2)

Object obj = null;

for (int i = 0; i < 10000; ++i) {
obj = new Object();
System.out.println("obj= "+ obj);
}

最新文章

  1. Bootstrap 4-alpha 初体验
  2. ASP.NET SignalR
  3. 【转载】免费台北.edu教育邮箱及Office 365 Education申请
  4. Consistent hashing —— 一致性哈希
  5. 20145319 《java程序设计》课程总结
  6. linux配置IP地址
  7. commonJS — 通用方法(for COM)
  8. C#读取Xml【转】
  9. (六)6.13 Neurons Networks Implements of stack autoencoder
  10. IOS_修改项目模板
  11. 使用 ICharpCode.SharpZipLib 压缩指定目录结构
  12. SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题
  13. Eclipse一个打开文件夹目录插件——Open In Explorer
  14. Java数据库连接--JDBC基础知识(操作数据库:增删改查)
  15. 纯JS实现图片验证码功能并兼容IE6-8
  16. Django1-10-5管理界面中文设置
  17. 总线读写---verilog代码
  18. AngularJS里面$emit, $broadcast,$on,$http.Jsonp,constant是使用笔记
  19. Django视图(一)
  20. Python 代码调试技巧

热门文章

  1. LeetCode:26删除有序数组中相同的数.(Python3)
  2. 51Nod 1183 编辑距离 (字符串相似算法)
  3. Android_SharedPreferences实现的自动登录和记住密码
  4. Grammar Framework 1
  5. 论文阅读笔记(七)【TIP2018】:Video-Based Person Re-Identification by Simultaneously Learning Intra-Video and Inter-Video Distance Metrics
  6. Electron+React+七牛云 实战跨平台桌面应用(最新更新)
  7. 【大道至简】NetCore3.1快速开发框架一:集成Swagger
  8. npm 基础命令
  9. 假期学习【二】配置Scala环境(Ubuntu)以及配套Scala编程实验
  10. nginx配置从远程获取静态资源