zoukankan      html  css  js  c++  java
  • 关于常量池-----小例子

    package com.xdf;
    
    import org.junit.Test;
    
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Set;
    
    public class HashSetDemo {
    
    
        @Test
        public  void  testHashSet(){
            String  a="abc";
            String  b="abc";
            String  c=new String("abc");
            System.out.println(a.hashCode());
            System.out.println(b.hashCode());
            System.out.println(c.hashCode());
            System.out.println(a.hashCode()==b.hashCode());
            System.out.println(a.hashCode()==c.hashCode());
    
        }
    
    
    
    
        @Test
        public  void  testString(){
    
            /**
             *   01.在栈中开辟空间存储a
             *   02.拿“abc”字符串去常量池中查询有没有,因为我们是第一次创建,所以没有
             *   03.在常量池中开辟空间存储"abc"
             *   04.栈中的a就指向了常量池中的"abc"地址
             */
            String  a="abc";
            /**
             *   01.在栈中开辟空间存储b
             *   02.拿“abc”字符串去常量池中查询有没有,有
             *   03.在常量池中不会开辟空间存储
             *   04.栈中的b就指向了常量池中的"abc"原有地址
             */
            String  b="abc";
            /**
             *   01.在栈中开辟空间存储c
             *   02.拿“abc”字符串去常量池中查询有没有
             *   有:直接去堆中开辟空间保存"abc"
             *   没有:在常量池中开辟空间存储"abc",之后再去堆中开辟空间保存"abc"
             *   03.栈中的c指向了堆的"abc"
             *
             */
            String  c=new String("abc");
            System.out.println(a==b);
            System.out.println(a==c);
            System.out.println(a.equals(c));
        }
    
    
    
        @Test
        public   void  testIntern(){
            String  a="abc";
            String  b=new String("abc");
            String  c=new String("abc");
            System.out.println(a==b);
            System.out.println(a==b.intern()); //让b去常量池中寻找引用
            System.out.println(c.intern()==b.intern()); //让bc去常量池中寻找引用
        }
        @Test
        public   void  testFinal(){
            /**
             * 创建了3个变量
             *  常量
             */
             String  a="abc";
                     a="bcd";
          final   String  b="a";
          final   String  c="bc";
          System.out.println(a==(b+c));//不会自动拼接abc
        }
    
    
        /**
         *  -128 127 存在常量池中
         */
        @Test
        public  void  testInt(){
            Integer num1=128;
            Integer num2=128;
            Integer num3=new Integer(128);
            System.out.println(num1==num2);
            System.out.println(num1==num3);
        }
    
    }
  • 相关阅读:
    iOS 获取当前设备类
    iOS 字体详解
    iOS屏幕旋转总结
    CocoaPods安装和使用教程
    【iOS】build diff: /../Podfile.lock: No such file or directory
    Eclipse使用Maven构建web项目
    UIScrollView增加刷新
    Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime
    嵌入支付宝SDK,出现“LaunchServices: ERROR: There is no registered handler for URL scheme alipay”错误
    iOS开发 传感器(加速计、摇一摇、计步器)
  • 原文地址:https://www.cnblogs.com/SFHa/p/9673882.html
Copyright © 2011-2022 走看看