一、变量
1. 概念:计算中一块内存空间,存储数据的基本单元/单位 2. 变量的组成部分:数据类型 变量名字 数据 3. 语法: (1) 先声明,再赋值 数据类型 变量名(变量的声明) 变量名 = 数据 (赋值) (2) 声明的同时赋值: 数据类型 变量名 = 数据 (3) 同时定义多个同类型的变量: 数据类型 变量名1,变量名2,变量名3=值,变量名4;
二、Java中的数据类型
注意:java是一种强类型的语言,对应类型的数据必须存储在对应类型的变量中
1. 基本数据类型(原始数据类型、简单数据类型)
B(Byte 字节) 1B = 8b (bit,位)
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
(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,也可以不加
注意:float和 double采用 科学计数法的形式进行存储
(3) 字符类型
a. char 2B
b. 字面值形式:
i 使用 单引号的形式直接赋值
如:
char c1='A';
char c2 = '中';
ii 采用整数形式进行存储,范围 0~65535
如:
char c = 65; // A
char c2 = 29233 ; // '爱'
(4) 布尔类型:
boolean :字面值,true/false
true:代表关系成立
false:代表关系不成立
注:
float(4B) 和 long(8B)相比谁的存储数据范围更大?
float,因为float采用科学计数法的形式进行存储。
2. 对象数据类型/引用数据类型
(1) 类、数组、集合、接口等都属性对象类型
(2) 以字符串为例:
a. 字面值:使用双引号 引起来 的一个或是多个字符
b. String str = "中国"
小结:
整数常用 int
小数常用 double
布尔类型:常用于 分支结构,循环结构中的判断
字符串:经常用,String
三、类型转换
1. 自动类型提升
(1) 场景:将小数据类型 赋值给大数据类型(存储的数据类型范围越大就是大数据类型)
(2) 自动类型提升规则:
byte->short->int->long->float->double
char -> int -> long -> float ->double
2. 强制类型转换
(1) 场景:将大数据类型 赋值 给小数据类型,需要使用强制类型转换
(2) 语法:
源数据类型 变量名 = 值;
大数据类型
目标类型 变量名 = (目标类型)变量名;
小数据类型
四、表达式
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) 字符串拼接:+两端只要有一端为字符串,则为字符串的拼接
3. 比较运算符(关系运算符)
> :大于
>= :大于等于
< :小于
<= :小于等于
== :等于
!= :不等于
注意:被关系运算符连接的表达式称为布尔表达式,关系成立-true,关系不成立-false,结果类型 为布尔类型
4. 逻辑运算符:
&&:逻辑与,并且,两端连接的必须都为布尔表达式,两端同时为true,结果才为true。
||:逻辑或,或者,两端连接的必须都为布尔表达式,只要有一端为true,结果就为true
!:逻辑非,在结果上进行取反
5. 一元运算符
++(自增) --(自减)
开发应用如下:
a++ 或是 ++a :让a变量自身加1
a-- 或是 --a :让a变量自身减1
以下内容常用于开发面试或是考试:
6. 三元运算符
(1) 语法:
布尔表达式?表达式1:表达式2
(2) 原理:判断布尔表达式结果是否成立,成立——true,则执行表达式1;否则执行表达式2
六、扫描议
(Scanner)
1. 作用:实现人机交互
2. 使用步骤:
(1) 导包:import 包名1.包名2.类名;//导入某一个类
import 包名1.包名2.*;//导入包中所有类
注意:定义在pacakge语句的后面,所有类的上面
一个源文件中可以定义多行import语句
import java.util.Scanner;
(2) 创建Scanner对象:
Scanner sc = new Scanner(System.in);
(3) 使用:
int n = sc.nextInt(); 输入一个整数
double s = sc.nextDouble(); 输入一个小数
String str = sc.next(); 输入一个字符串
char c = sc.next().charAt(0); 输入一个字符