• 第2章 Java基础


    第2章 Java 基础

    Created on 2022/09/12 by wyq.

    2.1 标识符、关键字、注释

    1、标识符

    由字母、数字、下划线、$ 等组成,不能以数字开头。
    e.g.
    a_12
    $_ab

    2、关键字

    A、数据类型:int、long、short、float、double、byte、char、bollean、class、interface、enum
    B、流程控制:if、else、for、do、while、switch、case、default、break、continue、return、try、catch、finally
    C、修饰符:public、protected、private、final、void、static、abstract、native
    D、动作:import、package、throw、throws、extends、implements、this、supper、new、instanceof
    E、保留字:const、goto
    PS: 关键字不能作为标识符

    3、注释

    单行注释: // ...
    多行注释: /* ... */
    文档注释: /** ... */

    2.2 常量与变量

    1、常量

    指在程序的执行过程中其值始终保持不变的量;
    e.g. 常量的定义
    final double PI = 3.1415926;
    final float C1 = -125e-2f;
    转义字符: \n 、\r 、\ 、" 、\t
    PS:在定义常量时需要注意以下几点
    (1)在定义常量时就需要对其进行初始化;
    (2)final 不仅可以修饰基本数据类型的常量,还可以用来修饰对象的引用或方法;
    (3)常量名一般都大写。

    2、变量

    指在程序的执行过程中其值可以发生改变的量;
    e.g. 变量的定义
    int x = 25;
    x = 36;
    char c = 'A';

    2.3 Java数据类型及转换

    1、Java数据类型

    (1)、基本数据类型
    a、数值类型:整数类型(int、long、short、byte)、浮点类型(float、double)
    b、字符类型:char
    c、布尔类型:boolean(其值为true/false)
    (2)、引用类型
    a、类类型:class (e.g. String)
    b、接口类型:interface
    c、枚举类型:enum
    d、数组类型:[]、[][]

    2、基本数据类型的转换

    当所赋值的数值类型和被变量接收的数据类型不一致时, 就需要进行数据类型转换。
    (1)隐式转换(自动转换)
    s.t.
    A、两种数据类型彼此兼容;
    B、目标类型的取值范围大于源数据类型(低级类型数据转换为高级类型数据)
    数值类型的自动转换:byte->short->int->long->float->double
    字符类型的自动转换:char->int
    e.g. 下列表达式选项正确的为()
    A、int c = 25.5;
    B、float f = 12.5;
    C、int i = 'B';
    D、byte b = 25.2;
    (2)显示转换(强制转换)
    当两种数据类型不兼容时,或目标类型的取值范围小于源类型时,自动转换将无法进行,此时就需要进行强制转换。
    e.g.
    float x = (float) 65.2;

    2.4 运算符及表达式

    1、一元运算符:-(取负)、++、–
    2、二元运算符:+、-、*、/、%
    PS:
    ①对于*、/操作,如果两个操作数均为整型,结果也为整型;如果有一个操作数为浮点型结果则为浮点型;
    ②Java中,对于%操作,两个操作数可以为浮点型。
    3、赋值运算符:=、+=、-=、*=、/=、%=
    4、逻辑运算符:&、&&、|、||、!
    PS:
    ①&& 当第一个表达式为假则不再计算后面的表达式;|| 当第一个表达式为真则不再计算后面的表达式。
    ②短路与(&&)和短路或(||)可以采用最优的计算方式,从而提高程序的执行效率;
    5、关系运算符:>、<、>=、<=、==、!=
    6、位运算符:&、|、~、^、 <<、>>、>>>
    7、条件运算符: ? :
    e.g.
    int x=30, y=50;
    int z = x>y?x:y;
    8、运算符优先级
    教材P32
    添加括号()可以提高表达式的优先级;
    添加括号()可以提高表达式的可读性;

    2.5 Java 基本语句

    1、空语句 // 一个分号 “;”

    2、表达式语句

    3、复合语句 // { 语句块 }

    2.6 选择语句

    1、if语句

    2、if-else语句

    3、if-else if-else语句

    在这里插入图片描述

    4、switch语句

    在这里插入图片描述

    PS:
    a、switch后面表达式的值只能是 char/Character、byte/Byte、short/Short、int/Integer、String、enum
    b、8种基本数据类型对应的包装器类型:
    byte(Byte)、char(Character)、short(Short)、int(Integer)、long(Long)、float(Float)、double(Double)、boolean(Boolean)
    c、装箱和拆箱
    装箱:将基本数据类型转换为其对应的包装器类型(引用类型);
    拆箱:将包装器类型转换为其对应的基本数据类型。

    2.7 循环语句

    1、while语句

    while(条件表达式){循环体语句;}
    e.g. 计算 1+2+3+…+100;

    在这里插入图片描sd述

    2、do … while循环

    do{循环体语句;} while(条件表达式);
    e.g. 输出0到100之间所有的偶数;在这里插入图片描述
    PS: 对于do…while循环,不管条件表达式是否成立,循环体都会先执行一次,然后再去判断条件表达式是否成立,若成立循环体继续执行,若不成立循环结束。

    3、for循环

    for(表达式1;表达式2;表达式3){循环体语句;}
    e.g. 计算1-2+3-4+…+99-100 的值

    在这里插入图片描述

    PS: for循环后的3个表达式均可省略,e.g.
    若省略表达式1,则须在for语句前对控制变量进行初始化;
    若省略表达式2,须在循环体中判断循环条件是否满足,若不满足须通过break语句跳出循环;
    若省略表达式3,须在循环体中对控制变量进行自增或自减。在这里插入图片描述

    4、跳转语句

    • break语句,在循环中表示结束当前循环体;
    • continue语句,结束本次循环,根据条件表达式判断是否进行下次须循环。

    5、循环的嵌套

    e.g. 打印九九乘法表在这里插入图片描述

    6、循环的应用

    e.g. 计算 1!+2!+3!+…+20!

    在这里插入图片描述
    *2.8 递归

    递归是指方法自己调用自己。
    e.g. 计算 g(20)=1!+2!+3!+…+20!
    step1: f(x)=x!
    step2: g(n)=f(1)+f(2)+…+f(n)在这里插入图片描述

    2.9 字符、字符串、数值的输入输出

    1、单个字符的输入输出

    char c = (char)System.in.read();
    
    • 1
    e.g.

    在这里插入图片描述

    2、字符串的输入输出

    InputStreamReader is = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(is);
    String str = br.readLine();
    
    • 1
    • 2
    • 3
    e.g.

    在这里插入图片描述

    3、数值的输入输出

    Scanner sc = new Scanner(System.in);
    int i = sc.nextInt();
    double d = sc.nextDouble();
    String s = sc.next();
    
    • 1
    • 2
    • 3
    • 4
    e.g.

    在这里插入图片描述

  • 相关阅读:
    高性能 数据库连接池 HikariCP | HikariCP 配置详解
    2023 最新 PDF.js 在 Vue3 中的使用(长期更新)
    C++ 实现线程安全的map(OpenHarmony源码实现版)
    系统架构设计师-计算机网络
    Vue2.x - 标准化项目创建 + ESLint&Prettier设置 + VSCode插件推荐
    openssl升级
    C语言课程设计|学生成绩管理系统(含完整代码)
    SpringBoot利用jpa连接MySQL数据库
    并发bug之源(二)-有序性
    虚幻引擎:数据表格的C++常用API
  • 原文地址:https://blog.csdn.net/weixin_39954229/article/details/126824749