1.数据类型装换
当数据类型不一样时,将会发生数据类型装换
1.1自动类型转换(隐式)
定义:将取值范围小的类型自动提升为取值范围大的类型
byte-->short-->char-->int-->long-->float-->double
特点:代码不需要进行特殊处理,自动完成
规则:数据范围从小到大。
注意:当 char byte short 之间做运算时,默认结果为 int 类型
例: 左边是long类型,右边默认的int类型,左右不一样
一个=代表赋值,将右侧的int常量赋值给左侧的long变量进行存储
int-->long,符合数据范围从小到大的要求,这一行代码发生了自动类型转换
long num1 = 100;
1.2强制类型转换(显式)
定义:将取值范围打的类型强制转换成取值范围小的类型
特点:代码需要进行特殊处理,不能自动完成
格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围打的数据;
例: 左边是int类型,右边是long类型,左右不一样
long-->int,不是从小到大,不能发生自动转换!
格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围打的数据
int num = (int) 100L;
1.3注意事项:
强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出
byte、short、char 三种类型在运算时,都会被首先提升成为int类型,然后再计算
boolean类型不能发生数据类型转换
byte f = 20+40;//这是强制类型转换,编译器给我们自动加上了
1.4ASCII码
记录了数字跟字符的对照关系表(编码表);
ASCII码:American Standard Code for Information Interchange,美国信息交换标准代码
'A' 65;'a' 97;'0' 48;
Unicode码表:万国码。也是数字和符号的对照关系,
2.运算符
2.1算数运算符和四则运算
运算符定义:进行特定操作的符号,例如:+
表达式:用运算符连起来的式子叫做表达式,例如:20+2;
四则运算:加:+;减:-;乘:*;除:/,取整
首先计算得到表达式的结果,而后再打印输出结果
取模(取余数):%,只对于整数的除法来说,取模运算符才会有余数的意义
注意事项:一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种
2.1.1加号运算符常见的三种用法
1.对于数值来说,就是加法
2.对于char类型来说,在计算之前,char会被提升为int,然后再计算
3.对于字符串(String)来说,加号代表字符串连接操作,
任何数据类型跟字符串进行连接的时候,结果都会变成字符串
2.2自增自减运算符
自增运算符:++
自减运算符:--
基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1.
使用格式:写在变量名之前,或写在变量名之后,例:++a,a++;
使用方式:单独使用:不和其他任何操作混合,自己独立成为一个步骤
混合使用:和其他操作混合,例:与赋值混合,或者与打印操作混合等
使用区别:
1.单独使用的时候, 前++和后++没有任何区别。也就是前++与后++,是完全一样的
2.在混合的时候,有【重大区别】
A.如果是【前++】,那么变量【立马+1 】,然后拿着结果进行使用, 【先加后用】
B.如果是【后++】,那么首先先使用变量本来的数值,【然后变量+1 】 ,【先用后加】
注意事项:只有变量才能使用自增自减运算符,常量不可发生改变,不可以使用。
2.2赋值运算符
基本赋值运算符:就是一个等号"=",代表将右侧的数据赋值给左侧的变量
例如:int a = 10;
复合赋值运算符:
+= a += 1;相当于 a = a + 1;
-= b -= 2;相当于 b = b - 2;
*= c *= 3;相当于 c = c * 3;
/= d /= 4;相当于 d = d / 4;
%= e %= 5;相当于 e = e % 5;
注意事项:只有变量才能使用赋值运算符,常量不能赋值。
复合赋值运算符其中隐含了一个强制类型转换。
2.3比较运算符
<: 小于
>: 大于
<=: 小于等于
>=: 大于等于
==: 等于
!=: 不等于
注意事项:比较运算符的结果一定是一个boolean值,成立是true,不成立是false
如果进行多次判断,不能连着写,比如我们数学中的【1 < 2 < 3 】 在java中这是错误的写法
2.4逻辑运算符
逻辑与(并且):&& 全都是true,才是true,否则就是false
逻辑或(或者):|| 至少一个是true,就是true,全都是false,才是false
逻辑非(取反):! 本来是true,变成false,本来是false,变成true
与“&&”,或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。
注意事项: 逻辑运算符只能用于boolean值
与、或需要左右各自有一个boolean值,但是取反只要有唯一的一个boolean值即可
与、或两种运算符,有多个条件,可以连续写
2.5三元运算符
需要三个数据才可以进行操作的运算符
格式:数据类型 变量名称 = 条件判断?表达式A:表达式B;
流程:首先判断条件是否成立:
如果成立为true,那么将表达式A的赋值交给左侧的变量;
如果不成立为false,那么将表达式B的赋值交给左侧的变量;
二者选其一
注意事项:必须同时保证表达式A和表达式B都符合左侧数据类型的要求
三元运算符的结果必须被使用
2.6方法入门
定义:将一段【功能】抽取出来,放在{}里,形成一个【单独的功能】。
好处:提高了代码的阅读性,使代码更简洁,
即实现了代码的复用性,也解决了代码冗余的现象
定义格式:
修饰符 返回值类型 方法名(参数列表){
代码...
return ;
}
解释:修饰符,目前固定写法public static。
返回值类型,目前固定写法void。
方法名,为我们定义的方法起名,满足标识符的规范,用来条用方法
参数列表,目前无参数
return,方法结束。因为返回值类型是void,方法{}内的return可以不写。
方法体:也就是大括号当中可以包含任意条语句;
注意事项: 方法定义的先后顺序无所谓
方法的定义不能产生嵌套包含关系
方法定义好之后,不会执行的,如果要执行,一定要进行方法的【调用】;
如何调用方法:
格式:方法名称();
2.7Jshell
JShell脚本工具是JDK9的特性
简单的脚本工具,当我们编写的代码非常少的时候,而又不愿意编写类、main方法,
也不愿意去编译和运行时,可是使用JShell工具。
|
|