Java 基本数据类型和对象类型
2011-09-07 22:48
369 查看
基本数据类型在栈中进行分配,而对象类型在堆中进行分配。
所有方法的参数都是在传递引用而非本身的值(基本类型例外)。
对象之间的赋值只是传递引用,基本类型之间的赋值是创建新的拷贝。
例如: String a = "china";
String b =a; 则a、b都指向常量池的"china"。
String a = new String("china");
String b =a; 则a、b都指向堆中的"china"。
String a = new String("china");
String b =a;
a = a.substring(0,1);
则b指向栈中的"china",a指向新的对象"c"。
对于基本类型,“==”和“!=”是在比较值。而对于对象来说,“==”和“!=”是在比较两个引用是否相同。
使用equals()方法有一点需要注意:equals()方法的默认行为是比较引用。如果是你自己写的类,你应该为它重写equals()来比较对象的内容。大多数Java类库都实现了比较对象内容的equals()方法。
字符串操作符的特性:如果表达式以一个字符串起头,那么后面的操作数都会被自动转换为字符串型。所以有时候看到一个空的String后面+一个基本类型变量,这是一种简单执行字符串转换的方式。
所有方法的参数都是在传递引用而非本身的值(基本类型例外)。
对象之间的赋值只是传递引用,基本类型之间的赋值是创建新的拷贝。
例如: String a = "china";
String b =a; 则a、b都指向常量池的"china"。
String a = new String("china");
String b =a; 则a、b都指向堆中的"china"。
String a = new String("china");
String b =a;
a = a.substring(0,1);
则b指向栈中的"china",a指向新的对象"c"。
对于基本类型,“==”和“!=”是在比较值。而对于对象来说,“==”和“!=”是在比较两个引用是否相同。
使用equals()方法有一点需要注意:equals()方法的默认行为是比较引用。如果是你自己写的类,你应该为它重写equals()来比较对象的内容。大多数Java类库都实现了比较对象内容的equals()方法。
字符串操作符的特性:如果表达式以一个字符串起头,那么后面的操作数都会被自动转换为字符串型。所以有时候看到一个空的String后面+一个基本类型变量,这是一种简单执行字符串转换的方式。
相关文章推荐
- Java学习--基本数据类型对象Integer的新特性
- Java---24---基本数据类型对象包装类
- Java基础——对象序列化+管道流+RandomAccessFile+操作基本数据类型的DataStream等
- Java(01)-基本数据类型,面对对象,关键字,重写与重载,异常体系
- JAVA--基本数据类型的封装对象
- JAVA面向对象-----值交换(基本数据类型 数组类型 对象的值 字符串的)
- java基本数据类型对象包装类总结
- String类,StringBuffer和基本数据类型对象包装类(java基础)
- 【JAVA学习】java基本数据类型与字符串之间的转换(基本数据类型、对象封装类、自动装箱、自动拆箱)
- java 对象类型与基本数据类型传参的比较
- Java的IO操作(二) - 带缓冲区的流对象、写入基本数据类型、实现命令行中的copy命令
- Java---24---基本数据类型对象包装类
- Java基本数据类型对象包装类
- 黑马程序员——Java基础——对象序列化、管道流、RandomAccessFile类、操作基本数据类型的流对象、字符编码
- 面向对象的程序设计Java-基本数据类型
- Java——基本数据类型对象包装类
- (十二)Java入门--基本数据类型对象包装类
- 黑马程序员——Java基础:String类、StringBuffer、基本数据类型对象包装类
- Java中,一切皆是对象!为何数据类型中还分为:基本类型和对象?
- java和C++互调----(传递基本数据类型和对象)