Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.4基本类型与运算(4.4.1)

来源:互联网 发布:ubuntu netstat不存在 编辑:程序博客网 时间:2024/04/30 15:34

4.4.1 Java提供了哪些基本数据类型

Java语言一共提供了8中原始的数据类型(byte、short、int、long、float、double、char、boolean),这些数据类型不是对象,而是Java语言中不同于类的特殊类型,这些基本类型的数据变量在声明之后就会立刻在栈上分配内存空间。除了这8种基本的数据类型外,其他类型都是引用类型(例如类、接口、数组等),引用类型类似于C++中的指针的概念,它以特殊的方式指向对象实体,这类变量在声明时不会被分配内存空间,只是存储了一个内存地址而已。
以上这些基本类型可以分为如下四种类型:
1>int长度数据类型:byte(1 Byte),short(2 Byte),int(4 Byte),long(8 Byte)
2>float长度数据类型:float(4 Byte),double(8 Byte)
3>boolean类型变量的取值:true,false(1 Byte)
4>char数据类型:char(unicode字符,2 Byte)
Java语言还提供了对这些原始类型的分装类(Character,Integer等)。需要注意的是,Java中的数值类型都是有符号的,不存在无符号的数,它们的取值范围也是固定的,不会随着硬件环境或者操作系统的改变而改变。除了以上提到的8种基本数据类型外,在Java语言中,还存在另外一种基本类型void,它也有对应的封装类java.lang.void,只是无法直接对它进行操作而已。封装类型和原始类型有许多不同点:首先,原始数据类型在传递参数时都是按值传递,而封装类型是按引用传递的。其次,当封装类型和原始类型用作某个类的实例数据时,它们所指定的默认值不同。对象引用实例变量的默认值为null,而原始类型的实例变量的默认值与它们的类型有关(如int默认初始化为0),示例如下:

public class Test{    String s;    int i;    float f;    public static void main(String[] args){        Test t = new Test();        System.out.println(t.s == null);        System.out.println(t.i);        System.out.println(t.f);    }}

程序运行结果为:
true
0
0.0
除了以上需要注意的内容外,在Java语言中,默认声明的小数是double类型的,因此在对float类型的变量进行初始化时需要进行类型转换。float类型的变量有两种初始化方法:float f=1.0f或float f = (float) 1.0。与此类似的是,在Java语言中,直接写的整型数字是int类型的,如果在给数据类型为long的变量直接赋值时,int类型的值无法表示一个非常大的数字,因此在赋值时可以通过如下的方法来赋值:long l = 26012402244L。
引申:
Java中null不是一个合法的Object实例,所以编译器并没有为其分配内存,它仅仅用于表明该引用目前没有指向任何对象。其实,与C语言类似,null是将引用变量的值全部置为0。
在Java语言中,变量被分为两大类型,原始值(primitive)与引用值(reference)。声明为原始类型的变量,其存储的是实际的值。声明为引用类型的变量,存储的是实际对象的地址(指针,引用)。对于赋值语句String x = null,它定义了一个变量“x”,x存放的是String引用,此处为null。

阅读全文
0 0
原创粉丝点击