day02笔记--数据类型转换、运算符、方法入门

数据类型转换

当数据类型不一样的时候,需要发生类型转换。Java中的类型分为两种:

  1. 自动类型转换(隐式)

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

原则:只能从数据范围小的类型,转换为数据范围大的类型。(从小到大)

  1. 强制类型转换(显式)

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

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

注意事项:

  1. 强制类型转换使用必须谨慎,因为有可能发生数据溢出、精度损失。

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

  3. Byte/short/char三种类型,在发生运算的时候,都有首先向上提升为int类型,然后再运算。

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

Char 和 int 之间的转换关系为:

ASCII表:0-127分别代表不一样的字符。

Unicode表:万国码,0-127和ASCII完全一样,但是从128开始,可以包含更多字符。

运算符

运算符:对数据进行操作的符号。

表达式:用运算符连起来的常量或变量,叫做表达式。

Java中常用的运算符

算术运算符:包括 加 + 减 - 乘 * 除 /

赋值运算符

比较运算符

逻辑运算符

三元运算符

注意事项:

  1. 对于整数来说,除法使用的是小学一年级的算法。

被除数 / 除数 = 商……余数

  1. 如果运算当中有小数参与,那么结果直接就是小数。

  2. 取模运算的典型应用:判断奇偶数

算术运算符当中的加号,其实可以有多种用法。

  1. 数学加法运算。

  2. 还可以用英语char类型,会首先提升成为int (查ASCII表/Unicode表),然后再运算。

  3. 还可以用于字符串连接。

备注:任何数据类型和字符串进行+连接的时候,都会转换成为字符串形式。

算术运算符

自增运算符:++,在一个变量本来数值的基础上,累加1。

自减运算符:–,在一个变量本来数值的基础上,累减1。

使用格式:

  1. 写在一个变量的前面。例如: ++a –b

  2. 写在一个变量的后面。例如: x– y–

使用方法:

  1. 单独使用:独立成为一个语句步骤,不和其他任何操作混合。

  2. 混合使用:与其他操作仪器混合,例如赋值语句、打印输出语句等等。

使用区别(重点):

  1. 在单独使用的时候,前++和后++没有任何区别。

  2. 在混合使用的时候,前++和后++存在重大区别。

A. 如果是【前++】,那么变量【立刻马上+1】,然后拿着结果进行使用。(先加后用)

B. 如果是【后++】,那么变量先使用本来之前的数据,【然后变量再+1】。(先用后加)

​ 注意:该加是一定会加的,只不过是先后时机不一样。

注意事项:

  1. 只有变量才能使用这样的运算符。

  2. 这种运算符只需要一个变量就行,不需要两个或者更多。

赋值运算符

基本写法

= 代表将右侧的数据交给左侧的变量

复合写法

+= a+=3 a=a+3

-= b-=3 b=b-3

= c =3 c=c *3

/= d/=3 d=d/3

%= e%=3 e=e%3

注意事项

左侧必须是一个变量,才能赋值;右侧变量、常量无所谓。

比较运算符

比较运算符也叫做关系运算符:

大于 >

小于 <

大于等于 >=

小于等于 <=

等于 == [注意]

不等于 !=

结果一定的boolean值,如果成立就是true,如果不成立结果就是false

逻辑运算符

逻辑运算符主要分为四种(其中三种常用)

与(并且) & 全部是true,才是true;否则就是false

或(或者) | 至少一个是true,就是false;全部是false,才是false

异或 ^ 两个相同就是false;一样一个就是true。(了解即可,不太常用)

非(取反) ! 本来是true,变成false;本来是false,变成true

注意几点问题

  1. 这些逻辑运算符是作用在布尔数据上的。

  2. 非运算符只 一个数据,其他的都是左右各一个数据。

  3. 如果遇到了类似于两个条件的判断(例如区间),那么不能连这写,一定要用逻辑运算符。

    1

三元运算符

一元运算:需要一个数据,例如: ++ – !

二元运算:需要两个数据,例如:+ - * /

三元运算,格式:

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

含义逻辑:

1.首先进行条件判断,得到true或者false值

2.如果条件成立,那么取用表达式A的值。

3.如果条件不成立,那么取用表达式B的值。

注意事项

  1. 三元运算表达式,结果必须被使用,不能不用。要么左侧赋值,要么打印输出。
  2. 打印输出语句可以支持所有类型,但是如果左侧是变量,必须同时保证表达式A和表达式B符合。

方法

概念

​ 所谓方法,可以被当做是一种比类更小一级的大括号,是代码的更小组织单位。

定义方法的基本格式(今天)

public static void 方法名称(){

​ 方法体

​ return;

}

备注

  1. void代表方法不产生任何返回值(返回值day04学习)
  2. 小括号之内留空,代表方法没有任何参数(参数day04学习)
  3. 方法体:就是希望这个方法做什么事情,可以是一行或多行代码。
  4. 最后一行return;代表方法的结果,最后一行可不写。

注意事项

  1. 方法定义的前后顺序,无所谓。
  2. 方法定义不能包含嵌套关系。(带有public static void 的就就做定义)
  3. 最后一行return;代表方法的结束,今天可写可不写。
  4. 方法定以后,是不会主动自己运行的。如果希望执行方法,必须进行调用。

方法的调用

  1. 可以在main方法中调用其他方法。
  2. 也可以在一个任意的方法当中,调用另一个方法。
  3. 方法的定义先后顺序不影响结果,调用顺序才会影响结果。
  4. 今天我们要尽量避免“循环调用”(今后学习的递归调用)。a->b->a 不能形成一个无限的环路

编译器的常量优化和隐含强转

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

  2. 对于byte、short、char三者来说,只要赋值的右边不超过本类型的范围,那么编译器(javac)将会自动隐含地补上强制类型转换:(byte)(short)(char)。

  3. 编译器的常量优化

    如果一个表达式完全由常量组成,那么在javac编译 的时候,就会直接计算出结果,放在.class字节码文件中。而此时此刻刚刚编译通过,还没有运行程序。

    .java–> javac –> .class –>java –>运行结果

    编译器–>运行期

    编译器的常量优化,发生在编译器,而不是运行期。

    只有常量才会有这种表达式优化;如果变量就不会再优化了。

猜你喜欢

转载自blog.csdn.net/qq_36172874/article/details/81512902