一、变量
概念:计算机中的一块内存空间,数据的基本存储单位 组成:数据类型 变量名 = 值; 定义: I.声名:数据类型 变量名 II.初始化:变量名 = 值; 其他定义方式: I.声名的同时初始化:数据类型 变量名 = 值; II.同时声名多个相同数据类型的变量:数据类型 变量名1,变量名2,变量名3;
二、数据类型
基本数据类型(原始数据类型\简单数据类型) 共8种 I.整数类型 4种
关键字 大小 范围 byte 1B -128~127 short 2B -32768~32767 int 4B -2147483648~2147483647 long 8B -9223372036854775808~9223372036854775807(-922京 ~ 922京-1)
注:
1. 字节(Byte简称B)= 8 位 (bite简称 b)
2. 字面值:定义中可以给变量赋值
3. long 字面值后面需要加L或 l
浮点数类型(小数)2种
关键字 精度 大小 float 单精度 4B double 双精度 8B
注:
1. float 字面值后面可以加F或f
2. double 字面值后面可以加D或d,也可以不加
3. float 和double 都可以用科学计数法的形式存储(底层是近似值存储)
字符类型 1种
字面值
I.用单引号(英文)引起来的一个字符
char x = 'A';
char y = '中';
II.以整数形似进行存储(0~65535):
char z = 65;
char k = 29233;
III.用unicode形式存储:
char i = '\u41';
布尔类型: 1种
关键字 大小 字面值 boolean 4B true\false
注:Java的布尔类型和 0/1没有任何关系
转义字符:
\t: 水平跳格(制表符)
\n: 换行
\\: 反斜杠
\': 单引号
\": 双引号
引用数据类型(对象数据类型) I.类、数组、接口、集合等都是引用类型 II.以String(字符串)为例: 字面值:用双引号引起来的一个或多个字符 例: String name = " HelloWorld ";
三、类型转换
数据类型的自动提升 I.当小数据类型的变量赋值给大数据类型的变量时,发生自动类型提升(从数据类型的表示范围来判断数据类型的大小关系) II.规则:
byte
short
int
long
float
double
char
int
long
float
double
强制类型转换
I.场景:当大数据类型的变量赋值给小数据类型的变量时,需要强制类型转换 II.语法: 大数据类型 大数据类型的变量名 = 值; 小数据类型 变量名 = (小数据类型)大数据类型的变量名; III.强制转换的结果: a:浮点数类型强转为整数类型,则直接截取整数部分(丢失精度) double x = 12.7; int y = (int) x; b:大数据类型的整数变量给小数据类型的整数变量赋值,数据合理,则不损失任何内容 int x = 12; byte y = (byte) x; c:大数据类型的整数变量给小数据类型的整数变量赋值,数据不合理,将字节截取 int x = 257; byte y = (byte) x; //输出结果为1
四、表达式
概念:由变量、字面值、运算符等组成一个式子,通常会产生一个结果 当两个数值或变量参与运算时,如果参与运算的两个变量或数据类型不一致,运算过程种,会发生类型转换,转换规律如下:
a:有double,结果类型为double b:没有double前提下,有float,结果类型为float c:没有double\float,有long,结果类型为long d:其余情况均为int类型
五、运算符
1. 算术运算符
+ 、- 、* 、/ 、% (取模/ 取余数)
注: + 两端如果是字符串,则+ 表示字符串之间的连接
如果+ 两端有一个是字符串,则结果自动提升为字符串类型
2. 赋值运算符: = 、+= 、-= 、/= 、%=
注: += 没有自动类型提升
3. 关系运算符: > 、>= 、< 、<= 、== 、!=
表达式的结果类型为布尔类型,这类表达式被称为布尔表达式
注:用关系运算符连接的表达式都是布尔表达式,关系成立true , 反之为false
4. 一元运算符: ++ (自增) -- (自减)
5. 逻辑运算符:
&& :逻辑与,两个条件都为true ,则结果为true (短路运算符)
|| :逻辑或,两个条件有一个为true ,则结果为true (短路运算符)
& :逻辑与,两个条件都为true ,则结果为true (非短路运算符)
| :逻辑或,两个条件有一个为true ,则结果为true (非短路运算符)
! :逻辑非,对结果取反
注:短路运算符与非短路运算符的区别
短路运算符只能用于逻辑表达式内,非短路运算符可用于位表达式内和逻辑表达式内。也可以说:短路运算符只能操作布尔类型的,非短路运算符既可以操作布尔类型,也可以操作数值类型
6. 条件运算符(三元运算符)
I. 语法: 布尔表达式 ? 表达式1 : 表达式2 ;
System. out. println ( 0 < 1 ? "Yes" : "No" ) ; 结果:Yes
II. 原理:如果布尔表达式的结果位true ,则执行表达式1 ,否则执行表达式2