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。
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.4基本类型与运算(4.4.1)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.4基本类型与运算(4.4.2-4.4.4)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.4基本类型与运算(4.4.5-4.4.10)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.8 Java平台与内存管理(4.8.1-4.8.3)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.5字符串与数组(4.5.1-4.5.3)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.1)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.3关键字(4.3.1-4.3.3)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.9容器(4.9.1-4.9.3)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.10多线程(4.10.1-4.10.4)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.8 Java平台与内存管理(4.8.4-4.8.6)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.5字符串与数组(4.5.4-4.5.6)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.2)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.3)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.6-4.1.7)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.8-4.1.9)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.10)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.13)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.2面向对象技术(4.2.6)
- linux线程为什么也称为轻量级进程
- 坑_Unity中导入自建DLL报错:Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in
- 数据库,查询语句
- Spring IoC(1) ---XML方式
- 如何使用万能地图下载器下载矢量路网
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.4基本类型与运算(4.4.1)
- Android多进程IPC机制——binder原理探索
- Android MediaPlayer的简单使用(二)
- 线程死锁
- Codeforces 313D Ilya and Roads 题解
- 中断线程
- 前后端性能优化
- Codeforces
- 查找深层次的子节点