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 | 逻辑控制 | if、switch、三目运算符 |
logicDemo() |
| 6 | 方法封装 | 返回值、参数、return、void |
add() 方法 |
| 7 | 异常处理 | try-catch-finally 提高鲁棒性 |
exceptionDemo() |