Java基础笔记二
Java中的数据类型
定义
Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。
分类:

基本数据的类型:
| 类型 | 类型名称 | 关键词 | 占有内存 | 取值范围 | 默认值 |
|---|---|---|---|---|---|
| 整形 | 字节型 | byte | 1 | -255 | 0 |
| 短整型 | short | 2 | -32768~32767 | 0 | |
| 整型 | int | 4 | -231~231-1 | 0 | |
| 长整型 | long | 8 | -263~263-1 | 0L | |
| 浮点型 | 单精度浮点型 | float | 4 | -3.403E38~3.403E38 | 0.0F |
| 双精度浮点型 | double | 8 | -1.798E308~1.798E308 | 0.0(D) | |
| 字符型 | 字符型 | char | 2 | 0~65535 | '\u0000' |
| 布尔型 | 布尔型 | boolean | 1 | true或false | FALSE |
Java 变量类型
局部变量(Local Variables):局部变量是在方法、构造函数或块内部声明的变量,它们在声明的方法、构造函数或块执行结束后被销毁,局部变量在声明时需要初始化,否则会导致编译错误。
public void exampleMethod() {
int localVar = 10; // 局部变量
// ...
}
实例变量(Instance Variables):实例变量是在类中声明,但在方法、构造函数或块之外,它们属于类的实例,每个类的实例都有自己的副本,如果不明确初始化,实例变量会被赋予默认值(数值类型为0,boolean类型为false,对象引用类型为null)。
public class ExampleClass {
int instanceVar; // 实例变量
}
静态变量或类变量(Class Variables):类变量是在类中用 static 关键字声明的变量,它们属于类而不是实例,所有该类的实例共享同一个类变量的值,类变量在类加载时被初始化,而且只初始化一次。
public class ExampleClass {
static int classVar; // 类变量
}
参数变量(Parameters):参数是方法或构造函数声明中的变量,用于接收调用该方法或构造函数时传递的值,参数变量的作用域只限于方法内部。
public void exampleMethod(int parameterVar) {
// 参数变量
// ...
}
易错问题总结
short s1 = 1; s1 = s1 + 1;//有错吗?
错误,由于 1 是 int 类型,因此 s1+1 运算结果也是 int型,需要强制转换类型才能赋值给 short 型。short s1 = 1; s1 += 1;//有错吗?
可以正确编译,因为 s1+= 1;相当于 s1 = (short(s1 + 1);+=中有隐含的强制类型转换。
例如:
![]() |
![]() |
3. int 和 Integer 有什么区别
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
4. 自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
-
不能对boolean类型进行类型转换。
-
不能把对象类型转换成不相关类的对象。
-
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
转换过程中可能导致溢出或损失精度,例如:
int i =128;
byte b = (byte)i;
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。 -
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
(int)23.7 == 23;
(int)-45.89f == -45
5. 常量和静态变量的区别
常量也是与类相关的,但它是用 final 关键字修饰的变量,一旦被赋值就不能再修改。与静态变量不同的是,常量在编译时就已经确定了它的值,而静态变量的值可以在运行时改变。另外,常量通常用于存储一些固定的值,如数学常数、配置信息等,而静态变量通常用于存储可变的数据,如计数器、全局状态等。

介绍Java中的基础数据类型


浙公网安备 33010602011771号