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时(存在缓存)才可以使用对象池。                    

  • 相关阅读:
    dotnetcharting 生成柱状图,饼图等统计图
    asp.net 前后台相互调用
    SQL基础和高级(语法格式)总结二
    自己动手JQuery插件开发
    SQL基础之创建数据库,表,架构
    SQL基础和高级(语法格式)总结一
    ado.net总结
    [Nescafé 26] 小猫爬山&&售货员的难题&&区间众数(随机化大法好)
    POJ2774 后缀自动机&后缀数组
    【方向学习】单片机
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/7341906.html
Copyright © 2011-2022 走看看