什么是Java基础数据类型?
我想很多人对于Java基本数据类型都是处于够应用的层面,但什么是Java基础数据类型的定义我想很多人都没有仔细了解。
大家可以想象一下,new 是将对象存放在“堆”里的,所以我们如果每次都用new去创建一个对象,特别是小的简单的变量,往往不是很有效,甚至可以说是大材小用。
那么对于这些类型,我们不用new来创建变量,而是创建一个并非是引用的“自动”变量。这个变量直接存储“值”,并置于堆栈中,这样更加的高效!
那么这些被特殊对待的值,就是基本数据类型。
Java 的基础数据类型有以下几种
数据类型 | 名称 | 大 小 | 最大值 | 最小值 | 包装类容器 |
---|---|---|---|---|---|
boolean | 布尔类型 | - | - | - | Boolean |
char | 字符型 | 16-bit | Unicode 0 | Unicode216-1 | Character |
byte | 比特 | 8-bit | -128 | 127 | Byte |
short | 短整型 | 16-bit | -215 | + 215-1 | Short |
int | 整型 | 32-bit | -231 | + 231-1 | Integer |
long | 长整形型 | 64-bit | - 263 | + 263-1 | Long |
float | 浮点型 | 32-bit | IEEE754 | IEEE754 | Float |
double | 双精度浮点型 | 64-bit | IEEE754 | IEEE754 | Double |
Java基础数据类型与C语言基础数据类型的区别是什么?
boolean在C语言中是可以与整型转换。而在Java中不可以,只能为true或false。
C语言:
Java:
char类型在C语言中是以ASCALL码进行存储的;而Java是以Unicode进行存储,所以Java的char类型可以存放更多元的数据。
并且,C语言中,char类型为1个字节,Java中为2个字节
整型(整型,短整型,长整型)
在C语言中 短整型 为4个字节,Java中 为2个字节;
C语言中 长整形 为4个字节,Java中为8个字节;
Java没有长长整型(longlong);
(小知识:整型中是可以存放字符类型的值,但输出为该字符所对应的编码,因此给int short long赋值为 ‘字符’ 时,并 不报错。)
浮点型数据(单精度浮点型,双精度浮点型)
在C语言中float类型初始化时不需要加f,Java 中float初始化时,在数据后必须加f;
高精度向低精度转换时:
C语言会丢失精度,但不报错, Java直接报错,无法编译。
C语言:
Java:
初始值问题
C语言中,定义基础数据类型后,必须先赋值,才能输出;
Java 中,局部变量如果不赋值,那就会自动赋为默认值;(但是,这些初始值对你的程序来说,可能是不正确的,甚至时不合法的。所以最好明确初始化。)全局变量,必须赋值,否则无法编译
以下为Java基本类型默认值
基本类型 | 默认值 |
---|---|
boolean | false |
char | ‘\u00000’(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
常量:
C语言用 #define 修饰
Java用 final 定义