美文网首页
Javaの语言基础【二】

Javaの语言基础【二】

作者: 耑意儿 | 来源:发表于2018-03-27 15:39 被阅读44次
    目录:
    1、运算符
    2、语句
    3、函数
    4、数组
    

    进击的小仙

    1. 运算符

    运算符按照操作数的个数可以分为:单目运算、双目运算、三目运算
    按照功能可以分为:逻辑运算符、位运算符、关系运算符、赋值运算符、算术运算符、其他。

    1.1、算术运算符

    • 单目运算: ~ (按位取反)、!(取非)、- (负号运算)、++ (自增)、-- (自减)
    • 双目运算: + - * / %(取余)
    • 三目运算:a > b ? true : false ;
      说明:当a大于b的时候,运算结果为true,否则结果为false。
      这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
    int x = 3 , y ;
    y = (x - 1 ) ? 100 : 200 ;
    若 x >1 则 y =100 ;
    好处:简化了 if ... else 代码
    弊端:运算完一定有一个结果,if ... else 不用
    

    1.2、关系运算符

    == (等于)、!=(不等于)、> (大于)、< (小于)、>=(大于等于)、<= (小于等于)

    1.3、位运算

    & (与)、| (或)、~ (非)、^ (异或)

    1011 & 1100 = 64
    先将数转换成二进制,与运算之后,转换回十进制。
    

    1.4、逻辑运算符

    && (双与)、|| (或)、 !(非)

    1.5、赋值运算

    = 、 += 、 -= 、 *= 、 /= 、 %= 、 &= 、 |= 、 <<= 、 >>=

    1.6、其他

    • instanceof 实例判断
    • 位移
      << (带符号左移)、>> (带符号右移)、>>>(无符号右移)、<<<(无符号左移)

    1、用最高效的方式算出2乘以8(位运算)
    2<<3
    2、不用第三个变量的情况下,对两个证书变量的值进行互换

    int n =3 ,m=8;
    n = n + m ; // 11 = 3 + 8
    m = n - m ; // 3 = 11 - 8 
    n = n -m ;  // 8 = 11 - 3
    

    2. 语句

    2.1、条件控制语句

    • if语句
    if (条件){
       条件成立执行的代码
    }
    
    • if ... else 语句
    if (条件){
       条件成立执行的代码
    }else{
       条件不成立执行的代码
    }
    
    • 多重if语句
    if(条件1){
      条件1成立时执行的代码
    }else if (条件2){
      条件2成立时执行的代码
    }else{
      条件1和条件2都不成立时执行的代码
    }
    
    • 嵌套if语句
    if(条件1){
       if (条件2){
          代码块1
       }else{
          代码块2
       }
    }else{
       代码块3
    }
    
    • switch语句
    switch (表达式){
      case 值1:
         代码块1;
         break;
      case 值2:
         代码块2;
         break;
      case 值n:
         代码块n;
         break;
      default:
          默认代码块;
    }
    注意:上面的表达式只接受四种数据类型:byte 、short 、 int 、 char,jdk1.7之后可以作用在String上
    

    2.2、循环控制语句

    • while语句
    while (条件判断){
        循环操作代码块
    }
    
    • do...while语句
    do{
        循环操作代码块
    }while(条件判断)
    与while语句不同的的是比他多执行一次循环操作代码块。
    
    • for语句
    for (循环变量初始化;循环条件;循环变化){
        循环操作代码块
    }
    注意:
    括号中的三个表达式都可以省略,但是分号不可以省略。
    1、循环变量初始化省略,可将循环变量的初始化放到循环语句上面
    2、循环条件省略会导致死循环,要注意
    3、循环变量的变化省略,可以将循环变量变化放到循环操作代码块里边。
    
    • 高级for循环
    for ( 变量数据类型 变量名 :遍历的对象){
        循环体
    }
    
    • for 与 while的不同之处
      需要定义循环增量的时候我们选择用for语句。
    • 最简单的无限循环表达:
      1、for ( ; ; ){ 循环代码块 } ;
      2、while (true) { 循环代码块 } ;
    • break 与 continue
      break是跳出循环体,continue是继续,就是结束当次循环进入下个循环。
      break语句:应用于 条件结构、循环结构
      continue语句:应用于 循环结构
      离开应用范围无意义;两个单独存在下方都不能有语句;加标号可以控制结束当次外循环操作,进入下一个循环。

    3. 函数

    3.1、主函数

    public static void main (String[] args) { }

    主函数时固定格式的,被虚拟机识别,而且只识别这个。
    public:表示该函数访问权限最大
    static:表示函数随着类的加载就存在
    void : 主函数无具体返回值类型
    main : 非关键字,但是可以被Jvm识别
    String[] args:函数的参数,一个字符串类型的数组,虚拟机调用主函数时,传入的参数是(new String[0])

    3.2、构造函数

    构造函数的作用是给对象初始化。
    分析事物时,该事物存在具备一些特性或行为,则将这些内容定义在构造函数中。
    构造函数在写法上与一般函数的不同之处在于:

    • 函数名与类名一致
    • 无返回值类型
    • 无需return语句

    一个类中多个构造函数之间以重载的形式出现。
    1、对象一建立即调用与之对应的构造函数,比如生活中,小孩一出生就会哭。
    2、若类没有定义构造函数,系统就会默认给该类加一个空参数的构造函数,如果有定义就没有默认的构造函数。
    3、构造函数和一般函数在运行上的不同在哪里?
    -- 构造函数:对象一建立就执行,对对象进行初始化。
    -- 一般函数:在调用的时候才执行,是给对象添加对象具备的功能。(比如,因而会吃饭,但并不是一直不停地在吃的。)
    4、一个对象建立,构造函数只运行一次,一般方法可以被对象调用多次。

    3.3、构造代码块

    构造代码块也是用来给对象进行初始化的。
    对象一建立就执行,且优先于构造函数执行
    构造代码块与构造函数的区别:
    1、构造代码块给所有对象进行初始化
    2、构造函数给对象初始化。

    3.4、函数的重载和重写

    • 重载
      重载是一个类中多态性的表现。
      1、参数类型、个数、顺序至少有一个不同
      2、不能重载只有返回值不同的方法名
      3、存在于父类和子类、同类中
    • 重写
      重写是子父类之间多态性的表型。
      1、方法名、参数、返回值相同
      2、子类方法不能缩小父类方法的访问权限
      3、子类方法不能抛出比父类方法更多的异常
      4、存在于父类和子类之间
      5、被final修饰的方法不能被重写

    4. 数组

    数组是同一类型数据的集合

    • 格式1:
    int[] arr = new int[5];
    
    • 格式2:
    int[] arr = new int[]{3,5,1,7};
    int[] arr = {3,5,1,7};
    

    数组的常见异常:空指针异常(NullPointerException),数组角标越界异常(ArrayIndexOutOfBoundsException)

    相关文章

      网友评论

          本文标题:Javaの语言基础【二】

          本文链接:https://www.haomeiwen.com/subject/zwajcftx.html