2 gaodml gaodml 于 2014.09.18 13:36 提问

Java中定义变量的问题

各位在工作中,如果把变量提取出来定义,你们会怎么写?

String str=null;

String str="";

谁能告诉我哪个方法好?
第一个声明对象但是不分配空间,第二个直接分配空间

3个回答

anikaka
anikaka   2014.09.18 13:47

第一个是最好了,因为String str="";等于创建了一个对象。而第一个是个null引用所以二者的区别在于是否有对象的创建。建议使用第一个

gaodml
gaodml 如果是声明一个list呢? 也是null?
接近 4 年之前 回复
qiaojiew
qiaojiew   2014.09.18 14:36

String str=null;是定义了一个变量,这个变量没有指向对象,不会在堆中创建对象只是在栈中创建了变量,String

str=""在栈中创建了一个变量和在堆中创建了一个对象,第一个好

gaodml
gaodml 如果是声明一个list呢? 也是null?
接近 4 年之前 回复
fanxue820
fanxue820   2014.09.19 12:56

第一个声明对象没有分配空间,第二创建一个对象,并分配空间str就指向所分配的空间,如果你之后改变str的值,就是改变str的指向,虽说""空间要等java的垃圾回收机制自动回收,但还是浪费了空间。如果有很多用户访问,很有可能造成服务器崩溃。个人感觉还是String str=null好些

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java 和 c等作用域问题,循环中重复定义变量
刚才有人问了一个java 中类似下面代码为何不会出现重复定义问题 1: for (i = 0; i
Java使用变量的注意事项
/* 使用变量的注意事项: A:作用域 变量定义在那个大括号内,它就在这个大括号内有效。 并且,在同一个大括号内不能同时定义同名的变量。 B:初始化值 没有初始化值得变量不能直接使用。 只要在使用前给值就行,不一定要在定义是给值。 定义变量的格式
Java中变量命名重复的问题
在Java中变量分为成员变量(或全局变量)和局部变量两种,概念不多说了。当你命名变量的时候,什么才是变量命名重复呢?     看这段代码:    public class Test    {    private int a = 3;    private  void testD
java 课件让你成为真正的java高手
包含 java中变量 的定义类的定义,数组的定义,构造函数的用法。以及用java实现网页设计。。。
Java 变量定义的时候注意事项
一、常量定义的基本注意事项。 在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字)来定义常量。 当常量被设定后,一般情况下就不允许再进行更改。如可以利用如下的形式来定义一个常量:final double PI=3.1315。 在定义这个常量时,需要注意如下内容:   一是常量在定义的时候,就需要对常量进行初始化。也就是说,必须要在常量声明时对其进行初
变量被重复定义的问题的讨论
变量被重复定义的问题,敬请指教:在Fat32.h中定义:  #ifndef _FAT32_H#define _FAT32_Hstruct FileInfoStruct FileInfo;        //文件信息结构体实体struct FAT32_Init_Arg Init_Arg;           //初始化参数结构体实体#endif在fat32.c中#i nclude "fat32.
js的应用
jsp文件中java 变量javascript变量如何交互的问题
java 8中foreach的理解
Java8 API中介绍Stream:Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections.翻译一下应该可以理解为:用来支持函数式操作元素的类,比如集合转换map-reduce。什么意思呢?简而言之就是为集合
Java中本地变量声明的使用技巧
本地变量声明使用小技巧以及其中的线程安全问题整理
java变量的定义
JAVA数据类型 对于整型数据,通常情况下使用int类型。但是如果表示极大的数据,就需要long类型了,byte和short类型主要用于特定的应用场合,例如:底层的文件处理或者需要控制占用存储空间量的大数组。 在java中,整型数组的长度与平台无关,这就解决了从软件到平台移植到另一个平台时给程序员带来的诸多问题。与此相反,C/C++整型数据的长度是与平台相关的,程序员需要针对不同平台选择合适的