黑马程序员技术交流社区

标题: 萌新初学知识总结 [打印本页]

作者: NamejavaEE    时间: 2018-10-7 20:58
标题: 萌新初学知识总结
自动转换举例:
public static void main(String[] args) {
    int i = 1;
    double d = 2.5;
    //int类型和double类型运算,结果是double类型
    //int类型会提升为double类型
    double e = d+i;
    System.out.println(e);
}


死循环: 也就是循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}。
所谓嵌套循环 ,是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数

ASCLL编码表举例:
public static void main(String[] args) {
  //字符类型变量
  char c = 'a';
  int i = 1;
  //字符类型和int类型计算
  System.out.println(c+i);//输出结果是98
}

java数据类型分类
基本数据类型 :包括  整数 、 浮点数 、 字符 、 布尔 。
引用数据类型 :包括  类 、 数组 、 接口

八大数据类型
字节型 byte 1个字节 -128~127
短整型 short 2个字节 -32768~32767
整型 int(默认) 4个字节 -231次方~2的31次方-1
长整型 long 8个字节 -2的63次方~2的63次方-1
单精度浮点数 float 4个字节 1.4013E-45~3.4028E+38
双精度浮点数 double(默认) 8个字节 4.9E-324~1.7977E+308
字符型 char 2个字节 0-65535
布尔类型 boolean 1个字节 true,false

算术运算符
+ 加法运算,字符串连接运算
- 减法运算
* 乘法运算
/ 除法运算
% 取模运算,两个数字相除取余数
++ 、 -- 自增自减运算

赋值运算符
= 等于号
+= 加等于
- = 减等于
*= 乘等于
/= 除等于
%= 取模等

比较运算符
== 比较符号两边数据是否相等,相等结果是true。
< 比较符号左边的数据是否小于右边的数据,如果小于结果是true。
> 比较符号左边的数据是否大于右边的数据,如果大于结果是true。
<= 比较符号左边的数据是否小于或者等于右边的数据,如果小于结果是true。
>= 比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是true。
! = 不等于符号 ,如果符号两边的数据不相等,结果是true。

逻辑运算符
&& 短路与
1. 两边都是true,结果是true
2. 一边是false,结果是false
短路特点:符号左边是false,右边不再运算
|| 短路或
1. 两边都是false,结果是false
2. 一边是true,结果是true
短路特点: 符号左边是true,右边不再运算
! 取反
1. ! true 结果是false
2. ! false结果是true

三元运算符
三元运算符格式:
三元运算符计算方式:
布尔类型表达式结果是 true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是 false,三元运算符整体结果为结果2,赋值给变量。
举例:
public static void main(String[] args) {
    int i = (1==2 ? 100 : 200);
    System.out.println(i);//200
    int j = (3<=4 ? 500 : 600);
    System.out.println(j);//500
}

判断语句--if
if 语句第一种格式: if
执行流程
首先判断关系表达式看其结果是 true还是false
如果是 true就执行语句体
如果是 false就不执行语句体
举例:
public static void main(String[] args){
    System.out.println("开始");
    // 定义两个变量
int a = 10;
    int b = 20;
    //变量使用if判断
    if (a == b){
       System.out.println("a等于b");  
    }
    int c = 10;
    if(a == c){
       System.out.println("a等于c");  
    }
    System.out.println("结束");


判断语句2--if...else
if 语句第二种格式: if...else
执行流程
首先判断关系表达式看其结果是 true还是false
如果是 true就执行语句体1
如果是 false就执行语句体2

判断语句3--if..else if...else
if 语句第三种格式: if...else if ...else
if (判断条件1) {
   执行语句1;  
} else if (判断条件2) {
   执行语句2;  
}
...
}else if (判断条件n) {
  执行语句n;   
} else {
   执行语句n+1;  
}
执行流程
首先判断关系表达式 1看其结果是true还是false
如果是 true就执行语句体1
如果是 false就继续判断关系表达式2看其结果是true还是false
如果是 true就执行语句体2
如果是 false就继续判断关系表达式…看其结果是true还是false

如果没有任何关系表达式为 true,就执行语句体n+1。

if 语句和三元运算符的互换
public static void main(String[] args) {
    int a = 10;
    int b = 20;
    //定义变量,保存a和b的较大值
    int c;
    if(a > b) {
       c = a;  
    } else {
       c = b;  
    }
    //可以上述功能改写为三元运算符形式
    c = a > b ? a:b;
}


选择语句--switch
switch 语句格式:
switch(表达式) {
  case 常量值1:
    语句体1;
    break;
  case 常量值2:
    语句体2;
    break;
  ...
  default:
    语句体n+1;
    break;
}
执行流程
首先计算出表达式的值
其次,和 case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结
束。
最后,如果所有的 case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运
行,直到遇到break,或者整体switch结束。


循环语句1--for
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③        
}
执行流程
执行顺序:①②③④ >②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况


循环语句2--while
初始化表达式①
  while(布尔表达式②){
    循环体③
    步进表达式④
}
执行顺序:①②③④ >②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。


循环语句3--do...while
初始化表达式①
    do{
    循环体③
    步进表达式④
}while(布尔表达式②);
执行流程
执行顺序:①③④ >②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况


跳出语句break
使用场景:终止 switch或者循环
在选择结构 switch语句中
在循环语句中
离开使用场景的存在是没有意义的
举例:
public static void main(String[] args) {
    for (int i = 1; i<=10; i++) {
        //需求:打印完两次HelloWorld之后结束循环
        if(i == 3){
          break;
        }
        System.out.println("HelloWorld"+i);
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2