Java SE基础(第二天)

1、算术计算符

1.1、二元运算符:+、-、*、/、%

1.2、一元运算符:++、–

​ 1.2.1、++和–的区别与联系

​ 1.2.1.1、只能针对整数

​ 1.2.1.2、只能适用于变量,不能适用于常量

​ 1.2.1.3、位置在前,先自增/自减,再赋值;

​ 位置在后,先赋值,再自增/自减

​ 1.2.1.4、当+号任意一端出现字符串,此时+号就是连接符

​ 1.2.1.5、关于取余运算的正负,与被除数的正负相关

2、扫描器类:java.util.Scanner

​ Scanner sc = new Scanner();

​ int a = sc.nextInt();

​ 2.1、常用方法

​ 2.1.1、next() 扫描字符串,当输入到空格结束

​ 2.1.2、nextInt() 扫描整数

​ 2.1.3、nextDouble() 扫描整数

​ 2.1.4、nextIine() 扫描字符串,当输入到回车结束

3、为什么String、System不需要导包?

​ Java语言根据所在类的不同包进行区分,String、System属于java.lang包,JVM可直接识别,而Scanner属于java.util包,所以需要导包

4、二元运算符的运算规则

​ 4.1、整数运算

​ 如果两个操作数有一个为long型,结果也为long型;

​ 如果没有long型,结果为int型

​ 4.2、浮点数运算

​ 如果两个操作数有一个为double,结果也为double;

​ 只有两个操作数都是float型,结果才为float型

5、拓展赋值运算符

​ 5.1、在赋值或运算时,要求数据类型相同,否则需要类型转换

​ 5.2、转换方式

​ 5.2.1、隐性转换,boolean类型除外

​ 5.2.2、强制转换: 数据类型 变量名 = (数据类型) 变量名

​ 5.3、范围大小

​ byte < short < char < int < long < float < double

6、控制语句

6.1、控制语句分为:顺序、选择和循环

6.2、选择语句又分为:if语句和switch语句

​ 6.2.1、if语句

//if语句 - 单分支
if(布尔表达式){
  //语句块
}

//if语句 - 双分支
if(布尔表达式){
  //语句块1
} else {
  //语句块2
}
//执行规则:判断布尔表达式中的值,根据值执行不同的语句块
//true:执行语句块1
//false:执行语句块2

//if语句 - 多分支
if(布尔表达式1){
  //语句块1
} else if(布尔表达式2){
  //语句块2
} else {
  //语句块n
}
//执行规则:按照从上到下的顺序依次执行
//如果第一个条件没有满足,则判断第二个条件,以此类推;如果都不满足,则执行else语句
//针对单if语句进行优化,如果存在多个单分支语句,即便前一个满足,后续的if语句还需要进行判断执行
//如果第n个表达式成立,后续的if else语句不再执行

//if多分支语句可以和switch语句互换,编写javase项目时,尤其是菜单栏选项,使用switch语句,不要使用if多分支语句

​ 6.2.1、switch语句

switch(表达式){
  case1:
    语句序列1;
    [break];
  case2:
    语句序列2;
    [break];
    ...
  default:
    默认语句;
}

//执行规则:switch语句会根据表达式的值,从相匹配的case标签开始执行,一直执行到break语句,或者switch默认语句
//如果表达式的值与任意case值都不匹配,则进入执行default语句
//如果已经匹配了某个case,但是此case语句没有编写break单词,会继续执行下一个case语句,知道遇到break或执行完毕

//switch的细节
	//switch括号中的表达式不允许是条件表达式,多重if else语句正好相反
	//关于case后面的值类型,根据表达式的结果类型而定
	//表达式的类型:byte、short、int、long、char,jdk1.7之后支持String类型
	//break用来结束此语句
	//多重if else语句是区间判断,switch表达式的值是等值判断
	//default语句,相当于多重if else语句的else部分

7、Math类

7.1、Math类的random()

​ 7.1.1、[a, b] = (int)(Math.random() * (b - a + 1) + a)

​ 7.1.2、random()计算出来的是0.0 ~ 1.0之间的小数,包括0.0,不包括1.0

​ 7.1.3、使用类型的强制转换,可以将小数转为整数

​ (int) (Math.random() * 100) 结果是0~99

​ (int) (Math.random() * 101) 结果是0~100

​ 口诀就是:包左不包右,包头不包尾

8、printf()

​ 使用double类型接受随机产生的小数,小数点后面有多位数值

​ printf(“格式要求”, 变量名称);

​ 格式要求:“%.保留几位f”

9、三元运算符

​ 9.1、格式: 条件表达式 ? 表达式1 : 表达式2;

​ 9.1.1、条件表达式结果为boolean值,true执行表达式1,false执行表达式2

​ 9.1.2、三元运算符可以嵌套使用,执行顺序按优先级来

​ 9.2、if双分支结构语句,可以和三元运算符进行互换

10、关系运算符

10.1、关系运算符:==、 !=、 >、 >=、 <、 <=

10.2、赋值运算符"=“和”=="(判断两个操作数是否相等)

​ 10.2.1、"="优先级最低,右边的值赋值给左边

​ 10.2.2、“==” 运算结果是boolean值;

​ 既可以针对基本数据类型进行比较(比较的具体的值是否相等),

​ 也可以针对引用数据类型进行比较(比较的是引用数据类型的地址值)。

​ 引用数据类型的地址值相等,内容肯定相等,反之内容相等,但是地址值不一定相等。

10.3、“==”、“!=” 是所有的数据类型都可以使用

10.4、 >、 >=、 <、 <=仅针对数值基本数据类型有用(byte、short、int、long、float、double、char)

10.5、字符型可以和数值类型进行比较,char类型优先变成数值类型;

​ String字符串类型和基本数据类型,不能进行比较;

​ boolean类型和其他的基本数据类型不能进行比较

10.6、Java中不等号为:!=,而数据库中<>、!=都可以使用

11、逻辑运算符

11.1、&、|、&&、||、^、!

11.2、运算规则

​ 11.2.1、&和&&运算规则相同:如果符号两边一边为false,整体结果返回false;两边都是true,结果才为true

​ 11.2.2、|和||运算规则相同:如果符号两边一边为true,整体结果返回true;两边都是false,结果才为false

​ 11.2.3、^的运算规则:如果符号两边都是相同的布尔值,返回的结果是false;反之返回的结果是true

​ 11.2.4、!的运算规则:如果符号的右边是false,结果为true,右边是true,结果为false;

​ 只针对布尔变量,对于常量无效

11.3、混合运算的时候,先计算关系表达式,再计算逻辑表达式

11.4、&和&&的区别

​ 相同点:都属于逻辑运算符,运算规则都相同;

​ 符号两边都必须是布尔值;

​ 不同点:效率问题。&&效率更高,如果左边能确定最终的表达式的值,就不再计算右边

​ 从属问题。&&和||只能是逻辑运算符,&和|既可以是逻辑运算符,也可以是按位运算符

12、"=="和equals()区别

相同点:二者存在的意义就是为了比较,且运算结果都是boolean值

不同点:二者本质不同,"=="属于关系运算符,equals()属于方法

​ 比较的内容不同:

​ “==” 既可以比较基本数据类型,也可以比较引用数据类型。

​ 基本数据类型比较的是两个值是否相同,引用数据类型比较的是在JVM内存中的地址值是否相同;

​ equals()只能比较引用数据类型,比较的是两个对象的地址值是否相同

​ 如果重写equals(),就可以比较两个对象的内容是否相同

13、各进制之间的关系

十进制D二进制B八进制Q十六进制H
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

14、位运算符

14.1、位运算符指的是进行二进制位的运算

14.2、~、&、|、^ 、<<(左移一位相当于乘2)、>>(右移一位相当于除2取商)

14.3、&和|既是逻辑运算符,也是位运算符

​ 如果两个操作数都是boolean类型,就作为逻辑运算符,如果都是整数类型,就作为位运算符

14.4、取反~:把十进制数字转成二进制数字之后,再进行取反操作,由原来的0变成1,1变成0

​ 逻辑运算符取反!,右边是boolean值,按位运算符取反:~,右边是二进制数值

14.5、按位与&:与逻辑运算符相同,1为true,0为false

14.6、按位或|:与逻辑运算符相同,只要有一个为true,结果就是true

14.7、按位异或^:只要有相同的就返回false,不同的返回true

14.8、位移运算符:左移,数值越来越大;右移,数值越来越小

14.9、特点

​ 位运算符是对操作数以二进制为单位进行操作和运算,操作数和结果都是整型数

​ 如果操作对象是char、byte、short,位移动作发生前其值也会自动晋升为int,运算结果也是int

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值