zoukankan      html  css  js  c++  java
  • java值和地址值传递、字符串常量池的理解

    #java值和地址值传递的理解:

     - 基本数据类型和基本数据类型的封装类都是:值传递 
      * 形式参数的改变不会影响实际参数的改变(相当于将值复制一份传递给形参,自身没做任何改变) 
     - 引用数据类型都是 地址值传递
      * 形式参数的改变会影响实际参数的改变(将地址值赋值给形参,形参就可以指向实参所指向的地址,
       即形参也可以操作实参指向地址的数据了)
     
    #注意:String是个特例(当作基本类型处理)
      
     - 分析:从String类的源码可以知道,String相当于是char[]的封装类,即具有char类型的性质。   
           
                 String str1="abc";//直接新建的字符串(引用值在常量池中)
                 String str2=new String("a");//通过new产生的字符串
                 // 以上两种方式都是属于值传递,而不是地址值传递
     
    #常量池技术:
     - 方便快捷的创建某些对象为出现的,常量池技术其实就是一个内存空间,
      *         
                 //就是在常量池中创建的,
                  String str="ab";
                 //在堆内存中创建的
                 String str=new String("ab");--2
                 其中第二句代码分为两种情况
                   1.常量池如果有"ab",就直接从常量池中获取"ab",就只需要创建一次对象
                   2.常量池若没有"ab",首先在常量池创建"ab",然后在堆内存再创建一次对象


    #8基本类型的包装类和对象池

     - Byte,Short,Integer,Long,Character,Boolean实现了常量池技术,
     - Float,Double浮点型没有实现常量池技术。
     - Byte,Short,Integer,Long,Character这5种包装类也只是在对应值
      小于127时(存在缓存)才可以使用对象池。                    

  • 相关阅读:
    使用pickle进行存储变量
    tensorflow的save和restore
    使用tf.print()打印tensor内容
    用python对txt中文件读取,然后按顺序标号存入excel中
    cv2对图像进行旋转和放缩变换
    spring security 允许 iframe 嵌套
    Java+protobuf 实例
    Java处理文件小例子--获取全国所有城市的坐标
    Java 多线程并发 Future+callable 实例
    Java 执行jar linux 实例
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/7341906.html
Copyright © 2011-2022 走看看