这里对java的知识体系做一个全域的介绍

java基础

我觉得可以有这样一个思路

就是psvm快捷键,

我们创造出一个java的可以执行的主方法。

那么在方法里写什么内容。

运行一段小的可执行的代码。

我们可以写数据类型,

基本数据类型

引用数据类型

然后是对数据去进行操作

数字类型的基本数据类型,

以及变量之间的运算符操作,赋值运算。

其中时间类型的数据

金额类型的数据

string类型的数据要额外处理

然后,对于运算的结果,

就是我们可以看到的效果,与我们交互的机制

就是:

可以铜锁sout以及log.info打印一下。

接下来就是if逻辑运算

if(){}

()里面的内容,可以涉及关系运算符,逻辑运算符。

或者三目运算符

这里指的注意的就是

switch case

中间,我们为了提高类的代码复用的效果,创造了方法这个概念。

类型,传参,返回值。方法体(也就是运算机制)

这里要注意的就是return这个关键字

方法里面,一定要有return,除非类型是void

这里还要讲一个概念。就是异常。

我们想一个场景,

如果想让这段程序,提高鲁棒性。

就要使用try catch把可能出现异常的代码,抓住,不影响,程序继续执行。

按着这个思路,javase相关的代码。就有一条明确的主线可以去学了。

这是一个非常棒的Java学习主线思路!你把Java SE的核心脉络梳理得很清晰:入口 → 数据 → 操作 → 输出 → 逻辑 → 复用 → 健壮性。这确实是很好的教学/学习路径。

我按照你的思路,整理一份完整可运行的代码示例,把每个知识点串联起来:

java 复制代码
package com.example.basic;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.logging.Logger;

/**
 * Java基础主线学习示例
 * 入口 -> 数据类型 -> 运算符 -> 输出 -> 逻辑判断 -> 方法 -> 异常处理
 */
public class JavaBasicMain {

    // 日志打印(另一种输出方式)
    private static final Logger log = Logger.getLogger(JavaBasicMain.class.getName());

    // psvm 快捷键入口
    public static void main(String[] args) {
        // ==================== 1. 数据类型 ====================
        dataTypeDemo();

        // ==================== 2. 运算符操作 ====================
        operatorDemo();

        // ==================== 3. 逻辑运算 if & switch ====================
        logicDemo();

        // ==================== 4. 方法调用 ====================
        int sum = add(10, 20);
        System.out.println("方法调用结果(10+20):" + sum);

        // ==================== 5. 异常处理(提高鲁棒性) ====================
        exceptionDemo();
    }

    // ==================== 1. 数据类型演示 ====================
    public static void dataTypeDemo() {
        System.out.println("========== 数据类型 ==========");

        // 基本数据类型
        byte b = 127;                // 1字节
        short s = 1000;              // 2字节
        int i = 100000;              // 4字节(最常用)
        long l = 9999999999L;        // 8字节,注意加L
        float f = 3.14f;             // 4字节,加f
        double d = 3.1415926535;     // 8字节
        char c = 'A';                // 2字节,单引号
        boolean flag = true;         // true/false

        System.out.println("byte: " + b);
        System.out.println("short: " + s);
        System.out.println("int: " + i);
        System.out.println("long: " + l);
        System.out.println("float: " + f);
        System.out.println("double: " + d);
        System.out.println("char: " + c);
        System.out.println("boolean: " + flag);

        // 引用数据类型
        // String(特殊引用类型,常用)
        String str = "Hello Java";
        System.out.println("String: " + str);

        // 时间类型(重要)
        LocalDate today = LocalDate.now();
        LocalDateTime now = LocalDateTime.now();
        System.out.println("日期: " + today);
        System.out.println("日期时间: " + now);
        System.out.println("格式化时间: " + now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));

        // 金额类型(重要:用BigDecimal,不用float/double)
        BigDecimal price1 = new BigDecimal("19.99");
        BigDecimal price2 = new BigDecimal("0.03");
        BigDecimal total = price1.add(price2);
        System.out.println("金额(BigDecimal): " + price1 + " + " + price2 + " = " + total);
        System.out.println();
    }

    // ==================== 2. 运算符演示 ====================
    public static void operatorDemo() {
        System.out.println("========== 运算符 ==========");

        int a = 10;
        int b = 3;

        // 算术运算符
        System.out.println("加法: " + (a + b));
        System.out.println("减法: " + (a - b));
        System.out.println("乘法: " + (a * b));
        System.out.println("除法: " + (a / b));      // 整数除法,结果3
        System.out.println("取模(余数): " + (a % b)); // 10 ÷ 3 余1

        // 赋值运算符
        int c = a;           // 基本赋值
        c += 5;              // 等价于 c = c + 5
        System.out.println("赋值后c: " + c);

        // 关系运算符(结果boolean)
        System.out.println("a > b: " + (a > b));
        System.out.println("a == b: " + (a == b));

        // 逻辑运算符
        boolean x = true;
        boolean y = false;
        System.out.println("x && y: " + (x && y));  // 与:全真才真
        System.out.println("x || y: " + (x || y));  // 或:有真则真
        System.out.println("!x: " + (!x));           // 非:取反

        System.out.println();
    }

    // ==================== 3. 逻辑判断 ====================
    public static void logicDemo() {
        System.out.println("========== 逻辑判断 ==========");

        int score = 85;

        // if-else
        if (score >= 90) {
            System.out.println("成绩: 优秀");
        } else if (score >= 60) {
            System.out.println("成绩: 及格");
        } else {
            System.out.println("成绩: 不及格");
        }

        // 关系运算符 + 逻辑运算符组合
        int age = 25;
        boolean hasCar = true;
        if (age >= 18 && hasCar) {
            System.out.println("成年且有车,可以自驾");
        }

        // 三目运算符(条件 ? 真值 : 假值)
        String result = (score >= 60) ? "通过" : "不通过";
        System.out.println("三目运算结果: " + result);

        // switch case(注意:要写break,否则会穿透)
        int day = 3;
        switch (day) {
            case 1:
                System.out.println("周一");
                break;
            case 2:
                System.out.println("周二");
                break;
            case 3:
                System.out.println("周三");
                break;
            default:
                System.out.println("其他天");
                break;
        }

        // Java 14+ 增强switch(更简洁,不用break)
        String dayType = switch (day) {
            case 1, 2, 3, 4, 5 -> "工作日";
            case 6, 7 -> "周末";
            default -> "未知";
        };
        System.out.println("增强switch: " + dayType);

        System.out.println();
    }

    // ==================== 4. 方法(代码复用) ====================
    // 有返回值、有参数的方法
    // 注意:非void类型,必须有return
    public static int add(int num1, int num2) {
        int sum = num1 + num2;
        return sum;   // return关键字:返回结果并结束方法
    }

    // void类型:无返回值,可以不写return(或者只写return;)
    public static void printMessage(String msg) {
        if (msg == null) {
            return;   // 提前结束方法
        }
        System.out.println("消息: " + msg);
    }

    // 方法重载(参数不同)
    public static double add(double num1, double num2) {
        return num1 + num2;
    }

    // ==================== 5. 异常处理(提高鲁棒性) ====================
    public static void exceptionDemo() {
        System.out.println("========== 异常处理(提高鲁棒性) ==========");

        // 场景:可能出现异常的代码,用try-catch抓住,程序不会崩溃
        String numberStr = "abc123";  // 这个不是合法数字

        try {
            // 这行代码可能抛出NumberFormatException
            int parsedNumber = Integer.parseInt(numberStr);
            System.out.println("转换结果: " + parsedNumber);
        } catch (NumberFormatException e) {
            // 异常被捕获,程序不会崩,可以友好提示或记录日志
            System.out.println("捕获到异常: 字符串无法转换为数字!");
            log.warning("转换失败: " + e.getMessage());

            // 可以给一个默认值,让程序继续
            int defaultNumber = 0;
            System.out.println("使用默认值: " + defaultNumber);
        }

        // 多个异常捕获
        try {
            int[] arr = {1, 2, 3};
            System.out.println(arr[10]);  // 数组越界
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("数组下标越界异常被捕获,程序继续执行");
        }

        // finally块:无论是否异常,都会执行
        try {
            System.out.println("执行正常代码...");
        } catch (Exception e) {
            System.out.println("不会进来");
        } finally {
            System.out.println("finally: 一定会执行(比如关闭资源)");
        }

        System.out.println("异常处理演示结束,程序正常走到这里!");
        System.out.println();
    }
}

思路总结成学习地图:

顺序 知识点 核心要点 代码体现
1 程序入口 psvm / main 方法 第11行
2 数据类型 8种基本类型 + 引用类型(String、时间、BigDecimal) dataTypeDemo()
3 运算符 算术、赋值、关系、逻辑 operatorDemo()
4 输出交互 System.out.println / log.info 分散在各方法
5 逻辑控制 ifswitch、三目运算符 logicDemo()
6 方法封装 返回值、参数、returnvoid add() 方法
7 异常处理 try-catch-finally 提高鲁棒性 exceptionDemo()
相关推荐
我还记得那天15 小时前
C语言递归实现汉诺塔问题
c语言·开发语言
不吃土豆的马铃薯15 小时前
Spdlog 入门:日志记录器与日志槽基础详解
服务器·开发语言·c++·c·日志·spdlog
AI瓦力15 小时前
技术分享 | 彻底解决图片“躺平”问题:Java 后端强制校准图片方向
java
武子康15 小时前
Java-219 RocketMQ Spring Boot 集成指南:生产者与消费者实战
java·spring boot·分布式·kafka·消息队列·rocketmq·java-rocketmq
凯瑟琳.奥古斯特15 小时前
传输层核心功能解析
开发语言·网络·职场和发展
我星期八休息15 小时前
Linux系统编程—库制作与原理
linux·运维·服务器·数据结构·人工智能·python·散列表
RainCityLucky16 小时前
Java Swing 自定义组件库分享(七)
java·笔记·后端
Cloud_Shy61816 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十二章 用户定义函数 上篇)
python·数据分析·excel·pandas
Fuyo_111916 小时前
C++中的活字印刷术——模板·初阶
开发语言·c++·笔记
小白|16 小时前
cmake:昇腾CANN构建系统完全指南
java·c++·算法