Java基础语法:从零开始构建你的第一个程序

Java作为一门经典且广泛应用的编程语言,以其“一次编写,到处运行”的特性(WORA)成为企业级开发、安卓应用、大数据处理等领域的核心语言。掌握Java基础语法是每一位开发者迈向高级编程的第一步。本文将系统梳理Java基础语法的核心内容,并通过示例代码帮助你快速上手。

目录

一、Java 基础语法

1.1 数据类型

基本数据类型(Primitive Data Types)

引用数据类型(Reference Data Types)

总结对比

 1.2 变量与常量

变量(Variable)

✅ 定义方式:

示例:

命名规范:

使用场景:

常量(Constant)

✅ 定义方式:

示例:

命名规范:

使用场景:

变量与常量的区别总结

1.3 运算符

算术运算符(Arithmetic Operators)

注意事项:

关系运算符(Relational Operators)

注意事项:

  逻辑运算符(Logical Operators)

短路特性(Short-Circuiting):

示例:

运算符优先级(简要说明)

✅ 总结对比

小贴士

1.4 流程控制语句


一、Java 基础语法

1.1 数据类型

Java 的数据类型分为基本数据类型引用数据类型

基本数据类型:包含数值型(byteshortintlongfloatdouble)、字符型(char)和布尔型(boolean)。

引用数据类型:包括类、接口、数组等。引用数据类型的变量存储的是对象的内存地址。例如:

public class DataTypeDemo {

    public static void main(String[] args) {
        //  基本数据类型(Primitive Data Types)
        byte age = 25;                // 8位整型
        short year = 2025;            // 16位整型
        int population = 1000000;     // 32位整型
        long distance = 123456789L;   // 64位整型(需加 L)

        float price = 9.99f;          // 32位浮点数(需加 f)
        double salary = 5000.50;      // 64位浮点数

        char grade = 'A';             // 字符型
        boolean isStudent = true;     // 布尔型

        // 输出基本数据类型的值
        System.out.println("基本数据类型示例:");
        System.out.println("年龄:" + age);
        System.out.println("年份:" + year);
        System.out.println("人口:" + population);
        System.out.println("距离:" + distance);
        System.out.println("价格:" + price);
        System.out.println("薪资:" + salary);
        System.out.println("成绩:" + grade);
        System.out.println("是否学生:" + isStudent);

        //  引用数据类型(Reference Data Types)
        String name = "Alice";        // 字符串(Java 内建类)
        int[] numbers = {1, 2, 3};    // 数组(引用类型)
        Person person = new Person(); // 自定义类的对象

        // 输出引用数据类型的值
        System.out.println("\n引用数据类型示例:");
        System.out.println("姓名:" + name);
        System.out.println("数组元素:" + numbers[0]);
        System.out.println("对象信息:" + person.toString());
    }
}

// 自定义类(引用类型)
class Person {
    private String name = "Bob";
    private int age = 30;

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }
}

//输出结果
基本数据类型示例:
年龄:25
年份:2025
人口:1000000
距离:123456789
价格:9.99
薪资:5000.5
成绩:A
是否学生:true

引用数据类型示例:
姓名:Alice
数组元素:1
对象信息:Person{name='Bob', age=30}

基本数据类型(Primitive Data Types)

类型 大小(字节) 范围/说明
byte 1 -128 ~ 127
short 2 -32768 ~ 32767
int 4 -2^31 ~ 2^31-1
long 8 -2^63 ~ 2^63-1(需加 L
float 4 32位浮点数(需加 f
double 8 64位浮点数(默认)
char 2 Unicode 字符(0 ~ 65535)
boolean 1 true 或 false

引用数据类型(Reference Data Types)

类型 示例 说明
类(Class) PersonString 自定义类或 Java 内置类
接口(Interface) ListMap 定义行为规范
数组(Array) int[]String[] 存储相同类型的数据集合
枚举(Enum) Day.MONDAY 定义固定集合的常量
字符串(String) "Hello" Java 内建类,属于引用类型

总结对比

特性 基本数据类型 引用数据类型
存储方式 栈内存(直接存储值) 栈内存保存引用地址,实际对象在堆内存
默认值 有默认值(如 int 默认 0) 默认值为 null
传递方式 值传递(复制值) 引用传递(传递地址)
可变性 不可变(如 int 可变(如 StringBuffer)或不可变(如 String
实例化 直接赋值 使用 new 关键字或常量池(如 String

 1.2 变量与常量

变量(Variable)

✅ 定义方式:
  • 变量是程序中存储数据的基本单元,其值在程序运行期间可以改变。
示例:
int age = 20;      // 整型变量
double temperature = 36.5;  // 浮点型变量
String name = "Alice";  // 字符串变量
命名规范:
  • 使用 驼峰命名法(CamelCase):如 userNamestudentAge
  • 首字母小写,后续单词首字母大写
使用场景:
  • 存储用户输入
  • 保存动态变化的数据(如计数器、状态值)
  • 临时变量用于计算

常量(Constant)

✅ 定义方式:
  • 使用 final 关键字声明,值一旦赋值就不能修改。
  • 常量命名通常使用 全大写字母 + 下划线(SNAKE_CASE)。
示例:
final int MAX_SPEED = 120;
final String COMPANY_NAME = "ABC Corp";
命名规范:
  • 全大写,单词间用下划线分隔:如 MAX_SPEEDPIDEFAULT_TIMEOUT
使用场景:
  • 表示固定值(如数学常数、配置参数)
  • 提高代码可读性与维护性
  • 避免魔法数字(Magic Number)问题

变量与常量的区别总结

特性 变量(Variable) 常量(Constant)
是否可变 否(使用 final 关键字)
声明方式 数据类型 变量名 = 值; final 数据类型 常量名 = 值;
命名规范 驼峰命名法(CamelCase) 全大写 + 下划线(SNAKE_CASE)
用途 存储动态变化的数据 存储固定不变的值
示例 int age = 20; final int MAX_SPEED = 120;
内存位置 栈(基本类型)、堆(引用类型) 常量池(如字符串)、静态区(类常量)

1.3 运算符

Java 支持算术运算符(+-*/%)、关系运算符(><==!=)、逻辑运算符(&&||!)等。例如:

public class OperatorExamples {

    public static void main(String[] args) {
        //  算术运算符(Arithmetic Operators)
        int a = 10;
        int b = 3;

        System.out.println("【算术运算符】");
        System.out.println("a + b = " + (a + b));  // 加法
        System.out.println("a - b = " + (a - b));  // 减法
        System.out.println("a * b = " + (a * b));  // 乘法
        System.out.println("a / b = " + (a / b));  // 除法(整数除法会截断小数部分)
        System.out.println("a % b = " + (a % b));  // 取模(余数)

        double c = 10.0;
        double d = 3.0;
        System.out.println("c / d = " + (c / d));  // 浮点数除法

        //  关系运算符(Relational Operators)
        System.out.println("\n【关系运算符】");
        System.out.println("a > b = " + (a > b));  // 大于
        System.out.println("a < b = " + (a < b));  // 小于
        System.out.println("a == b = " + (a == b));  // 等于
        System.out.println("a != b = " + (a != b));  // 不等于
        System.out.println("a >= b = " + (a >= b));  // 大于等于
        System.out.println("a <= b = " + (a <= b));  // 小于等于

        //  逻辑运算符(Logical Operators)
        System.out.println("\n【逻辑运算符】");
        boolean x = true;
        boolean y = false;

        System.out.println("x && y = " + (x && y));  // 与(AND):全真才为真
        System.out.println("x || y = " + (x || y));  // 或(OR):一真则为真
        System.out.println("!x = " + (!x));          // 非(NOT):取反

        // 逻辑运算符的短路特性演示
        int num = 5;
        if (num > 10 && someMethod()) {
            System.out.println("不会执行,num > 10 为 false,短路");
        }

        if (num < 10 || someMethod()) {
            System.out.println("不会执行,num < 10 为 true,短路");
        }
    }

    // 用于演示逻辑运算符的短路特性
    static boolean someMethod() {
        System.out.println("someMethod() 被调用");
        return true;
    }
}


//输出结果
【算术运算符】
a + b = 13
a - b = 7
a * b = 30
a / b = 3
a % b = 1
c / d = 3.3333333333333335

【关系运算符】
a > b = true
a < b = false
a == b = false
a != b = true
a >= b = true
a <= b = false

【逻辑运算符】
x && y = false
x || y = true
!x = false
不会执行,num < 10 为 true,短路

算术运算符(Arithmetic Operators)

运算符 说明 示例
+ 加法 a + b
- 减法 a - b
* 乘法 a * b
/ 除法 a / b(整数除法会截断小数)
% 取模(余数) a % b
注意事项:
  • 整数除法10 / 3 = 3(不保留小数)。

  • 浮点数除法10.0 / 3.0 ≈ 3.333...

  • 取模运算:正负号取决于被除数(如 -10 % 3 = -1)。

关系运算符(Relational Operators)

运算符 说明 示例
> 大于 a > b
< 小于 a < b
== 等于 a == b
!= 不等于 a != b
>= 大于等于 a >= b
<= 小于等于 a <= b
注意事项:
  • 只能用于基本数据类型(如 intdouble

  • 对象之间比较不能用 ==,应使用 .equals() 方法。

  • 返回值为布尔类型(true 或 false)。

  逻辑运算符(Logical Operators)

运算符 说明 示例 运算规则
&& 与(AND) x && y(全真才为真) 当且仅当xy均为true时,结果为true
否则结果为false
|| 或(OR) x || y(有真即为真) xy中至少一个为true时,结果为true
仅当xy均为false时,结果为false
! 非(NOT) !x(取反) xtrue,则结果为false
xfalse,则结果为true
短路特性(Short-Circuiting):
  • &&:如果第一个条件为 false,后面的条件不会执行(防止异常)。

  • ||:如果第一个条件为 true,后面的条件不会执行(提高效率)。

示例:
if (obj != null && obj.isValid()) { ... }  // 防止空指针异常

运算符优先级(简要说明)

Java 中运算符有优先级,例如:

  1. 算术运算符*/%) > 加减运算符

  2. 关系运算符><==) > 逻辑运算符

  3. 括号 () 可以改变优先级。

建议:在复杂表达式中使用括号提高可读性,例如:

boolean result = (a + b) > (c * d);  // 更清晰

✅ 总结对比

类型 包含运算符 用途
算术运算符 +-*/% 执行数学运算,支持整数、浮点数
关系运算符 ><==!=>=<= 比较两个值的大小或相等性,返回布尔值(true / false
逻辑运算符 &&||、! 用于组合多个条件进行逻辑判断,返回布尔值(true/false

小贴士

  • 避免混淆 = 和 ==

    • = 是赋值操作符,== 是比较操作符。

  • 使用括号明确逻辑顺序

    • 例如:(a > b) && (c < d)

  • 逻辑运算符的短路特性可用于优化和安全检查

    • 如防止空指针异常、减少无效计算。

1.4 流程控制语句

  • 条件语句if-elseswitchswitch语句适用于多分支判断,JDK 7 后支持String类型。

//if-else 语句
int score = 85;
if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 80) {
    System.out.println("良好");
} else if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}
// 输出:良好

//switch 语句
String season = "summer";
switch (season) {
    case "spring":
        System.out.println("春天来了");
        break;
    case "summer":
        System.out.println("夏天来了");
        break;
    case "autumn":
        System.out.println("秋天来了");
        break;
    case "winter":
        System.out.println("冬天来了");
        break;
    default:
        System.out.println("未知季节");
}
// 输出:夏天来了
  • 循环语句forwhiledo-whilefor循环常用于已知循环次数的场景,whiledo-while则适用于未知循环次数的情况,区别在于do-while至少执行一次循环体。

// for循环示例:打印 1 到 10 的数字
for (int i = 1; i <= 10; i++) {
    System.out.print(i + " ");
}
// 输出:1 2 3 4 5 6 7 8 9 10

//while循环示例
int count = 0;
while (count < 5) {
    System.out.println("当前计数:" + count);
    count++;
}
// 输出:
// 当前计数:0
// 当前计数:1
// 当前计数:2
// 当前计数:3
// 当前计数:4

//do-while循环示例
int number = 0;
do {
    System.out.println("请输入一个正整数:");
    // 假设用户输入的是 5
    number = 5;
} while (number <= 0);
// 输出:
// 请输入一个正整数:
语句类型 适用场景 是否必须执行一次
for 已知循环次数(如遍历数组)
while 未知循环次数,先判断再执行
do-while 未知循环次数,先执行一次再判断
if-else 条件分支判断(2~3个选项)
switch 多分支判断(4个以上选项,或使用 String)
  • 跳转语句break用于跳出当前循环或switch语句,continue用于跳过本次循环的剩余代码,直接进入下一次循环。

for (int i = 1; i <= 20; i++) {
    if (i > 10) {
        break;  // 超过10就停止循环
    }
    if (i % 2 == 0) {
        continue;  // 跳过偶数
    }
    System.out.print(i + " ");
}
// 输出:1 3 5 7 9
特性 break continue
作用 退出当前循环或 switch 跳过当前循环的剩余部分,继续下一次循环
使用位置 forwhiledo-whileswitch forwhiledo-while
是否终止循环
是否影响外层循环 否(除非使用标签)
常见用途 提前退出循环、避免无效操作 跳过特定条件、优化逻辑流程

通过第一章 Java 基础语法的学习,我们掌握了变量与常量的定义、运算符的使用规则、循环与条件判断的逻辑控制,以及线程同步和简单并发编程的基础概念。这些内容构成了 Java 编程的核心框架,为后续深入学习面向对象编程、集合框架、JVM 底层原理等打下了坚实基础。在实践中,我们应注重代码规范、逻辑清晰,并通过调试工具和异常处理机制提升程序健壮性。下一阶段可尝试结合小项目巩固所学,逐步探索更复杂的开发场景,迈向真正的 Java 开发之路。

您的支持是我持续创作的动力:

❤️ 点赞:如果这个项目对您有所启发,请多多点点赞支持一下
收藏:完整项目源码已开源,有需要收藏自取
关注:订阅我的专栏,不错过后续更多优质内容

你可能感兴趣的:(爪哇岛代码纪事,java,开发语言)