JAVA变量声明在循环体内还是循环体外
2024-10-08 07:53:04
(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);
}
最新文章
- Bootstrap 4-alpha 初体验
- ASP.NET SignalR
- 【转载】免费台北.edu教育邮箱及Office 365 Education申请
- Consistent hashing —— 一致性哈希
- 20145319 《java程序设计》课程总结
- linux配置IP地址
- commonJS — 通用方法(for COM)
- C#读取Xml【转】
- (六)6.13 Neurons Networks Implements of stack autoencoder
- IOS_修改项目模板
- 使用 ICharpCode.SharpZipLib 压缩指定目录结构
- SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题
- Eclipse一个打开文件夹目录插件——Open In Explorer
- Java数据库连接--JDBC基础知识(操作数据库:增删改查)
- 纯JS实现图片验证码功能并兼容IE6-8
- Django1-10-5管理界面中文设置
- 总线读写---verilog代码
- AngularJS里面$emit, $broadcast,$on,$http.Jsonp,constant是使用笔记
- Django视图(一)
- Python 代码调试技巧
热门文章
- LeetCode:26删除有序数组中相同的数.(Python3)
- 51Nod 1183 编辑距离 (字符串相似算法)
- Android_SharedPreferences实现的自动登录和记住密码
- Grammar Framework 1
- 论文阅读笔记(七)【TIP2018】:Video-Based Person Re-Identification by Simultaneously Learning Intra-Video and Inter-Video Distance Metrics
- Electron+React+七牛云 实战跨平台桌面应用(最新更新)
- 【大道至简】NetCore3.1快速开发框架一:集成Swagger
- npm 基础命令
- 假期学习【二】配置Scala环境(Ubuntu)以及配套Scala编程实验
- nginx配置从远程获取静态资源