1.char类型
char是一个字符型,字符是组成一个文本的最小单位
字符是如何存储的:计算机中,所有的数据存储都是以数字的形式存储,就是说每一个字符都一定有一个对应的数字进行存储。这个规定了每一个字符对应的存储数字表,成为--字符集
2.数据类型转换
一个变量声明后,内存已经为它开辟空间。一旦一个空间大小分配完成,是不允许改变大小的。因此一个变量声明后,不允许修改类型。这里我们提到的数据类型的转换,是指声明一个新的指定类型的变量,然后将原来的值拷贝到新的变量空间中。
数据类型转换分为两种;自动类型转换和强制类型转换
自动类型转换
- 一般是发生在由取值范围小的数据类型向取值范围大的数据类型转换
- 转型过程不需要任何额外的操作,直接赋值就可以,也成为了隐式转换
- 转型后,不存在任何精度丢失问题
强制类型转换
- 一般是在由取值范围的大的数据类型向取值范围小的数据类型转换
- 这个过程需要一个额外的强制转换,也成为了显示转换
- 转型后,可能会出现精度丢失的问题
- 由浮点型向整型转型也是一个显式转换,转换时,舍去小数点后面的所有内容,保留整数部分给变量赋值
注意:
- 整型字面量可以直接给一个字符变量赋值
- 一个整型变量不能直接给一个字符变量赋值,需要强制类型转换
- byte、short、char在进行运算的时候,会将结果自动转型为int类型
3.转义字符
作用:
- 配合某些具有特定功能的字符使用,使其变成普通字符
- 单引号,是用来匹配一个字符的开始和结尾,\'使其变成普通字符 '
- 双引号,是用来匹配一个字符串的开始和结尾,\"使其变成普通字符"
- 反斜线,是转义字符,\\使其变成普通字符\
- 配合某些普通字符使用,使其具有特殊功能
- n是一个普通字符,但是配合转义字符使用\n代表换行
- t是一个普通字符,但是配合转义字符使用\t此时代表tab
- r是一个普通字符,但是配合转义字符使用\r此时代表return
4.常用运算符
-
算术运算符:
+ - * /整型和整型的计算结果还是整型;++ --自增自减运算符,放变量前先+1,放后面先使用后+1
-
赋值运算符:
=右边的值赋给左边;+= -= *= /= %=
-
关系运算符:
> < >= <= == !=,结果一定是boolean类型的
-
逻辑运算符:
运算的一定是Boolean类型;& | ! ^(异或,相同为false,不同为true) && ||
-
位运算符:
针对整数的运算,方法时将数字求出补码。然后进行逻辑运算>> << >>>将补码向指定方向移动指定位数
一个数字和另外一个数字异或两次,得到本身。
在不借助第三方变量的情况下,交换两个整型的值:
-
int a = 10, b = 20; a = a ^ b; b = a ^ b; a = a ^ b;
- 如何高效率的计算8*4
8 << 2;
-
三目运算符
语法:condition ? expression1 : expression2
逻辑:如果condition 为true,整体的结果是expression1,否则,整体的结果为expression2
运算符的优先级
运算符分为一元运算符、二元运算符、三元运算符
- 一元:只操作一个数据,例如 ++ -- ! ~
- 二元:操作两个数据,例如 + - * 、 ^ > <
- 三元:操作三个数据(三目)
- 一元运算符> 二元运算符 > 三元运算符
- ()的优先级最高
- 赋值运算的优先级最低
5.流程控制语句
- 顺序结构:代码从上往下,逐行执行,是程序执行的基本结构
- 分支结构:程序运行到某个节点后,遇到多个分叉,选择其中的分叉执行,其他的分叉不执行
- 循环结构:某一个代码段中的内容需要被重复执行
分支流程控制语句: if...else switch...case
循环流程控制语句: for while do...while
if基本语法:
//condition是boolean变量,或者是一个boolean结果的表达式
if(condition){
//代码段
}else{
//代码段
}
逻辑:如果condition为true执行代码段1,否则执行代码段2
说明:else语句不是必须存在的;不允许没有if,只有else;不允许一个if有多个else
switch基本语法:
switch(variable){
case value1:
case value2:
default:
}
逻辑:捕获一个变量的值,如果这个变量的值和某一个value相同,则执行这个case后的代码。如果变量的值没有和之匹配的,则执行default后面的代码
注意事项:
- switch语句具有穿透性(如果匹配到一个case,会执行case以后所有的代码,会跳过后续所有的case和default检测,如果不希望穿透,则需要加关键字break)
- default(可以不写default,但最多只能有一个;default可以再switch的任意位置)
- case(不允许case重复的值)
for基本语法
for(循环起点;循环条件;循环步长){
//循环体:当满足条件的时候,这里的代码会重复执行
}
执行逻辑:
先执行循环的起点,且只执行一次;判断循环条件,若成立,执行循环体->步长->循环条件;若不成立->循环结束
注意事项:小括号内可以不写;但是分号不能省略。
while基本语法:
while(循环条件){
//循环体
}
执行逻辑:
判断条件是否成立,成立则执行循环体,否则循环结束。
for和while的选择:
如果循环次数可预知,使用for循环;如果循环次数不可预知,则使用while循环。
do-while基本语法:
do{
//循环体
}while(条件);
执行逻辑:先执行一次循环体,然后再判断循环条件是否成立。
和while的区别:
如果循环条件一开始就不成立,do-while还是会执行一次循环体,while一次都不执行。
break和continue的介绍
break:用在循环中,表示结束循环;
continue:用于循环中,表示结束本次循环,继续下次循环。
注意:break和continue只对当前循环生效,嵌套循环中,不会对其他循环产生影响。