Java学习2
Java学习2
1、数据类型转换
当数据类型不一样时,将会发生数据转化。
自动类型转化(隐式)
-
特点:代码不需要进行特殊处理,自动完成。
-
规则:数据范围从小到大。
强制类型转化(显式)
-
特点:代码需要特殊的格式处理,不能自动完成。
-
格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据。
注意事项
-
强制类型转换一般不推荐使用,因为可能发生精度损失、数据溢出。
-
byte/short/char这三种类型都可以发生数学运算,例如加法“+”。
-
byte/short/char这三种类型在运算时,都会首先提升成为int类型,然后计算。
-
Boolean类型不能发生数据类型转换。
计算机的底层会用一个数字来表示字符;
一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为一个数字。
ASCII编码表
ASCII码表:American Standard Code for Information Interchange,美国信息交换标椎代码。
Unicode码表: 万国码。也是数字和符号的对照关系,开头0~127部分和ASCII完全一样,但从128开始包含有更多字符。
48—’0‘ 65—’A‘ 97—’a’
2、运算符
运算符:进行特定操作的符号。
表达式:用运算符连起来的式子叫做表达式。
算术运算符
算数运算符包括: | |
---|---|
+ | 加法运算,字符串连接运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算 |
% | 取模运算,两个数字相除取余数 |
++、– | 自增自减运算 |
Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。
-
两个常量之间可以进行数学运算。
-
两个变量之间可以进行数学运算。
-
常量和变量之间可以混合使用。
-
对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果仍然是整数。只看商,不看余数。
-
只有对于整数的除法来说,取模运算符才有余数的意义。
注意事项: 一旦运算当中有不同的数据类型,那么结果将会是数据类型范围大的那种。
四则运算当中的当中加号“+”有常见的三种用法:
-
对于数值来说,那就是加法。
-
对于字符char类型来说,在计算之前,char会被提升为int,然后再计算(char类型字符与int类型数字数字,之间的的对照关系表:ASCII、Unicode)
-
对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作,任何数据类型和字符串进行连接的时候,结果都会变成字符串。
自增自减运算符:
基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1。
使用格式:写在变量名称之前,或者写在变量名称之后。
使用方式:单独使用(不与其他步骤混合,自己独成一个步骤)、混合使用(与其他步骤混合)。
使用区别:如果是【前++】,变量立刻+1,然后拿着结果使用。 【先加后用】
如果是【后++】,先拿着原本数值使用,然后变量+1。 【先用后加】
注意事项:只有变量才能使用自增、自减运算符。常量不可发生改变,所以不能用。
赋值运算符
赋值运算符包括 | |
---|---|
= | 等于号 |
+= | 加等于 |
-= | 减等于 |
*= | 乘等于 |
/= | 除等于 |
%= | 取模等于 |
赋值运算符就是将符号右边的值赋给左边的变量。
赋值运算符分为:
基本赋值运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量。
复合赋值运算符:
赋值运算符 | |
---|---|
+= | a+=3 相当于 a=a+3 |
–= | b-=4 相当于 b=b-4 |
*= | c*=5 相当于 c=c*5 |
/= | d/=6 相当于 d=d/6 |
%= | e%=7 相当于 e=e%7 |
注意事项:
-
只有变量才能用赋值运算符,常量不能进行赋值。
-
复合赋值运算符其中隐含了一个强制类型转换。
比较运算符
比较运算符 | |
---|---|
== | 比较符号两边的数据是否相等,相等结果是true。【两个等号连写才是相等,一个等号代表的是赋值】 |
< | 比较符号左边的数据是否小于右边的数据,如果小于结果是true。 |
> | 比较符号左边的数据是否大于右边的数据,如果大于结果是true。 |
<= | 比较符号左边的数据是否小于或等于右边的数据,如果小于或等于结果是true。 |
>= | 比较符号左边的数据是否大于或等于右边的数据,如果大于或等于结果是true。 |
!= | 不等于符号,如果符号两边的数据不相等,结果是true。 |
比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值“true”或者“false”。
注意事项:
-
比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false。
-
如果进行多次判断,不能连着写,数学当中的写法,例如:1<x<3;程序当中不允许这种写法。
逻辑运算符
逻辑运算符 | |
---|---|
&& 与(并且) | 全都是true,才是true;否则就是false |
| 或(或者) | |
! 非(取反) | 本来是true,变成false;本来是false,变成true |
与“&&“,或”||“,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。
注意事项:
-
逻辑运算符只能用于boolean值。
-
与、或需要左右各自有一个boolean值,但取反只要有唯一的一个boolean值即可。
-
与、或两种运算符,如果有多个条件,可以连续写。
两个条件:条件A && 条件B
多个条件:条件A && 条件B && 条件C
TPS:
对于1<x<3 ,应该拆成两个部分,然后使用运算符连接起来:
int x=2;
1<x&&x<3
三元运算符
一元运算符:只需要一个数据就可以进行的操作的运算符。
二元运算符:需要两个数据才可以进行操作的运算符。
三元运算符:需要三个数据才可以进行操作的运算符。
格式:
数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
流程:
首先判断条件是否成立:
如果成立为true,那么将表达式A的值赋给左边的变量;
如果不成立为false,那么将表达式B的值赋给左边的变量;
二者选其一。
注意事项:
-
必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
-
三元运算符的结果必须被使用
3、方法入门
概述
方法: 将一个功能抽出来,把代码单独定义在一个大括号内,形成一个单独的功能。
当我们需要这个功能的时候,就可以去调用。这样既实现了代码的复用性,也解决了代码冗余的现象。
方法的定义
定义一个方法的格式:
public static void 方法名称(){
方法体
}
方法名称的命名规则和变量一样,使用小驼峰式。
方法体:也就是大括号当中可以包括任意条语句。
注意事项:
-
方法定义的先后顺序无所谓。
-
方法定义不能产生嵌套包含关系。
-
方法定义好了之后,不会执行的,如果要想执行,一定要进行方法的【调用】。
方法的调用
调用方法格式:
方法名称();x
4、JShell的简单实用
当我们编写代码非常少时,不愿意编写类,main方法,也不愿意编译和运行,这个时候可以使用JSell工具。
启动JShell工具,在cmd输入JShell命令
1 | jshell |
只要输入程序主体即可。
5、拓展知识点
对于byte/short/char三种类型来说,如果右侧赋值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。
-
如果右侧没有超过左侧范围,编译器补上强补。
-
如果右侧超过左侧范围,那么直接编译器报错。
在给变量进行赋值的时候,如果右侧的表达式当中全部是常量,没有任何变量,那么编译器javac将会直接将诺干个常量表达式计算得到结果。这称为“编译器的常量优化”。但是注意:一旦表达式当中有变量参与,那么就不能进行这种优化了