黑马程序员技术交流社区

标题: 就是不懂 [打印本页]

作者: vipzh    时间: 2012-12-4 12:12
标题: 就是不懂
String str=new String ("abc");
User user=new User();
这两种怎么理解,就是说java的引用数据类型怎么理解
作者: 杨永胜    时间: 2012-12-4 12:42
Java中的数据类型分为:基本类型和引用类型,基本类型分为数值类型和布尔类型,数值类型分为整数类型和浮点类型,整数类型分为byte,short,int,long,char,浮点类型分为float与double类型,引用类型包括数组类型,接口类型,类类型;引用类型是在堆内存开辟的空间存放数据,在栈内存存在的只是对这个空间的引用
作者: 睡中忘了的睡    时间: 2012-12-4 12:48
User user=new User();创建一个名叫user的User类对象,       
String str=new String ("abc");创建一个名叫str内容为abc的字符串对象。

基本数据类型和引用数据类型
java的8种基本类型:
byte,short, char, int, long,float,double,boolean.
与此对应的,java提供了8种包装类型:
Byte,Short,Character,Integer,Long,Float,Double,Boolean.
所谓引用,就是指针了,就是说对象指向的不是数据本身,而是它所在的内存地址.
数组就是引用类型!
一般在传参的时候用的最多。
作者: xjandrew    时间: 2012-12-4 12:56
本帖最后由 xjandrew 于 2012-12-4 13:27 编辑

实际上就是虚拟机在栈中产生了类类型变量str跟user,在堆中新建了区域new User()和 new String("abc")的实例,然后实例的地址赋给栈中的变量,实际上就是变量指向了实例
如图,左为栈,右边为堆





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2