Java学习2

1、数据类型转换

当数据类型不一样时,将会发生数据转化。

自动类型转化(隐式)

  1. 特点:代码不需要进行特殊处理,自动完成。

  2. 规则:数据范围从小到大。

强制类型转化(显式)

  1. 特点:代码需要特殊的格式处理,不能自动完成。

  2. 格式:范围小的类型    范围小的变量名=(范围小的类型)原本范围大的数据。

注意事项

  1. 强制类型转换一般不推荐使用,因为可能发生精度损失、数据溢出。

  2. byte/short/char这三种类型都可以发生数学运算,例如加法“+”。

  3. byte/short/char这三种类型在运算时,都会首先提升成为int类型,然后计算。

  4. Boolean类型不能发生数据类型转换。

计算机的底层会用一个数字来表示字符;

一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为一个数字。

ASCII编码表

ASCII码表:American Standard Code for Information Interchange,美国信息交换标椎代码。

Unicode码表:    万国码。也是数字和符号的对照关系,开头0~127部分和ASCII完全一样,但从128开始包含有更多字符。

48—’0‘    65—’A‘    97—’a’

2、运算符

运算符:进行特定操作的符号。

表达式:用运算符连起来的式子叫做表达式。

算术运算符

算数运算符包括:
+ 加法运算,字符串连接运算
- 减法运算
* 乘法运算
/ 除法运算
% 取模运算,两个数字相除取余数
++、– 自增自减运算

Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。

  • 两个常量之间可以进行数学运算。

  • 两个变量之间可以进行数学运算。

  • 常量和变量之间可以混合使用。

  • 对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果仍然是整数。只看商,不看余数。

  • 只有对于整数的除法来说,取模运算符才有余数的意义。

注意事项: 一旦运算当中有不同的数据类型,那么结果将会是数据类型范围大的那种。

四则运算当中的当中加号“+”有常见的三种用法:

  1. 对于数值来说,那就是加法。

  2. 对于字符char类型来说,在计算之前,char会被提升为int,然后再计算(char类型字符与int类型数字数字,之间的的对照关系表:ASCII、Unicode)

  3. 对于字符串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

注意事项:

  1. 只有变量才能用赋值运算符,常量不能进行赋值。

  2. 复合赋值运算符其中隐含了一个强制类型转换。

比较运算符

比较运算符
== 比较符号两边的数据是否相等,相等结果是true。【两个等号连写才是相等,一个等号代表的是赋值】
< 比较符号左边的数据是否小于右边的数据,如果小于结果是true。
> 比较符号左边的数据是否大于右边的数据,如果大于结果是true。
<= 比较符号左边的数据是否小于或等于右边的数据,如果小于或等于结果是true。
>= 比较符号左边的数据是否大于或等于右边的数据,如果大于或等于结果是true。
!= 不等于符号,如果符号两边的数据不相等,结果是true。

比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值“true”或者“false”。

注意事项:

  1. 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false。

  2. 如果进行多次判断,不能连着写,数学当中的写法,例如:1<x<3;程序当中不允许这种写法。

逻辑运算符

逻辑运算符
&&       与(并且) 全都是true,才是true;否则就是false
|        或(或者)
!        非(取反) 本来是true,变成false;本来是false,变成true

与“&&“,或”||“,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。

注意事项:

  1. 逻辑运算符只能用于boolean值。

  2. 与、或需要左右各自有一个boolean值,但取反只要有唯一的一个boolean值即可。

  3. 与、或两种运算符,如果有多个条件,可以连续写。

两个条件:条件A && 条件B

多个条件:条件A && 条件B && 条件C

TPS:

对于1<x<3 ,应该拆成两个部分,然后使用运算符连接起来:

int x=2;

1<x&&x<3

三元运算符

一元运算符:只需要一个数据就可以进行的操作的运算符。

二元运算符:需要两个数据才可以进行操作的运算符。

三元运算符:需要三个数据才可以进行操作的运算符。

格式:

数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;

流程:

首先判断条件是否成立:

如果成立为true,那么将表达式A的值赋给左边的变量;

如果不成立为false,那么将表达式B的值赋给左边的变量;

二者选其一。

注意事项:

  1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。

  2. 三元运算符的结果必须被使用

3、方法入门

概述

方法: 将一个功能抽出来,把代码单独定义在一个大括号内,形成一个单独的功能。

当我们需要这个功能的时候,就可以去调用。这样既实现了代码的复用性,也解决了代码冗余的现象。

方法的定义

定义一个方法的格式:

public static void 方法名称(){

方法体

}

方法名称的命名规则和变量一样,使用小驼峰式。

方法体:也就是大括号当中可以包括任意条语句。

注意事项:

  1. 方法定义的先后顺序无所谓。

  2. 方法定义不能产生嵌套包含关系。

  3. 方法定义好了之后,不会执行的,如果要想执行,一定要进行方法的【调用】。

方法的调用

调用方法格式:

方法名称();x

4、JShell的简单实用

当我们编写代码非常少时,不愿意编写类,main方法,也不愿意编译和运行,这个时候可以使用JSell工具。

启动JShell工具,在cmd输入JShell命令

1
jshell

只要输入程序主体即可。

5、拓展知识点

对于byte/short/char三种类型来说,如果右侧赋值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。

  1. 如果右侧没有超过左侧范围,编译器补上强补。

  2. 如果右侧超过左侧范围,那么直接编译器报错。

在给变量进行赋值的时候,如果右侧的表达式当中全部是常量,没有任何变量,那么编译器javac将会直接将诺干个常量表达式计算得到结果。这称为“编译器的常量优化”。但是注意:一旦表达式当中有变量参与,那么就不能进行这种优化了