Java 的基本数据类型(快速掌握)

一.整型

8种基本数据类型中,其中有4种整型,定义方法如下

int 变量名 = 初始值;  //基本语法格式
int num = 10; // 定义一个整型变量
System.out.println(num) ;

long 变量名 = 初始值;
long num = 10L; // 定义一个长整型变量, 长整型数值有一个后缀L或l.
System.out.println(num) ;

short 变量名 = 初始值;
short value = 0;
System.out.println(value);

byte 变量名 = 初始值;
byte value = 0;
System.out.println(value);

注意:

1.java中定义长整型变量的时候,需要加上后缀L或l 2.java中没有任何无符号(unsigned)形式的int,long,short或byte类型

错误 :

1.Java中每一种数据类型赋值时,不能超过其范围否则 会报错(例如,byte 不能赋值128,int不能赋值超过21亿) 2.当定义一个局部变量的时候,java并不会自动初始化,如果没有初始化,那么我们就不能使用这个变量.

二.浮点型

Java中float和double类型的内存布局遵守 IEEE 754标准(和C语言一样),尝试使用有限的内存空间表示可能无限的小数,势必会存在一定的精度误差.

double 变量名 = 初始值;
double num = 1.0;
System.out.println(num)

float 变量名 = 初始值;
float num = 1.0f; // 写作 1.0F 也可以
System.out.println(num);


//神奇代码
double num = 1.1;
System.out.println(num * num)
// 执行结果
1.2100000000000002

错误:

java中小数默认是双精度,定义float的时候需要加上后缀f或F,java是一种强类型语言,不允许将double直接赋值给float

三.char类型

char 变量名 = 初始值;
char ch = A;
char ch = 呵;
System.out.println(ch);

注意:

1. Java 中使用 单引号 + 单个字母 的形式表示字符字面值. 2. 计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文.

四.boolean类型

boolean 变量名 = 初始值;
boolean value = true;
System.out.println(value);

注意:

1. boolean 类型的变量只有两种取值, true 表示真, false 表示假. 2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法. 3. boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定

补充:

java中也存在整型提升和类型转换,这里就不作详细讨论,简单写出几个代码;

类型转换:

1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型. 2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失. 3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查;(参照整型的错误总结)

整型提升:

//int和long的混合运算
int a = 10;
long b = 20;
int c = a + b; // 编译出错, 提示将 long 转成 int 会丢失精度
long d = a + b; // 编译通过


//byte 和 byte 的运算
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);
// 编译报错
Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失
byte c = a + b;
^
//正确写法
byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
System.out.println(c);

1. 不同类型的数据混合运算, 范围小的会提升成范围大的. 2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.

经验分享 程序员 微信小程序 职场和发展