String变量应该定义在方法外还是方法内

来源:互联网 发布:电脑网络链接别人电脑 编辑:程序博客网 时间:2024/04/30 17:09

描述

之前有做过测试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 string    private static void staticStringParameter(String st) {        System.out.println("Test.staticStringParameter----------传入的参数值:"+st);        System.out.println("Test.staticStringParameter 传入的参数地址:"+st.hashCode());        String sps = st;//static parameter string        System.out.println("Test.staticStringParameter 方法中变量地址::"+sps.hashCode());        sfs = st;        System.out.println("Test.staticStringParameter 全局变量地址::"+sfs.hashCode());    }}

输出信息

Test.stringParameter----------传入的参数值:0Test.stringParameter 传入的参数地址:48Test.stringParameter 方法中变量地址:48Test.stringParameter 全局变量地址:48Test.stringParameter----------传入的参数值:1Test.stringParameter 传入的参数地址:49Test.stringParameter 方法中变量地址:49Test.stringParameter 全局变量地址:49Test.stringParameter----------传入的参数值:1Test.stringParameter 传入的参数地址:49Test.stringParameter 方法中变量地址:49Test.stringParameter 全局变量地址:49Test.stringParameter----------传入的参数值:2Test.stringParameter 传入的参数地址:50Test.stringParameter 方法中变量地址:50Test.stringParameter 全局变量地址:50Test.stringParameter----------传入的参数值:123Test.stringParameter 传入的参数地址:48690Test.stringParameter 方法中变量地址:48690Test.stringParameter 全局变量地址:48690Test.stringParameter----------传入的参数值:123Test.stringParameter 传入的参数地址:48690Test.stringParameter 方法中变量地址:48690Test.stringParameter 全局变量地址:48690Test.staticStringParameter----------传入的参数值:0Test.staticStringParameter 传入的参数地址:48Test.staticStringParameter 方法中变量地址::48Test.staticStringParameter 全局变量地址::48Test.staticStringParameter----------传入的参数值:1Test.staticStringParameter 传入的参数地址:49Test.staticStringParameter 方法中变量地址::49Test.staticStringParameter 全局变量地址::49Test.staticStringParameter----------传入的参数值:1Test.staticStringParameter 传入的参数地址:49Test.staticStringParameter 方法中变量地址::49Test.staticStringParameter 全局变量地址::49Test.staticStringParameter----------传入的参数值:2Test.staticStringParameter 传入的参数地址:50Test.staticStringParameter 方法中变量地址::50Test.staticStringParameter 全局变量地址::50Test.staticStringParameter----------传入的参数值:123Test.staticStringParameter 传入的参数地址:48690Test.staticStringParameter 方法中变量地址::48690Test.staticStringParameter 全局变量地址::48690Test.staticStringParameter----------传入的参数值:123Test.staticStringParameter 传入的参数地址:48690Test.staticStringParameter 方法中变量地址::48690Test.staticStringParameter 全局变量地址::48690
0 0
原创粉丝点击