java 数据类型,运算符 分支语句 面试知识点总结与习题

一,数据类型
    1,基本数据类型有哪几个,每个占多少位?
    2,分别用8种基本类型定义一个变量?
    3,阐述标识符的命名规则?(四点)
       a,只能是字母,数字,下划线,和$
       b,数字不能开头
       c,见名知意
       d,不能是关键字
二,运算符
       算数运算符:+(加)  -(减)  *(乘)  /(除)   %(取余数)---(算数运算符分别举例测试)
       逻辑运算符:&(与)  |(或)   !(非)    ^(异或)    &&(短路与)    ||(短路或)--(列表格分别测试,我上课时候列的表格)
       比较运算符:==   !=  >   >=    <   <=
       单操作运算符(一个操作数):++   --  (分别测试++和--放在变量前后的效果)
       位运算符:>>(有符号右移)      <<(有符号左移)       >>>(无符号右移)  (了解就行)
       三目运算符:表达式?值1:值2   (自己举例测试,重要)
三,分支语句
    1,if(表达式){    }else{       }
    2,if(表达式){    }else if(表达式){     }else  if(表达式){        }...else{      }
    3,定义变量,并且给初始值
       switch(变量){//byte  short  int  char
          case 值1:{


             break;
          }
          case 值2:{


             break;
          }
          case 值3:{


             break;
          }
          .........
          default:{
            
             break;
          }


       } 
   
      练习:1,定义一个变量a,若a的值大于0则输出“正数”,
               其他情况输出“非正数”
            2,定义一个布尔类型的变量b,若b为真,则输出
              “真的”,否则输出“假的”
            3,成绩为90-100之间输出“优”,70-90输出“良”,
               60-70输出“及格”,0-60输出“不及格”,
               其他情况输出“非人类”
            4,定义float类型变量表示降雨量,
               若降雨量大于100ml则输出“暴雨”,
               50-100ml输出“大雨”,10-50ml输出“中雨”,
               0-10输出“小雨”,其余情况“没雨”
            5,定义int类型变量,若变量值为1 输出“男”,
               若值为2 输出“女”,若值为3 输出“女博士”,
               其他情况输出“未知”
            6,编写一个Java应用程序。用户从键盘输入一个
               1—9999之间的数,程序将判断这个数是几
               位数,并判断这个数是否是回文数。
               回文数是指将该数含有的数字逆序排列后得
               到的数和原数
               相同,例如12121、3223都是回文数。
四,循环语句
     1,for(初始值;终止条件;增量){




        }
        
     2, 初始值;
        while(终止条件){


           增量;
        }


     3,初始值;
        do{
 


             增量;
         }while(终止条件);(注意这个分号,别落下)


     练习:1,打印下列图形


              *
              **
              ***
              ****
              *****
        ----------分割线-------------------
              *****
              ****
              ***
              ** 
              *
        ----------分割线-------------------


              *****
               ****
                ***
                 **
                  *
         ----------分割线-------------------
                   *
                  **
                 ***
                ****
               *****
  
         ----------分割线-------------------


                   *
                  ***
                 *****
                *******
               *********


          ----------分割线-------------------
 
              *********
               *******
                *****
                 ***
                  *


          ----------分割线-------------------


                   *
                  ***
                 *****
                *******
                 *****
                  ***
                   *


          ----------分割线-------------------


                   *
                  * *
                 *   *
                *     *
                 *   *
                  * *
                   *


        2,打印九九乘法表
        3,求下列试子的值:1-1/2+1/3-1/4+1/5-1/6+......+1/99-1/100,并将结果输出
        4,一小和尚挑水,要把水缸装满,而且每次只能挑5升水,水缸能容纳80升水。
          问:小和尚要挑几次才能把水缸挑满?
        5,写一个程序判断-100到100的数是正负奇数还是正负偶数
        6,用while实现6的阶乘
        7,用do...while实现6的阶乘
        8,用for实现6的阶乘
       *9,编写程序解决百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,
           百钱买百鸡,求买鸡翁、鸡母、鸡雏各几何?
五,数组
     1,数组的定义(共三种方式)
    (1)type[] 变量名 = new type[数组中元素的个数];


       比如:int[] a = new int[6];
  
   (2)type变量名[] = new type[数组中元素的个数];


       比如:int a[] = new int[6];


    (3)type[] 变量名 = new type[]{逗号分隔的初始化值};


        其中new type[]部分可省略,所以又有两种:


        int[] a = {1,2,3,4};


        int[] a = new int[]{1,2,3,4};//后面方括号中不能加上数组长度 


     2,数组的赋值(两种方式)
     
      (1)定义数组时直接在等号后面赋值
           比如:int[] a = {1,2,3,4};
      (2)利用下标(索引)的方式赋值
           比如:int[] a = new int[3]; 
                 a[0] = 1;
                 a[1] = 2;
                 a[2] = 3;
    练习:分别用四种方式定义下面数组,并分别用以上两种方式赋值
     {7,5,8,2,4,9,0,9}
     {'a','哈','嘻','嘿','呵','2','f'}
     {“李文斌”,“李元童”,“刘耀华”,“孙东正”,“徐志鹏”,“白路”}


    3,数组中元素交换位置


       例如:交换数组int[] a = {1,2,3,4};下标0和3的元素的位置


             int b = a[0];
             a[0] = a[3];
             a[3] = a[0];


    4,数组的长度  int[] a = {1,3,2};   a.length的结果是3;


    5,对数组遍历输出for(int i=0;i<a.length;i++){System.out.print(a[i]);}


    6,数组相等的判定equals()


    7,数组的排序(介绍四种)


       //冒泡排序算法
public static int[] bubbleSort(int[] args){
        for(int i=0;i<args.length-1;i++){
                for(int j=i+1;j<args.length;j++){
                        if (args[i]>args[j]){
                                int temp=args[i];
                                args[i]=args[j];
                                args[j]=temp;
                        }
                }
        }
        return args;
     }
       //选择排序算法--假定下标为0的数最小
public static int[] selectSort(int[] args){
        for (int i=0;i<args.length-1 ;i++ ){
                int min=i;
                for (int j=i+1;j<args.length ;j++ ){
                        if (args[min]>args[j]){
                                min=j;
                        }
                }
                if (min!=i){
                int temp=args[i];
                args[i]=args[min];
                args[min]=temp;        
                }
        }
        return args;
}
      //插入排序算法
public static int[] insertSort(int[] args){
        for(int i=1;i<args.length;i++){
                for(int j=i;j>0;j--){
                        if (args[j]<args[j-1]){
                                int temp=args[j-1];
                                args[j-1]=args[j];
                                args[j]=temp;        
                        }else break;
                }
        }
        return args;
}
      //排序方法快速排序
public static int[] fastSort(int[] args){
Arrays.sort(args);
return args;
}
            


   扩展:1,数组在内存中的存储状态
         2,Arrays.sort()方法的底层代码(了解)
         3,判定给定元素是否在数组中
         4,数组的扩容
         5,增强for循环


     练习:1. 自定义一个整数数组,计算一个整数数组的平均值
           2. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标;如果
              不存在,则输出-1。
           3. 给定一个数组,输出数组中的最大值和最小值
           4. *给定一个数组,把这个数组中所有元素顺序进行颠倒。
           5. *数组的扩容。
           6. *数组的插入和删除
           7,*去除数组中重复元素
           8,二维数组的定义,赋值,读取
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值