Java基础笔记——变量和基本数据类型

224 阅读3分钟

Java变量和基本数据类型

1.变量

变量顾名思义就是在程序运行时可以随时改变大小的量,Java中使用变量临时存储各种类型的数据,变量是程序中最基本的存储单元。

简而言之,当创建变量时,内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

在方法体外,类体内部声明的变量称之为成员变量

在方法体内部声明的变量称之为局部变量

二者在初始化值方面的异同:

相同点:都有相同的生命周期 不同点:局部变量除了形参外需显式初始化

2.基本数据类型

当我们创建变量时,首先要声明变量,声明的过程就是告诉内存管理系统我们建立的变量是什么数据类型(数据类型是为了方便给临时变量分配不同空间),并且为其分配相应的内存空间

基本数据类型大概可以分为如下四种类型

2.1整型

Java整型常量默认为int型,当需要声明long型常量需加'L'或'l'

2.2浮点型

Java浮点型常量默认为double型,当需要声明float型常量需加'F'或'f'

2.3字符型char

char型数据表示通常意义上的字符(2字节)

2.4布尔类型

boolean类型的取值只允许true和false,这点和C语言不同

Java虚拟机中没有任何提供boolean值专用的字节码指令,Java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示

3.基本数据类型转换

自动类型转换:在多种类型数据混合运算时,系统首先自动将所有的数据转换成容量最大的数据类型,然后在进行计算

  • byte,short,char之间不会相互转换,他们三者在计算时首先转换为int型
  • boolean类型不能与任何其他数据类型运算
  • 任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值会自动转化成字符串(String)类型
  • 小误区测试:连接指的是 字符串与任何数据类型连接,此数据类型就会自动转换为字符串 下面是一个StringTest:
String str ="args";
System.out.println(10+10+str);//20args
System.out.println(str+10+10);//args1010
System.out.println('a'+1+"Hello");//98Hello
System.out.println("Hello"+'a'+1);//Helloa1

强制类型转换:也称作显示类型转换

本质上是自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时加上强制转换符:(),可能会造成精度降低或溢出

int a = 123456789;
byte b = (byte)a; //进行强制类型转换,b=21,因为发生溢出。
int c = 1;
byte d = (byte)c;//进行强制类型转换,d=1,没有发生溢出。

有三个注意点:

  • boolean无法转换成其他数据类型;

  • char的字符被转成int,变成对应的ASCII值;

  • 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入;

这里不多讲引用数据类型,后续会更新ASCII和Unicode