Java的语言特点

  • 面向对象(贴近人类思维模式,模拟现实世界,解决现实问题)。
  • 简单性(自动内存管理机制、不易造成内存溢出;简化流程处理、语义清晰)
  • 跨平台(操作系统、服务器等)。

Java的执行机制

先编译、再解释:

  • 将源文件编译成字节码文件(平台中立文件.class),再将字节码文件进行解释执行。
  • Java的设计理念: Write Once Run Anywhere

JVM JRE JVM的关系

  • JVM (Java Virtual Machine)虚拟机:
    • 使用软件在不同操作系统中,模拟相同的环境。
  • JRE (Java Runtime Environment)运行环境:
    • 包含JVM和解释器,完整的Java运行环境。
  • JDK (Java Development Kit)开发环境:
    • 包含JRE+类库+开发工具包(编译器+调试工具)。

DOS命令窗口中,Java编译运行、带包编译及其生成说明文档 命令

  • 编译
    • javac 类名.java
  • 运行
    • java 类名
  • 带包编译
    • javac -d . 类名.java
  • 生成说明文档
    • javadoc -d . 类名.java

Java编码规范-标识符命名

  • 语法规定:
    • 可以由:字母、数字、_、$组成,但不能以数字开头。
    • 不能与关键字、保留字重名。
  • 约定俗成:
    • 望文生义、见名知义。
    • 类名由一个或多个单词组成,每个单词首字母大写(pascal)。
    • 函数名、变量名由一个或多个单词组成,首单词首字母小写,拼接词首字母大写(camel)。
    • 包名全小写,只可以使用特殊字符“.”,并且不以“.”开头或结尾。
    • 常量全大写,多个单词用_连接。

Java变量

变量的组成

  • 数据类型
  • 变量名

变量定义的三种方式

  • 先声明,再赋值:【常用】
    • 数据类型 变量名;
    • 变量名=值;
  • 声明并赋值:【常用】
    • 数据类型 变量名=值;
  • 多个同类型变量的声明与赋值:【了解】
    • 数据类型 变量1,变量2,变量3=值3,变量4,变量5=值5;

Java八大数据类型

byte short int long float double char boolean

Java类型转换

自动类型转换(由小向大)

  • 两种类型相互兼容。
  • 目标类型大于源类型。

强制类型转换(由大向小)

  • 两种类型相互兼容。

  • 目标类型小于源类型。

    • 案例:
      double a = 100.0d;
      int b = (int)a;
  • 强制类型转换规则:

    • 整数长度足够,数据完整。
      • 例: int i = 100; byte b = (byte)i; //b = 100
    • 整数长度不够,数据截断。
      • 例:int i = 10000;byte b = (byte)i; //b = 16(符号位变化,可能变为负数)
    • 小数强转整数,数据截断。
      • 例:double d = 2.5;int i = (int)d; //i = 2(小数位舍掉)
    • 字符整数互转,数据完整。
      • 字符整数互转,数据完整。//i = 65
    • boolean的取值为true/false,不可与其他类型转换。

Java自动类型提升

  • 进行算数运算时:
    • 两个操作数有一个为double,计算结果提升为double。
    • 如果操作数中没有double,有一个为float,计算结果提升为float。
    • 如果操作数中没有float,有一个为long,计算结果提升为long。
    • 如果操作数中没有long,有一个为int,计算结果提升为int。
    • 如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。
  • 特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String.

Java嵌套if选择结构

image.png

Java分支结构

image.png

局部变量

  • 概念:声明在方法内部的变量,必须先赋值再使用。
  • 作用范围:定义行开始到所在的代码块结束。
  • 注意:多个变量,在重合的作用范围内,不可出现重名(命名冲突)。

循环结构

while循环

  • 语法:
    while(布尔表达式){
    //逻辑代码(循环操作)
    }
  • 执行流程:
    • 先对布尔表达式进行判断,结果为true,则执行逻辑代码。
    • 本次执行完毕后,再次进行判断,结果仍旧为true,则再次执行逻辑代码。。直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
  • while循环的组成:
    image.png
  • while循环的初始于迭代:
    image.png
  • while的特点:
    • 首次即有入口条件,先判断、再执行,适用于循环次数明确的情况。

do while循环

  • 语法:
    do{
    逻辑代码(循环操作)
    }while(布尔表达式);
  • 执行流程:
    • 先执行一次循环操作之后,再进行布尔表达式的判断。
    • 如果结果为true,则再次执行循环操作。
    • 如果结果为false,才会退出循环结构,执行后续代码。
  • do while的特点:
    • 首次没有入口条件,先执行,再判断。(循环体至少执行一次)
  • do while的应用场景:
    image.png

for循环

  • 语法:
    for(初始部分;循环条件;迭代部分){
    //循环操作
    }
  • 执行流程:
    • 首次执行初始部分(仅一次)。
    • 对布尔表达式进行判断,结果为true,则执行逻辑代码。
    • 本次执行完毕后,执行迭代部分,再次判断,结果仍旧为true,则再次执行逻辑代码。
    • 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
  • for的特点:
    image.png
    首次即有入口条件,先判断、再执行,适用于循环次数明确的情况。

流程控制

  • break:终止、跳出switch、循环结构。
  • continue:结束本次、进入下一次循环。

嵌套循环

  • 概念:在一个完整的循环结构中,嵌套另一个完整的循环结构。
  • 需求:打印3行5颗星。
    image.png

Q.E.D.


如人饮水、冷暖自知