方法外还是方法内"/>
String变量应该定义在方法外还是方法内
描述
之前有做过测试String变量定义在方法外和方法内地址是一样的。但是时间久了,自己又怀疑了,所以开了这篇博客,记录下
结果
变量定义在方法内与方法外是一样的,测试代码如下
测试代码
代码
/*** @author :renpan* @version :v1.0* @class :com.luomo.shopping* @date :2016-04-01 10:30* @description:测试类*/
public class Test {public static void main(String[] args) {String st="123";//---调用一般方法new Test().stringParameter("0");new Test().stringParameter("1");new Test().stringParameter("1");new Test().stringParameter("2");new Test().stringParameter(st);new Test().stringParameter(st);//---调用静态方法staticStringParameter("0");staticStringParameter("1");staticStringParameter("1");staticStringParameter("2");staticStringParameter(st);staticStringParameter(st);}//---一般方法private String fs;private void stringParameter(String st) {System.out.println("Test.stringParameter----------传入的参数值:"+st);System.out.println("Test.stringParameter 传入的参数地址:"+st.hashCode());String ps = st;System.out.println("Test.stringParameter 方法中变量地址:"+ps.hashCode());fs = st;System.out.println("Test.stringParameter 全局变量地址:"+fs.hashCode());}//---静态方法private static String sfs;//static field stringprivate static void staticStringParameter(String st) {System.out.println("Test.staticStringParameter----------传入的参数值:"+st);System.out.println("Test.staticStringParameter 传入的参数地址:"+st.hashCode());String sps = st;//static parameter stringSystem.out.println("Test.staticStringParameter 方法中变量地址::"+sps.hashCode());sfs = st;System.out.println("Test.staticStringParameter 全局变量地址::"+sfs.hashCode());}
}
输出信息
Test.stringParameter----------传入的参数值:0
Test.stringParameter 传入的参数地址:48
Test.stringParameter 方法中变量地址:48
Test.stringParameter 全局变量地址:48
Test.stringParameter----------传入的参数值:1
Test.stringParameter 传入的参数地址:49
Test.stringParameter 方法中变量地址:49
Test.stringParameter 全局变量地址:49
Test.stringParameter----------传入的参数值:1
Test.stringParameter 传入的参数地址:49
Test.stringParameter 方法中变量地址:49
Test.stringParameter 全局变量地址:49
Test.stringParameter----------传入的参数值:2
Test.stringParameter 传入的参数地址:50
Test.stringParameter 方法中变量地址:50
Test.stringParameter 全局变量地址:50
Test.stringParameter----------传入的参数值:123
Test.stringParameter 传入的参数地址:48690
Test.stringParameter 方法中变量地址:48690
Test.stringParameter 全局变量地址:48690
Test.stringParameter----------传入的参数值:123
Test.stringParameter 传入的参数地址:48690
Test.stringParameter 方法中变量地址:48690
Test.stringParameter 全局变量地址:48690
Test.staticStringParameter----------传入的参数值:0
Test.staticStringParameter 传入的参数地址:48
Test.staticStringParameter 方法中变量地址::48
Test.staticStringParameter 全局变量地址::48
Test.staticStringParameter----------传入的参数值:1
Test.staticStringParameter 传入的参数地址:49
Test.staticStringParameter 方法中变量地址::49
Test.staticStringParameter 全局变量地址::49
Test.staticStringParameter----------传入的参数值:1
Test.staticStringParameter 传入的参数地址:49
Test.staticStringParameter 方法中变量地址::49
Test.staticStringParameter 全局变量地址::49
Test.staticStringParameter----------传入的参数值:2
Test.staticStringParameter 传入的参数地址:50
Test.staticStringParameter 方法中变量地址::50
Test.staticStringParameter 全局变量地址::50
Test.staticStringParameter----------传入的参数值:123
Test.staticStringParameter 传入的参数地址:48690
Test.staticStringParameter 方法中变量地址::48690
Test.staticStringParameter 全局变量地址::48690
Test.staticStringParameter----------传入的参数值:123
Test.staticStringParameter 传入的参数地址:48690
Test.staticStringParameter 方法中变量地址::48690
Test.staticStringParameter 全局变量地址::48690
更多推荐
String变量应该定义在方法外还是方法内
发布评论