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);
        }
    
    }
  • 相关阅读:
    又从头开始
    test1
    day1
    路飞学成-Python爬虫实战密训-第3章
    路飞学成-Python爬虫实战密训-第2章
    路飞学成-Python爬虫实战密训-第1章
    【软件测试】(homework3)覆盖问题
    【软件测试】(homework3)有关三角形的测试练习
    【软件测试】(homework2)错误分析
    【软件测试】(homework1)描述曾遇到且已经被解决的error
  • 原文地址:https://www.cnblogs.com/SFHa/p/9673882.html
Copyright © 2011-2022 走看看