数据类型及运算符
Java 第二天
1. 内容回顾
1. 编程基础--进制、进制转换、原码、反码、补码
2. JDK的安装与环境变量的配置
3. Eclipse的简单使用
4. 数据类型
5. 标识符
6. 变量、常量
2. char类型
char是一个字符型,字符是组成一个文本的最小单元
最重要的一点: 一个字符是如何进行存储的。
由于在计算机中,所有的数据存储都是以数字的形式进行存储的,因此每一个字符一定有一个对应的数字来进行存
储。这个规定了每一个字符对应的存储数字的表,称作--字符集
3. 数据类型转换
一个变量声明完成后,在内存中已经为他开辟空间。一旦一个空间大小已经分配好了,是不允许改变大小的。因此一
个变量一旦声明完成,是不允许修改类型的。这里的数据类型转换,我们声明一个新的指定类型的变量,然后将原来
的值拷贝到新的变量空间中。
分为两种转换: 自动类型转换 和 强制类型转换
自动类型转换
一般是发生在由取值范围小的数据类型 向 取值范围大的数据类型转换
这个转型过程,不需要任何额外的操作,直接做一个赋值就可以,又叫做隐式转换
转型后,不存在任何的精度丢失问题
强制类型转换
一般是发生在由取值范围大的数据类型 向 取值范围小的数据类型转换
这个转型过程,需要有一个额外的强制转换,又叫做显式转换
转型后,可能会出现精度丢失问题
由浮点型向整型转型也是一个显式转换,转换时,舍去小数点后面所有的内容,保留整数部分给变量赋值
特殊点
关于字符型
整型字面量可以直接给一个字符变量赋值
但是一个整型变量是不能直接给一个字符变量赋值的,需要强制类型转换
byte、short、char在进行运算的时候,会将结果自动的转型成int类型
4. 转义字符
也是一个字符: \
作用:
配合某些具有特定功能的字符使用,使其变成普通字符
单引号,是用来匹配一个字符的开始和结尾,\' : 使其变成普通字符'
双引号,是用来匹配一个字符串的开始和结尾, \" : 使其变成普通字符"
反斜线,是转义字符, \\ : 使其变成普通字符\
配合某些普通字符使用,使其具有特殊功能
n: 是一个普通字符,但是配合转义字符使用: \n, 此时代表 换行
t: 是一个普通字符,但是配合转义字符使用: \t, 此时代表 tab
r: 是一个普通字符,但是配合转移字符使用: \r, 此时代表 return
5. 常用运算符
算术运算符
+ - * / %
整型与整型的计算结果还是整型
整型与浮点型的计算结果是浮点型
++ -- : 自增、自减运算符
如果放在变量前: 表示先对这个变量进行+1操作,然后再取这个变量值使用
如果放在变量后: 表示先取这个变量的值使用,然后再对这个变量进行+1
赋值运算符
= : 将等号右边的值给左边的变量进行赋值
组合运算符: += -= *= /= %=
注意事项: 赋值运算是有运算结果的,结果是赋值完成后的变量的值。
关系运算符
> < >= <= == !=
关系运算的结果一定是boolean类型的
逻辑运算符
逻辑运算操作的一定是boolean类型的数据
& | ! : 与(and)、或(or)、非(not)
^ : 异或(xor), 逻辑: 两个相同为false, 两个不同为true
&&: 短路与,结果和逻辑与相同,如果前面的值可以决定整体的结果,则后面的表达式不参与运算
||: 短路或,结果和逻辑或相同,如果前面的值可以决定整体的结果,则后面的表达式不参与运算
位运算符
位运算是针对整型数字的计算。
将参与运算的数字,求出补码,将每一位的数字进行类似于逻辑运算的操作。
1相当于true, 0相当于false
& | ^ ~ << >> >>>
移位运算符(位移运算符)
<<: 左移: 将补码的每一位依次向左移动指定的位数
>>: 右移: 将补码的每一次依次向右移动指定的位数
最高位补符号位
>>>: 右移: 将补码的每一次依次向右移动指定的位数
最高位补0
^: 一个数字和另外一个数字异或两次,一定得到自身
增强:
如何在不借助第三方变量的情况下,高效率的交换两个整型变量的值
如何高效率的计算8*4
三目运算符
语法: condition ? expression1 : expression2
condition: boolean变量,或者一个boolean结果的表达式
expression: 一个变量,或者一个有运算结果的表达式
逻辑: 如果condition为true, 整体的结果是expression1, 否则, 整体结果是expression2
运算符的优先级
运算符按照操作的数据量不同,分为: 一元运算符、二元运算符和三元运算符
一元: 只操作一个数据,例如: ++, --, !, ~, +, -
二元: 操作两个数据,例如: + - & | ^ > <
三元: 操作三个数据,三目
一元运算符 > 二元预算符 > 三元运算符
()的优先级最高
赋值运算的优先级最低
6. 流程控制语句
int a = 10, b = 20;
a = a ^ b;
b = a ^ b;
a = a ^ b;
8 << 2;
程序的执行顺序,称作程序的执行结构。程序在执行结构有三种:
顺序结构: 代码从上往下,逐行执行。顺序结构是程序执行的基本结构。
分支结构: 程序运行到某一个节点后,遇到多个分叉,选择其中的一个分叉进行执行。其他的分叉都不执行
循环结构: 某一个代码段中的内容需要被重复执行
程序默认采用的顺序结构来执行程序,我们可以通过一些语句来修改程序的执行结构,这样的语句,称作流程控制语
句,按照修改的执行结构,可以分为 分支流程控制语句 和 循环流程控制语句
分支流程控制语句: 1. if-else 2. switch-case
循环流程控制语句: 1. for 2. while 3. do-while
7. 分支流程控制--if
基本语法
逻辑: 如果 condition 的值为true,则代码段1执行;否则代码段2执行
说明
else语句不是必须存在的
不允许没有if,只有else
不允许多个else
进阶语法
如果if或者else后面的代码段中只有一句代码,则大括号可以省略
虽然从语法上讲,某些情况下,大括号可以省略;但是从规范上,大括号不能省略
if (condition) {
// 代码段1
}
else {
// 代码段2
}
// condition是一个boolean变量,或者一个boolean结果的表达式
if (condition1) {
// 代码段1
}
else if (condition2) {
// 代码段2
}
else if ...
else {
}
先判断condition1,如果condition1是true, 则代码段1执行
如果condition1是false, 在判断condition2, 如果condition2是true,则代码段2执行
...
8. 分支流程控制--switch
基本语法
逻辑: 捕获一个变量的值,如果这个变量的值和某一个value相同,则执行这个case后面的代码。如果变量的值没
有和任意的一个value匹配,则执行default后面的代码
注意事项
switch语句具有穿透性:
如果variable的值和某一个case匹配上,会执行从这个case开始,往后所有的代码,跳过后续所有的
case和default检测。
如果不希望程序向下穿透,需要使用关键字 break
default:
可以不写default,但如果要写,最多只能写1个default
default可以写在switch的任意位置
case:
不允许case重复的值
9. 预习方向
1. 循环流程控制--for
2. 循环流程控制--while
3. 循环流程控制--do-while
switch (variable) {
case value1:
case value2:
default:
}
for (循环起点; 循环条件; 循环步长) {
循环体
}
while (循环条件) {
循环体
}
4. 循环中的关键字 break,continue
break: 结束循环
continue: 停止本次循环,立即进入下次循环
5. 循环标签
6. 方法
1. 方法的定义
2. 方法的调用
3. 方法的参数
4. 方法的返回值
5. 方法的重载
6. 方法的递归
do {
循环体
} while (循环条件);
posted on 2022-04-11 00:29 RICH-ATONE 阅读(102) 评论(0) 编辑 收藏 举报