java 基础 2

来源:互联网 发布:富士康java开发笔试题 编辑:程序博客网 时间:2024/05/22 03:22

一.分支结构

1、if语句:

(1) if(){

   }

(2) if(){

    }else{
    }
(3) if(表达式1){

        执行语句1

    }else if(表达式2){

        执行语句2

    }else if(表达式3){

        执行语句3

    }else{
        执行语句4

    }

2、switch
        switch(表达式){
            case 值1:
                语句体1;
                break;
            case 值2:
                语句体2
                break;
            ......
            default:
                break;

        }

3、if - else 和 switch - case 区别:
        (
1)适用场景不同:
            ①要判断区间范围时,用 if - else
            ②要判断单个的定值时,用 switch-case (值不多的时候 switch比if快,效率略高)
        (2)语句的表达式值类型不同:
           ① if(表达式) : boolean、 true、false
           ②switch(表达式) : byte、short、int、char、枚举、String


二.循环结构
1、while循环
    语句格式:
        初始化语句;
        while(判断条件语句){
            循环体语句;
            控制条件语句;//不一定要写 不写就死循环 没有跳出循环的可能性了
        }
2、do-while循环
    语句格式:
        初始化语句;
        do{
            循环体语句;
            控制条件语句;
        }while(判断条件语句);
3、for循环
    语句格式:
        for(初始化语句;判断条件语句;控制条件语句){
            循环体;
        }
4、for、while和do-while三种循环的异同点
        (1)do-while循环至少执行一次循环体
        (2)for循环和while循环的初始化变量的作用域不同 :
            for循环只在循环体内部可以使用
           ② while在方法体中可以继续使用


三.方法的重载
    概念:在同一个类中,方法名相同,参数列表不同、顺序不同,类型不同与返回值无关。

四.递归
    递归:由此及彼,以此类推,自己调用自己的过程
        两个步骤:
            1、给程序一个出口,当满足这一条件的时候,循环结束
            2、在符合条件的情况下,简化同性质的问题,调用自己,得到问题的答案
五.数组
   1、 数组就是用来存储同一种数据类型,定长的容器。数组是引用数据类型。
    2、数组的好处:
        (1)数组可以存储多个同类型数据
        (2)数组可以给这些数据从0开始编号,方便操作这些数据
    3、语法格式:
        (1)动态初始化:
            数据元素类型 [] 数组名 = new 数组元素类型 [数组中的元素个数];
                int [] x = new int[3];
       (2)静态初始化
            ①数组元素类型 [] 数组名 = new 数组元素类型[]{元素1,元素2....};
                int [] x = new int[]{20,30,40};
            ②数组元素类型 [] 数组名 = {元素1,元素2.....};
            注意:静态初始化[] 不写长度 会根据你元素的多少 给数组长度
    4、什么时候用静态初始化?什么时候用动态初始化?

         (1)当确定了元素内容,就用静态初始化.(静态初始化格式 new 数组元素类型[])
         (2)当确定了数组长度,不确定元素内容,用动态初始化

    5、遍历数组的两种方式
        (1)普通for循环
                for(int i=0;i<x.length;i++){ //i不只是循环条件 还是数组的角标 从0开始
                System.out.print(x[i]+" ");
                }
      (2)增强型or循环[ForEach循环]
              for(数组中元素的类型 变量 : 数组名){
                      数组中的元素类型 临时变量 = 变量;
              }
    (3)普通for循环增强型or循环区别:
           ①普通for循环的变量代表角标,在循环体中,可以获取角标 /元素,可以进行复杂的操作
           ②增强for循环的变量代表的是数组中的元素,不存在角标的意思
    6、数组的排序:
         排序也是比较 但是和求最值有些不同 从小到大排序 或者从大到小
       (1)选择排序
             选择一个位置 拿这个位置的值不断和其他位置的值进行比较
       (2)冒泡排序
                相邻两个元素 进行比较
       (3)快速排序
              ①设置起始点 、结束点和一个基准值
              将比基准值小的移动到左边,比基准值大的移动到右边
                  起始点    循环    右移
                 结束点    循环    左移
             让比 基准值小的范围扩大,让比基准值大的范围扩大
                 当起始点和结束点错开后,证明第一轮循环结束
                 递归去反复做
     7、数组角标的查找:
        (1)顺序查找
        (2)二分查找(折半查找
                前提:必须是有序数列,升序或降序都可以

                通过将待查找的元素与中间索引值对应的元素进行比较,

                若小于中间元素,去左边end = middle-1

                若大于中间元素,去右边 start = middle+1

                继续折半,直到当arr[middle] == 元素时就找到了,否则返回一个负数。
    




原创粉丝点击