Java基础班学习笔记(3)

知识要点:运算符(掌握)    键盘录入(掌握)    流程控制语句    if语句(掌握)

 1:运算符(掌握)

(1)算术运算符

A:+,-,*,/,%,++,--

B:+的用法

a:加法

b:正号

c:字符串连接符

C:/和%的区别

数据做除法操作的时候,/取得是商,%取得是余数

D:++和--的用法

a:他们的作用是自增或者自减

b:使用

**单独使用

放在操作数据的前面和后面效果一样。

a++或者++a效果一样。

**参与操作使用

放在操作数的前面:先自增或者自减,再参与操作

int a = 10;

int b = ++a;

放在操作数的后面:先参与操作,再自增或者自减

int a = 10;

int b = a++;

(2)赋值运算符

A:=,+=,-=,*=,/=,%=等

B:=叫做赋值运算符,也是最基本的赋值运算符

int x = 10; 把10赋值给int类型的变量x。

C:扩展的赋值运算符的特点

隐含了自动强制转换。

   面试题:#面试#

short s = 1;

s = s + 1;    //编译报错,可能损失精度

short s = 1;

s += 1;        //正确,扩展的赋值运算符,隐含了自动强制转换。

s += 1 ; 不等价于 s = s + 1;

而是等于 s = (s的数据类型)s + 1

请问上面的代码哪个有问题?

(3)比较运算符

A:==,!=,>,>=,<,<=

B:无论运算符两端简单还是复杂最终结果是boolean类型。

C:千万不要把==写成了=

(4)逻辑运算符

A:&,|,^,!,&&,||

B:逻辑运算符用于连接boolean类型的式子

C:结论

&:有false则false

|:有true则true

^:相同则false,不同则true。

情侣关系。

!:非true则false,非false则true

&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。

||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。

(5)位运算符(了解)

 

A:^的特殊用法

一个数据针对另一个数据位异或两次,该数不变

  B:面试题    #面试#

a:请实现两个变量的交换

**采用第三方变量

**用位异或运算符

左边a,b,a

右边a^b

b:请用最有效率的方式计算出2乘以8的结果

2<<3


位运算符的细节


<<


空位补0,被移除的高位丢弃。


>>


被移位的二进制,最高位是0,右移后,空缺位补0;最高位是1,最高位补1。


>>>


被移位二进制最高位无论是0或者是1,空缺位都用0补。


&


任何二进制位和0进行&运算,结果是0;和1进行&运算结果是原值。


|


任何二进制位和0进行 | 运算,结果是原值;和1进行 | 运算结果是1。


^


任何相同二进制位进行 ^ 运算,结果是0;不相同二进制位 ^ 运算结果是1。

(6)三元运算符

A:格式

比较表达式?表达式1:表达式2;

B:执行流程:

首先计算比较表达式的值,看是true还是false。

如果是true,表达式1就是结果。

如果是false,表达式2就是结果。

C:案例:(略)

a:比较两个数据是否相等

b:获取两个数据中的最大值

c:获取三个数据中的最大值

2:键盘录入(掌握)

(1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。

(2)如何实现呢?目前就记住

A:导包

import java.util.Scanner;

位置:在class的上边

B:创建对象

Scanner sc = new Scanner(System.in);

C:获取数据

int x = sc.nextInt();

(3)把三元运算符的案例加入键盘录入改进。

3:流程控制语句

(1)顺序结构 从上往下,依次执行

(2)选择结构 按照不同的选择,执行不同的代码

(3)循环结构 做一些重复的代码

4:if语句(掌握)

(1)三种格式

A:格式1

if(比较表达式) {

语句体;

}

执行流程:

判断比较表达式的值,看是true还是false

如果是true,就执行语句体

如果是false,就不执行语句体

B:格式2

if(比较表达式) {

语句体1;

}else {

语句体2;

}

执行流程:

判断比较表达式的值,看是true还是false

如果是true,就执行语句体1

如果是false,就执行语句体2

C:格式3

if(比较表达式1) {

语句体1;

}else if(比较表达式2){

语句体2;

}

...

else {

语句体n+1;

}

执行流程:

判断比较表达式1的值,看是true还是false

如果是true,就执行语句体1

如果是false,就继续判断比较表达式2的值,看是true还是false

如果是true,就执行语句体2

如果是false,就继续判断比较表达式3的值,看是true还是false

...

如果都不满足,就执行语句体n+1

(2)注意事项

A:比较表达式无论简单还是复杂,结果是boolean类型

B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。

建议:永远不要省略。

C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。

D:else后面如果没有if,是不会出现比较表达式的。

E:三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。

(3)案例:

A:比较两个数是否相等

B:获取两个数中的最大值

C:获取三个数中的最大值(if语句的嵌套)

D:根据成绩输出对应的等级

E:根据月份,输出对应的季节

F:根据x计算对应y的值并输出

(4)三元运算符和if语句第二种格式的关系

所有的三元运算符能够实现的,if语句的第二种格式都能实现。

反之不成立。

如果if语句第二种格式控制的语句体是输出语句,就不可以。

因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。

时间: 2024-11-05 18:29:26

Java基础班学习笔记(3)的相关文章

Java基础班学习笔记(4)

1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 格式解释说明: switch:说明这是switch语句. 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序到这里中断,跳出switch语句 default:如

Java基础班学习笔记(10)

知识要点: 运动员和教练案例分析 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类对象 接口名:返回的是该接口的实现类的对象 (3)链式编程 对象.方法1().方法2().......方法n(); 这种用法:其实在方法1()调用完毕后,返回的应该是一个对象: 方法2()调用完毕后,应该返回一个对象. 方法n()调用完毕后,可能是对象,

Java基础班学习笔记(8)

1:如何制作帮助文档(了解) (1)写一个类 (2)加入文档注释 (3)通过javadoc工具生成即可 javadoc -d 目录 -author -version ArrayTool.java 如何使用帮助文档 1:打开帮助文档 2:点击显示,找到索引,看到输入框 3:知道你要找谁?以Scanner举例 4:在输入框里面输入Scanner,然后回车 5:看包 java.lang包下的类不需要导入,其他的全部需要导入. 要导入: java.util.Scanner 6:再简单的看看类的解释和说明

Java基础班学习笔记(1)

1. 常见的DOS命令(掌握) d:    回车 盘符切换 dir(directory):    列出当前目录下的文件以及文件夹 md (make directory) :    创建目录 rd (remove directory):    删除目录 cd (change directory)    改变指定目录(进入指定目录) cd.. :     退回到上一级目录 cd\:     退回到根目录 del (delete):     删除文件,删除一堆后缀名一样的文件*.txt exit :

Java基础班学习笔记(11)API常用类(二)

1:StringBuffer(掌握) (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了 一个字符串缓冲区类.StringBuffer供我们使用. (2)StringBuffer的构造方法 A:StringBuffer() B:StringBuffer(int size) C:StringBuffer(String str) (3)StringBuffer的常见功能(自己补齐方法的声明和方法的解释) A:添加功能 public Strin

Java基础班学习笔记(5)

1:方法(掌握) (1)方法:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值; } 修饰符:目前就用 public static.后面再详细讲解其他修饰符 返回值类型:就是功能结果的数据类型 方法名:就是起了一个名字,方便我们调用该方法. 参数类型:就是参数的数据类型 参数名:就是变量 参数分类: 实参:实际参与运算的数

Java基础班学习笔记(6)

1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}}; D:数据类型[][] 数组名 = {{...},{...},{...}}; 注意下面定义的区别:     int[] x,y[]; 等价于     int[] x; int[] y[]; (3)案例(掌握

Java基础班学习笔记(2)

知识要点: 关键字     标识符    注释     常量.进制和进制转换    变量    数据类型和类型转换    运算符     语句 1:关键字(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 全部小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记 用于定义访问权限修饰符的关键字 private protected public     用于定义类,函数,变量修饰符的关键字 abstra

Java基础班学习笔记(7)

1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 (4)初始化值不同 成员变量:有默认值 局部变量:没有默认值,必须定义,赋值,然后才能使用  注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则. 2: