Java语言入门教程(四):Java语言中的数据类型及String类 - 编程入门网
Java语言入门教程(四):Java语言中的数据类型及String类时间:2011-04-03 taomoon719Java类中的主要组成部分就是数据成员和方法成员。而数据成员的声明必须指定其数 据类型,方法成员的声明也必须指定其返回值类型,如果方法有形式参数,也必须指定其 参数类型。因此,对于初学者来说,了解Java语言的数据类型是非常必要的。 Java语言中的数据类型可以分为两大类,即基本数据类型(也有人称为原始类型)和 引用类型(也有人称类类型,对象类型等)。Java语言是面向对象的语言,大多数数据都 是引用类型,基本类型主要为了进行数学运算。下面对这两种类型分别进行介绍。 1.基本数据类型: Java中的基本数据类型分4大类 整型:byte,short,int,long 浮点型:float,double 字符型:char 逻辑型(也称布尔型):boolean(true、false) 值得一题的是,Java中的基本数据类型的数据长度是跨平台的,不会因为运行的平台 不同而不同。 另外需要注意的是,整型默认以32位的int存储,浮点型默认以64位的double存储。如 下面例子:
出现错误的一行,主要就是因为数据类型转换引起。1.0是浮点型,默认以64位的 double存储,而程序中将1.0声明位32位的float,就会出现编译错误。基本原则是高精度 的数不能直接赋值给低精度的数。修改如下: float f=(float) 1.0; 称为强制类型转换。 2.引用类型: 可以说,除了基本数据类型以外的数据,都是引用类型。也可以说,引用类型就是对 象,或者对象都是引用类型。很多人会有一个疑问,字符串算什么类型?让我们看看,在 基本类型的8个类别中,没有字符串,那么可以肯定的说,字符串是引用类型。但是接下 来的疑问就是,引用类型都是对象,对象不都是用new创建出来的么?为什么我们常常看 到如下语句: String s=”Hello World”; 其实,在所有的类中,包括我们自己创建的类,以及API中已有的类,只有String这个 类比较特殊,可以直接使用=进行赋值,不用使用new关键字。但是String既然是对象,也 可使用new创建,如: String s=new String(“Hello World”); Java语言入门教程(四):Java语言中的数据类型及String类(2)时间:2011-04-03 taomoon719那么这两种声明方式,有何不同?如果使用new关键字创建,那么每次创建,都是在内 存空间初始化一个新的字符串对象,而如果使用=创建,并不会每次都初始化一个新的。 而是会看一下实例池中是否有字符序列相同的字符串,如果有,就将引用指向该空间,如 果没有,才初始化,如下:
其中假设s1赋值时,在实例池中没有找到abc字符串,那么s1就被初始化到内存中。但 是创建s2时,由于已经有了一个用=号创建的abc了,将不会创建新的对象,而是将s2也 指向跟s1相同的空间,共享s1的abc。而s3,s4由于是使用new创建的,所以都会新创建对 象,在内存中初始化新的abc字符串。 String类有这样的特性,源于String类另一个特征:String对象是不可变的。也就是 说,不管通过哪个方式初始化到内存中的字符串,都是不能被修改的。如: String s=”abc”; s=”def”; 当s被重新赋值时,并不是修改了abc,而是会新开辟内存空间,初始化新的字符串def 。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |