值传递和引用传递

来源:互联网 发布:临沂软件开发设计 编辑:程序博客网 时间:2024/06/05 22:39
--------------值传递和引用传递----------------


 八种基本的数据类型:int float double char long short  boolean byte
    
1.值传递:初始化在栈(在java虚拟机栈的局部变量表中,该位置还保存引用类型)
  基本数据类型,传递的是数据的拷贝;

2.引用传递:初始化在堆(注意引用类型是在栈)
   引用数据类型,传递的是传递的引用地址的拷贝,而不是该对象本身(即使对该对象的地址传递)

3.那些是值传递,哪些是引用传递
     基本数据类型,string,包装类型是值传递;
     引用类型,是引用传递

3.String类型:String的值是一个字符串常量,传值却是采用“值传递”的方式 。
   string类型:生成的是一个字符串常量,在常量池,而变量名同样看做是引用。当string的数据在常量池存在时就不会
创建新的对象,如string a="abc",string b="abc",那么只生成引用b,值是a的值
而string a = new String ("ccc");这里是两个对象,new string ,和“ccc”,一个引用a,ccc依旧是在常量池中创建或者查找

4. 对string stringbuffer stringbuild 区别:
  (1). 三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 
   (2).string 创建的是字符串常量(在constant pool)
       string buffer 和string builder是创建字符串变量
   (3)string buffer 是线程安全的,string builder是线程不安全的
原创粉丝点击