Java

特点及构成

  • Java特点
  1. 面向对象三大特点:继承,封装,多态高性能,分布式,多线程
    1. 继承
    2. 封装
    3. 多态
  2. 动态性:由反射实现
  3. 修饰符不强调先后顺序
  • JDK,JRE,JVM
  1. JDK:Java开发者工具
  2. JRE:Java运行环境
  3. JVM:Java虚拟机

运行过程

  • 编译与解释
    • 编译:对文件整体翻译为另一种语言(无执行,输出另一语言代码)
    • 解释:对文件逐句翻译并逐句执行(有执行,输出运行结果)
  • Java执行过程
    • 源文件(.java)➡JVM➡字节码(.class)➡类装载器➡字节码校验器➡解释器

        (                         编译                          )     (                    运行                   )

  • 编译:(CMD) javac 文件名.java (编译成 .class文件)
  • 运行:(CMD) java   文件名.class(运行并输出结果)

数据类型

  • 基本数据类型:byte,short,int,long,float,double,char,String,boolean
  • 引用数据类型:类,接口,数组
  • 进制类型:
    • 二进制:0b
    • 八进制:0
    • 十六进制:0x

运算符

  • 运算符
  1. a++(先赋值后+1)++a(先+1后赋值)
  2. 位运算
    • 与(&):全一为一
    • 或( | ):有一为一
    • 异或(^):同零异一
    • 取反(~)
    • <<(左移)>>(右移)
  3. 条件运算符
    • (" " + int + int)时后方变量当字符串处理                                               
    • (int + int + " ")时正常运算
  4. 三元运算符
    • x ? y :z( x 为 true 时,结果为 y ,反之为 z )

流程控制

  • 用户交互Scanner
  1. next():必须存在有效字符串,有效字符前空白自动去除,有效字符后空白做结束符
  2. nextLine():以回车为结束符
  • 选择结构
  1. if...else if...else if...else...
  2. switch(比较变量){

      case 变量值:

                           执行体;

                           break;

       case 变量值:

                           执行体;

                           break;

       ...

                    default:

                           执行体; }

  • 循环结构
  1. while(表达式){...} //表达式为true时执行,先判断后执行
  2. do{...}while(表达式) //表达式为true时执行,先执行后判断(至少执行一次)
  3. for(变量初始化;表达式;变量更新){...}
  4. 增强for循环 //用于遍历数组或集合

    for(int x : 变量){...}

  • 关键字
  1. break; //跳出当前循环,循环不再执行
  2. continue; //跳过某次循环,执行下次循环

方法/函数——执行一个功能的语句的集合

  • 实参:调用时传入参数                 

          形参:建造方法时所需外部传递参数

  • 值传递:实际参数复制一份传递到函数中,函数中参数和实际参数互不干扰

          引用传递:将实际参数的地址传入到函数中,函数中参数和实际参数为同一参数

  • 重载——同一类中,方法名相同,参数列表不同(参数类型,个数,排列顺序等)

          重写——子类重写父类,参数列表相同,执行体不同,访问权限不降

                         super用于在子类中调用父类的被重写方法

  • 可变参数
  1. 声明:参数类型... 参数名
  2. 规则:一个方法只能有一个,且必须做最后一个参数声明
  • 递归
  1. 递归头:表示什么时候结束递归
  2. 递归体:表示递归的具体执行方式
  3. 执行过程为栈结构