------- android培训、java培训、期待与您交流! ----------
Java基础语法1
1.二进制和十进制之间的转换:
类型转换:
1.自动类型提升:byte b = 3;
int x = 4;
x = x + b; // b会自动提升为int类型进行运算。
2.强制类型转换:byte b = 3;
b = b + 4; // 报错
b = (byte)b + 4; // 强制类型转换,强制将 b + 4 的结果转换为byte类型,再赋值给b。
五:运算符
1.算数运算符:
(1).如果对负数取模,可以把模数负号忽略不计,但被模数是负数就另当别论。
(2). b = a++和b = ++a的区别:a++是先赋值再加1,而++a是先加1再赋值。
(3).字符串数据和任何数据使用,最终都会变成字符串。
(4).转义字符:通过 \ 来转变后面字母和符合的含义。
\n:换行; \b:退格(相当于Backspace键); \r:按下回车键;
\t:制表符(相当于Tab键);
2.赋值运算符:
short s = 3;
s+=2;和 s = s+2; 的区别:
(1).s = s + 2;//编译失败,是因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型。
(2).s+=2;//编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。
3.逻辑运算符:用于连接boolean类型的表达式。
(1)."&"和"&&"的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
(2).异或(^)与或(|)的不同之处是:
当左右都为true时,结果为false。
4.位运算符:位运算是直接对二进制进行运算。
(1).左移(<<):空位补0,被移除的高位丢弃,空缺位补0。
(2).右移(>>):被移位的二进制最高位是0,右移后,空缺位补0;
最高位是1,空缺位补1。
(3).<<:其实就是乘以2的移动的位数次幂。
>>:其实就是除以2的移动的位数次幂。
(4).无符号右移(>>>):被移位二进制最高位无论是0或是1,空缺位都是用0补。
(5).&:二进制位进行&运算,只有1&1时结果是1,否则是0。
(6).|:二进制位进行 | 运算,只有 0 | 0 时结果是0,否则是1。
(7).^:任何相同二进制位进行^运算,结果是0;1^1=0,0^0=0
不相同二进制位^运算结果是1; 1^0=1,0^1=1
一个数异或同一个数两次,结果还是那个数。
5.三元运算符:
(1).格式:(条件表达式)?表达式1:表达式2;
(2).如果条件为true,运算后的结果是表达式1;
(3).如果条件为false,运算后的结果是表达式2;
六:程序流程控制
1.判断结构:
(1).if语句:
a.if(条件表达式)
{执行语句;}
b.if(条件表达式)
{执行语句;}
else
{执行语句;}
c.if(条件表达式)
{执行语句;}
else if(条件表达式)
{执行语句;}
......
else
{执行语句;}
(2).if语句的特点:
a.每一种格式都是单条语句。
b.第二种格式if else 结构的简写格式:变量=(条件表达式)?表达式1:表达式2;
c.三元运算符:
好处:可以简化if else 代码。
弊端:因为是一个运算符,所有运算完必须要有一个结果。
d.条件表达式无论写成什么样子,只看最终的结构是否是true或者false。
2.选择结构:
(1).switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
......
default:
执行语句;
break;
}
(2).switch语句的特点:
a.switch语句选择的类型只有四种:byte short int char。
b.case之间与default没有顺序,先执行第一个case,没有匹配的case执行default。
c.结束switch语句的两种情况:遇到break,执行到switch语句结束。
d.如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执 行的语句,直到遇到break或者switch结尾结束。
e.if和switch语句很像。具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而是符合byte,short,int,char这四种类型,虽然两个语句都 可以使用,建议使用switch语句,因为效率稍高。其他情况下,对区间判断,对结果 为boolean类型判断,使用if,if的使用范围更广。
3.循环结构:
(1).while语句:
while(条件表达式)
{
(循环体)执行语句;
}
(2).do while语句:
do
{
执行条件;
}while(条件表达式);
(3).while和do while的区别:
while:先判断条件,只有条件满足才执行循环体。
do while:先执行循环体,再判断条件,条件满足,再继续执行循环体。简单一句话:do while无论条件是否满足,循环体至少执行一次。
(4).for语句:
for(初始化表达式;循环体条件表达式;循环后的操作表达式)
{执行语句;}
(5).for语句的特点:
a.for里面的连个表达式运作的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续循环判断循环条件,重复这个过程,直到条件不满足为止。
b.while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。如果需要定义循环增量,用for更为合适。
c.变量有自己的作用域,对于for来讲:如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效。for语句执行完毕,该变量在内存中被释放。
(6).总结:什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
(7).无线循环的最简单表现形式:
for(;;){}
while(true){}
(8).累加思想:
原理:通过变量记录住每次变化的结果,通过循环的形式,进行累加动作。
(9).计数器思想:
原理:通过一个变量记录住数据的状态变化,也许通过循环完成。
(10).练习题:
a.
b.
c.
(11).其他流程控制语句:
a.break语句:应用范围:选择结构和循环结构。
b.continue语句:应用于循环结构。
c.这两个语句离开应用范围,存在是没有意义的。
d.这两个语句单独存在下面都不可以有语句,因为执行不到。
e.continue语句是结束本次循环继续下次循环。
f.标号的出现,可以让这两个语句作用于指定的范围。