Java笔记04–字面量与变量
字面量
字面量(literal)用于表达源代码中一个固定值的表示法(notation),整数、浮点数以及字符串等等都是字面量。
字面量分类类型 | 说明 | 举例 |
---|---|---|
字符串字面量 | 用双引号括起来的内容 | “Hello World” |
整数字面量 | 不带小数的数字 | 666,-88 |
小数字面量 | 带小数的数字 | 13.14,-5.21 |
字符字面量 | 用单引号括起来的内容 | ‘A’,‘0’,‘我’ |
布尔字面量 | 布尔值,表示真假 | **只有两个值:true,**false |
变量
变量的定义格式
数据类型 变量名 = 变量值;
变量分类
-
全局变量
- 全局: 定义在****类中的变量,不在方法内,不在语句内,也不在代码块内
-
局部变量
- 局部: 定义在方法内或语句内或代码块内的变量
数据类型
分类
基本类型 8 种,byte short int long float double char boolean,必须赋值后使用
数据类型 | 占字节数 | 取值范围 | |
---|---|---|---|
byte | 1 | -128~127,-2的7次方到2的7次方-1 | |
short | 2 | -32768~32767,-2的15次方到2的15次方-1 | |
int【默认】 | 4 | -2的31次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
float | float | 3.402823e+38 ~ 1.401298e-45 | |
double【默认】 | 8 | 负数:-1.797693E+308到-4.9000000E-324正数:4.9000000E-324到1.797693E+308 | |
字符 | 2 | 采用Unicode编码,本质上是码int(0-65535) | |
布尔 | 1 | true or false |
字符类型 char的说明
- 占两个字节,使用单引号;可以存放数字,以数字表示的 ASCII 码输出;
char 的本质是一个整数int,默认输出时,是 Unicode 码对应的字符,输出数字用(int)进行类型转换。 - 因为其本质是int,所以在switch…case的中可以使用char类型作为case的表达式。
引用,即引用数据类型,如类,接口,数组;除去基本类型之外都是引用类型。
默认值
- 1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。
- 2、单精度浮点型(float)的基本类型变量的默认值为0.0f。
- 3、双精度浮点型(double)的基本类型变量的默认值为0.0d。
- 4、字符型(char)的基本类型变量的默认为 “/u0000”。
- 5、布尔性的基本类型变量的默认值为 false。
- 6、引用类型的变量是默认值为 null。
- 7、数组引用类型的变量的默认值为 null。 当数组变量的实例后,如果没有没有显示的为每个元素赋值,Java 就会把该数组的所有元素初始化为其相应类型的默认值。
数据类型的转换
基本数据类型从小到大依次为:
byte----short----int----long----float----double
整数直接量可以直接赋值给byte,short,char,但不能超出范围
整数直接量默认为int,浮点数直接量默认为double
自动类型转换
**在数据类型兼容的情况下,小类型转为大类型,**在转换的过程中,称之为是隐式转换,不需要做任何的操作。
总结,在Java中,当整数类型进行运算时,凡是比int类型的数据范围小的,都会自动提升为int类型(包含char类型); 当浮点类型进行运算时,凡是比double类型的数据范围小的,都会自动提升为double类型
强制类型转换
在数据类型兼容的情况下,大类型转为小类型,在转换的过程中,称之为是显式转换,也被称之为叫做强制转换,需要程序员添加对应的转换语法。
public class Transform {
public static void main(String[] args) {
System.out.println("---------------------分隔------------------------");
//(4) double 转 int
double num1 = 100;
// int = double
// 右侧转左侧,所以是 大转小 需强转
System.out.println(num1); // 浮点类型
// int num2 = (int)num1;
int num2 = (int) num1;
System.out.println(num2); // 整数类型
System.out.println("---------------------分隔------------------------");
//(5) int 转 char
// 右侧转左侧,所以是 大转小 需强转
int num3 = 99;
int num4 = 1;
char c9 = (char) (num3 + num4);
System.out.println(c9); // 整数类型
}
}
运算符
算术运算符
+(加)
-(减)
*(乘)
/(除)
%(取模/取余)
自增自减运算符++(自增)-- (自减)
①单独使用时,在前在后都一样
②被使用时,在前在后不一样
a++的值为a,++a的值为a+1
int a = 7;
int c = a++;//1.将7赋值给c 2.a自增1,变为8
//a++是a=>{b=a;a=a+1;return b;}
//++a是a=>{a=a+1;return a;}
关系运算符
单条件控制
大于>,小于<,>=大于等于,<=小于等于,==等于,!=不等于
逻辑运算符
多条件控制
&&短路与,见false为false,当第1个条件为false时,则发生短路,后面条件不执行了
||短路或,见true为true,当第1个条件为true时,则发生短路,后面条件不执行了
!非
逻辑运算的结果是boolean型
赋值运算符
1.简单赋值运算符:=
2.扩展赋值运算符:+=,-=,*=,/=,%=
扩展赋值运算符自带强制类型转换,如a += 10; => a = (type of a)(a+10);
字符串连接运算符
只要一边出现字符串,进行字符串连接;两边都是表达式,进行数学运算。
任何类型的数据与字符串连接,都会变为字符串类型。
条件运算符
又叫三目运算符,操作数为3.
语法:boolean?数1:数2
整个条件运算符是有值的,它的值要么是数1,要么是数2.