java中String a ; String a = null 和String a = ""的区别

String a; 申明一个string类型的 a,即没有在申请内存地址,更没有在内存任何指向引用地址;

String a = null ; 申明一个string类型的 a,同时在内存里申请了一个地址,但是该地址不指向任何引用地址;

String a = "" ;申明一个string类型的 a,既在内存里申请了地址,该地址又指向一个引用该字符串的引用地址;

一般来说 字符串的使用 最好用String a = "" ;语句, 可以防止后面的程序因引用地址混乱而找不到的异常! String a = null ; String a; 劲量少用! 能不用就不要使用!

时间: 2024-10-08 20:01:46

java中String a ; String a = null 和String a = ""的区别的相关文章

java中新建对象设为null 和new 一个对象的区别

在创建for循环创建对象的过程中,不想吧new的对象放在for循环当中,那样在占用内存比较大,所以就把它放在外面 刚开始时这样写的 直接在外层让pics为null ,里面的值直接引用,但是在程序的过程中,set值得时候始终未成功,后来在网上查了下null值和new对象的区别,null值是一个空指向,不会占用内存.new是一个实体,会占用内存.但是我又不行在循环中创建对象 所以采取了下面这个方法创建对象 这样创建对象只会在内存中保存一份该对象的引用,称之为软引用 因为当创建对象完成阶段就会进入该对

Java中利用MessageFormat对象实现类似C# string.Format方法格式化

我们在写C#代码的时候常常会使用到string.Format("待格式化字符串{0},{1},....",参数1,参数2,...),来格式化字符串,特别是拼接字符的时候,这种方式使得代码更为直观清楚. 最近使用java时候却java的string.Format与c#重点string.Format用法不一样,java中的string.format更类似于C语言的sprintf()方法 例如: String str=null; str=String.format("Hello,%

java中数组有没有length()方法?string没有lenght()方法?

java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int[] arr={1,2,3,4,5}; int length=arr.length;//求数组的长度 ---------------------------------------------------------------------------------------- String 有length()方法,用来求字符串的长度 String  str="Hello"; int leng

java中如何将char数组转化为String

1.直接在构造String时建立. char data[] = {'s', 'g', 'k'}; String str = new String(data); 2.String有方法可以直接转换. String.valueOf(char[] chr)就可以. 如: char[] cha = {'s','g','h'}; String n = String.valueOf(char[]); String.valueOf()函数支持将boolean ,char,char[],double,float

java中,return和return null有什么区别吗?

java中,return和return null有什么区别吗? 最大的区别:return;方法的返回值必须是void!return null;方法的返回值必须不是 原始数据类型(封装类除过)和void! return 就是跳出方法...return null也是跳出方法并返回null.. 也就是说return null必须用在返回值不是void的方法里面..return可以用在任何方法里面 不要认为null就是没有值..null就是值..真正的没有值是..比如你String s;这个时候s是没有

Java中的Runnable、Callable、Future、FutureTask的区别与示例

Java中存在Runnable.Callable.Future.FutureTask这几个与线程相关的类或者接口,在Java中也是比较重要的几个概念,我们通过下面的简单示例来了解一下它们的作用于区别. Runnable 其中Runnable应该是我们最熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值.然后使用某个线程去执行该runnable即可实现多线程,Thread类在调用start()函数后就是执行的是Runnable的run()函数.Runnable的声明如下

java中 HashMap和Hashtable,list、set和map 的区别

摘自: http://blog.chinaunix.net/uid-7374279-id-2057584.html HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许.HashMap把Hashtable的contains方法去掉了,改成contains

Java中的Runnable、Callable、Future、FutureTask的区别

Java中存在Runnable.Callable.Future.FutureTask这几个与线程相关的类或者接口,在Java中也是比较重要的几个概念,我们通过下面的简单示例来了解一下它们的作用于区别. Runnable 其中Runnable应该是我们最熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值.然后使用某个线程去执行该runnable即可实现多线程,Thread类在调用start()函数后就是执行的是Runnable的run()函数.Runnable的声明如下

Java中super的几种用法并与this的区别

1.     子类的构造函数如果要引用super的话,必须把super放在函数的首位. 1 class Base { 2 Base() { 3 System.out.println("Base"); 4 } 5 } 6 7 public class Checket extends Base { 8 Checket() { 9 super();//调用父类的构造方法,一定要放在方法的首个语句 10 System.out.println("Checket"); 11 }

java中super的几种用法,与this的区别

1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base"); } } public class Checket extends Base { Checket() { super();//调用父类的构造方法,一定要放在方法的首个语句 System.out.println("Checket"); } public static void main(Str