Java6.23


文章目录

  • 前言
  • 一、自增自减与复合赋值运算符
    • 1. 自增/自减运算符 (`++`/`--`)
    • 2. 复合赋值运算符
    • 3. 关键特性
    • 4. 数值匹配练习
  • 二、逻辑运算符深度解析
    • 1. 运算符类型与使用场景
    • 2. 短路运算符(效率优化)
    • 3. 数字6验证练习
  • 三、三元运算符与优先级
    • 1. 三元运算符语法
    • 2. 正确使用示例
    • 3. 常见错误
    • 4. 运算符优先级
  • 四、流程控制语句精要
    • 1. if语句最佳实践
    • 2. 多分支结构
    • 3. switch语句详解
      • 关键特性:
  • 总结


前言

学习策略:

  1. 根据简历查漏补缺,针对性学习
  2. 通过技术写作提升面试竞争力
  3. 循序渐进,夯实基础

一、自增自减与复合赋值运算符

1. 自增/自减运算符 (++/--)

  • 核心特性: 无论前置(++i)还是后置(i++),当单独作为语句使用时效果相同
  • 示例对比:
    int a = 5;
    a++;  // a = 6
    ++a;  // a = 7 (单独使用效果相同)
    

2. 复合赋值运算符

  • 语法格式: 变量 op= 表达式 → 等价于 变量 = (类型)(变量 op 表达式)
  • 常见类型:
    a += b;  // a = a + b
    a -= b;  // a = a - b
    a *= b;  // a = a * b
    a /= b;  // a = a / b
    

3. 关键特性

  1. 隐式类型转换: 复合赋值运算符自动处理类型转换

    byte b = 10;
    b += 5;    // 自动转换:b = (byte)(b + 5)
    // b = b + 5; // 错误:需要强制转换
    
  2. 关系运算符: 所有关系运算(>, <, ==等)结果均为boolean类型

4. 数值匹配练习

import java.util.Scanner;

public class NumberComparator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("请输入第一个整数:");
        int num1 = scanner.nextInt();
        
        System.out.print("请输入第二个整数:");
        int num2 = scanner.nextInt();
        
        // 使用三元运算符简化判断
        System.out.println(num1 == num2 ? "两个数相等" : "两个数不相等");
    }
}

二、逻辑运算符深度解析

1. 运算符类型与使用场景

运算符 名称 使用场景 记忆技巧
& 逻辑与 需同时满足多个条件(登录验证) "并且"关系
| 逻辑或 满足任一条件即可 "或者"关系
^ 异或 条件互斥(不能同时为真) “结婚登记”(不同为真)
! 逻辑非 取反操作 "非"关系

2. 短路运算符(效率优化)

  • &&(短路与):左操作数为false时,不再计算右侧
  • ||(短路或):左操作数为true时,不再计算右侧
  • 优势: 避免不必要的计算,提升程序效率

3. 数字6验证练习

import java.util.Scanner;

public class SixValidator {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入第一个整数:");
        int a = sc.nextInt();
        
        System.out.print("请输入第二个整数:");
        int b = sc.nextInt();
        
        // 使用布尔表达式直接输出结果
        System.out.println(a == 6 || b == 6 || (a + b) % 6 == 0);
    }
}

三、三元运算符与优先级

1. 三元运算符语法

  • 格式: 条件表达式 ? 表达式1 : 表达式2
  • 执行逻辑: 条件为真返回表达式1,否则返回表达式2

2. 正确使用示例

// 正确用法:直接赋值给变量
int max = (a > b) ? a : b;

// 查找三个数中的最大值
int maxValue = (num1 > num2) ? 
               ((num1 > num3) ? num1 : num3) : 
               ((num2 > num3) ? num2 : num3);

3. 常见错误

// 错误:三元结果未妥善处理
a > b ? c = a : c = b;  // 编译错误

// 正确修正
c = a > b ? a : b;      // 推荐写法

4. 运算符优先级

优先级 运算符
最高 () 括号
!++-- 一元运算符
*/% 算术运算符
+-
><== 关系运算符
&&|| 逻辑运算符
?: 三元运算符
最低 = 赋值运算符

黄金法则: 不确定优先级时使用()明确计算顺序


四、流程控制语句精要

1. if语句最佳实践

// 推荐写法:括号紧随条件
if (isValid) { 
    // 即使单行语句也使用大括号
    executeOperation(); 
} 

// 避免:省略大括号(易引发错误)
if (flag) doSomething();  // 不推荐

// 布尔判断优化
boolean isReady = true;
if (isReady) { ... }      // 优于 if (isReady == true)

2. 多分支结构

// 标准else-if结构
if (score >= 90) {
    grade = 'A';
} else if (score >= 80) {
    grade = 'B';
} else {
    grade = 'C';
}

3. switch语句详解

switch (expression) {
    case value1: 
        // 代码块1
        break;  // 防止穿透
    case value2:
        // 代码块2
        break;
    default:    // 建议始终包含default
        // 默认处理
}

关键特性:

  1. default位置: 可放置任意位置(通常置于末尾)
  2. case穿透: 缺少break时会继续执行后续case
    int code = 1;
    switch(code) {
        case 1: System.out.println("Code 1"); // 无break →
        case 2: System.out.println("Code 2"); // 会继续执行
        default: System.out.println("Other");
    }
    // 输出:Code 1 → Code 2 → Other
    
  3. JDK12+新特性: 箭头语法简化代码
    switch(day) {
        case MONDAY, FRIDAY -> System.out.println("Weekday");
        case SATURDAY, SUNDAY -> System.out.println("Weekend");
    }
    

总结

核心概念 要点总结
自增/自减 单独使用时前置/后置效果相同
复合赋值 自动处理类型转换(+=等)
逻辑运算符 区分&&&(短路特性提升效率)
三元运算符 条件 ? 结果1 : 结果2(注意结果接收方式)
流程控制 if语句使用完整括号;switch注意break防穿透;布尔判断直接使用变量
最佳实践 始终使用大括号;default处理意外情况;复杂表达式用括号明确优先级

你可能感兴趣的:(java基础知识,java)