变量概念

变量相当于内存中一个数据存储空间的表示,通过变量名我们可以访问内存中存储的数据

变量定义

1
2
int a; // 声明变量
a = 10; // 变量赋值

1
int a = 10; // 定义变量

变量注意事项

  1. 变量表示内存中的一个存储区域,不同类型的变量在内存中占用的内存空间大小不同
  2. 变量的三要素,缺一不可:类型、名称、值
  3. 变量的数据可以在同一类型范围不断变化
  4. 变量必须先声明、后使用
  5. 同一个作用域内变量名不能重名,但不同作用域允许有相同变量名存在
  6. 基本数据类型需要赋值后才能使用

数据类型

每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间

image-20220719121908369

整数类型

byte[字节]

范围:-27~27-1

short[短整型]

范围:-215~215-1

int[整型]

范围:-231~231-1

long[长整型]

范围:-263~263-1

值得一提的是:BigInt类可以存放更大位数的整数

细节

  1. java整数类型有固定的范围和字段长度,不受操作系统的影响,来保证java程序的可移植性

  2. java默认整数常量为int型,声明long型要加’l’或’L’

  3. 1byte=8bit,byte是计算机中基本存储单元,bit是计算机中最小存储单位

浮点类型

float[单精度]

范围:-3.403E38~3.403E38

double[双精度]

范围:-1.798E308~1.798e308

细节

  1. java浮点类型有固定的范围和字段长度,不受操作系统的影响,来保证java程序的可移植性

  2. 浮点数在机器中存放形式:浮点数=符号位+指数位+尾数位,对于尾数位,精度可能丢失,小数都是近似值

  3. java默认浮点常量为double型,声明为float型,需要加’f’或’F’

  4. 浮点型常量有两种表示形式

    1. 十进制数,如5.12,512.0f ,.512
    2. 科学计数法,如:512e2, 5.12e-2

字符类型

字符类型char’可以表示单个字符,可以存放汉字

细节

  1. 字符常量是用''括起来的单个字符

  2. 在java中,char的本质是一个整数,对应该字符的unicode码,可以用int强制转换输出字符对应的编码

  3. char类型可以进行运算,因为都对应有UniCode码,即按UniCode码运算

  4. UniCode编码兼容AcsII码

布尔类型

概念

布尔类型boolean只有两个值:true和false

细节

不可以用0或非0代替false和true,这点和c语言不同

类型转换

自动类型转换

概念

当java程序在进行赋值或者运算时,容量小的类型可以自动转换成容量大的数据类型

数据类型按精度大小排序

两条线:

  1. char < int < long < float < double
  2. byte <short < int < long < float < double

细节

  1. 当有多种类型的数据混合运算时,系统首先将所有的数据转换成容量最大的那种数据类型,然后再开始运算
  2. 自动类型转换只发生在容量小的数据类型转换成容量大的数据类型之中
  3. (byte,short)和char之间不会发生相互自动转换,boolean不参与自动类型转换
  4. byte、short和char在进行运算时,当做int类型处理

强制类型转换

概念

为自动类型转换的逆过程,将容量大的数据类型转换成容量小的数据类型

使用

使用时需要加上强制转换运算符

1
2
3
int a = 10;
double b = 11;
a = (int)b; //强制类型转换

细节

  1. 强转运算符()只针对最近的操作数有效,往往使用小括号提升优先级
  2. char类型可以保存int类型的常量值,但不能保存int的变量值

String字符串和基本数据类型转换

基本数据类型转String字符串

将基本数据类型转字符串可以做字符串拼接处理

1
2
int n1 = 100;
String str = n1 + ""; // int转String,其他的类推

也可以通过包装类的toString方法

1
2
3
int n1 = 10;
Integer n2 = n1; // int转Integer
String str = n2.toString(); // Integer转String

String转基本数据类型

String转char

通过String类的charAt方法截取String中的字符

1
2
String str = "hello,world";
char c = str.charAt(3); // 截取String中的字符
String转其他基本数据类型

通过基本数据类型中的包装类调用parseXX方法

1
2
String str = "12345";
int num = Integer.parseInt(str); // int转String