第二章:变量、数据类型、表达式、运算符
一.变量
1.概念:计算机中的一块内存空间,存储数据的基本单位
2.变量的组成部分:数据类型、变量名、数据
3.语法:
(1)先声明,再赋值
数据类型 变量名; int a;
变量名 = 数据; a = 5;
(2) 声明的同时赋值:
数据类型 变量名 = 值;
int b = 8;
(3)同时定义多个同类型的变量:
数据类型 变量名1,数据类型=值,数据类型;
二、数据类型
1. 基本数据类型(简单数据类型、原始数据类型)
B:字节,Byte 1B = 8b (bit → 位)
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
...
程序猿节日:10.24号
(1) 整数类型
byte 1B -128~127
short 2B -32768~32767
int 4B -2147483648~2147483647
long 8B -922京 ~922京-1
long的字面值后面需要加L/l(建议L,区分数字1)
(2) 小数类型
float:4B,单精度,字面值后面必须加F/f
double:8B,双精度,字面值后面可以D/D,也可不加
注意:java中的float和double可以采用科学计数法的形式进行存储:1.23456792E8
(3) 字符类型
char:2B,字面值形式如下:
a. 单引号引起来的一个字符:char c ='a';
b. 使用整数形式进行存储,范围:0~65535
c. 转义字符:
'\t':水平跳格,tab
'\n':换行
'\' ':直接打印 单引号
'\" ':直接打印 双引号
'\\ ':打印一个反斜杠
(4) 布尔类型
boolean:字面值为:true和 false
true代表关系成立,真
false:代表关系不成立,假
注意:区分 c语言中的 布尔类型!!!
思考:long-8B 和 float-4B哪一个 存储的数据范围大?
答:java中float可以采用科学计数法的形式进行存储,float存储的范围比 long范围更大。
2.对象数据类型/引用数据
(1) 类、接口、集合、数组等都为对象类型
(2) 以字符串为例讲解 对象类型:
a. String为字符串,对象类型
b. 字面值:以双引号引起来的一个或是多个字符
例: String str = "hello";
数据类型总结:实际应用
整数通常使用 : int
小数通常使用:double
字符:开发偶尔用
布尔类型通常用于判断:分支结构、循环结构等
字符串:开发经常使用
案例:写出存储以下数据使用的数据类型:
姓名:String name = "xxx";
年龄:int age;
性别:char sex= '女' ;
String sex = "女";
// int s = 1; // 1代表男;0代表女
成绩:double score = 99.5;
电话:String tel="17710131197";
身份证号码:String id =
"37082819980212204x";
三、数据类型之间的转换
1. 自动类型提升
(1) 场景:小数据类型 赋值给 大数据类型(存储数据的范围对应数据大小)
(2) 自动提升规则如下:
byte → short → int → long → float → double
char → int → long → float → double
2.强制类型转换
(1) 应用场景:大数据类型 赋值 给 小数据类型时,需要使用强制类型转换
(2) 语法:
源数据类型 变量名1 = 值;
目标数据类型 变量名2 = (目标数据类型)变量名1;
四、表达式
1. 理解:通常由字面值、变量、运算符组成式子,一般有一个结果
2. 表达式的结果类型规则如下:
(1) 表达式中有 double,则结果为 double
(2) 表达式中没有double,有float,则结果为float
(3) 表达式中没有double、float,有long,结果为long
(4) 其余情况,结果为 int
byte+byte byte+short short+short
byte+int short+int int+int
五、运算符
1. 算术运算符
+ - *(乘法) /(除法) %(取余数/取模)
Java中的+ 两种应用:
(1)加法运算:如果+两端都为数值类型,则为加法运算
(2) 字符串的拼接:只要+一端为字符串类型,则+就为字符串的拼接
注意:java中布尔类型不能参与 加法运算;但是可以参与字符串拼接
2. 赋值运算符
int a = 2;a+=1; // 结果上: a = a+1;a*=5; // a=a*5; 3*5 = 15a-=10 ; // a=a-10;System.out.println("a="+a); // 3
3. 比较运算符(关系运算符)
4. 逻辑运算符
5. 一元运算符
int c=a++; // 先使用再加 1int c=++a; // 先加 1 再使用
6. 三元运算符
布尔表达式 ? 表达式 1: 表达式 2
六、扫描议(Scanner)
import 包名 1. 包名 2.类名; // 导入 某一个import 包名 1. 包名 2.* ; // 导入包中所有类
Scanner sc = newScanner(System.in);
int n = sc.nextInt(); // 输入一个整数double s = sc.nextDouble(); // 输入 一个小数String str = sc.next(); // 输入一个 字符串char c = sc.next().charAt(0); // 输 入一个字符