首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >《Java程序设计》第2章-Java语言基础

《Java程序设计》第2章-Java语言基础

作者头像
啊阿狸不会拉杆
发布2026-01-21 13:37:42
发布2026-01-21 13:37:42
920
举报

引言

        Java作为一门面向对象的编程语言,其基础语法是构建复杂应用的基石。本章将系统讲解Java语言基础,包括简单程序开发、数据类型、运算符和类型转换等核心内容。每个知识点都配有完整可运行的代码示例,帮助读者深入理解。

本章内容的思维导图概览

2.1 简单程序的开发

2.1.1 从键盘读取数据

Java中使用Scanner类获取用户输入:

代码语言:javascript
复制
import java.util.Scanner;

public class KeyboardInput {
    public static void main(String[] args) {
        // 创建Scanner对象
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("请输入您的姓名: ");
        String name = scanner.nextLine(); // 读取字符串
        
        System.out.print("请输入您的年龄: ");
        int age = scanner.nextInt(); // 读取整数
        
        System.out.println("\n--- 用户信息 ---");
        System.out.println("姓名: " + name);
        System.out.println("年龄: " + age);
        
        scanner.close(); // 关闭Scanner
    }
}
代码语言:javascript
复制
2.1.2 变量与赋值

变量是存储数据的基本单元:

代码语言:javascript
复制
public class VariablesDemo {
    public static void main(String[] args) {
        // 变量声明与赋值
        int score = 95; // 整型变量
        double price = 19.99; // 双精度浮点
        char grade = 'A'; // 字符
        boolean isPassed = true; // 布尔
        
        // 变量重新赋值
        score = 100;
        
        // 同时声明多个变量
        int x = 5, y = 10, z = 15;
        
        System.out.println("成绩: " + score);
        System.out.println("价格: " + price);
        System.out.println("等级: " + grade);
        System.out.println("是否通过: " + isPassed);
    }
}
代码语言:javascript
复制
2.1.3 Java标识符

标识符命名规则:

  • 以字母、$或_开头
  • 后续可以是字母、数字、$或_
  • 区分大小写
  • 不能使用关键字
代码语言:javascript
复制
public class Identifiers {
    public static void main(String[] args) {
        // 有效标识符
        int userAge = 25;
        double $salary = 5000.50;
        String _firstName = "张";
        
        // 无效标识符(编译错误)
        // int 2ndValue = 10; // 不能以数字开头
        // double my-salary = 4000; // 不能包含减号
        
        System.out.println("用户年龄: " + userAge);
    }
}
代码语言:javascript
复制
2.1.4 Java关键字

Java保留的关键字不能用作标识符:

代码语言:javascript
复制
public class Keywords {
    public static void main(String[] args) {
        // 常见关键字示例
        int count = 10; // int是关键字
        boolean flag = false; // boolean是关键字
        double value = 3.14; // double是关键字
        
        // 错误用法示例(编译错误)
        // int int = 5; // 不能使用关键字作为变量名
        
        System.out.println("计数: " + count);
    }
}
代码语言:javascript
复制

2.2 数据类型

2.2.1 数据类型概述

Java数据类型分为两大类:

  • 基本类型:直接存储值
  • 引用类型:存储对象的引用

下面是数据类型关系的类图:

代码语言:javascript
复制
@startuml
title Java数据类型体系
class DataType {
  + 分类
}

class PrimitiveType {
  + byte
  + short
  + int
  + long
  + float
  + double
  + char
  + boolean
}

class ReferenceType {
  + String
  + 数组
  + 类
  + 接口
}

DataType <|-- PrimitiveType
DataType <|-- ReferenceType
@enduml
2.2.2 字面值和常量
代码语言:javascript
复制
public class LiteralsConstants {
    public static void main(String[] args) {
        // 整数字面值
        int decimal = 100; // 十进制
        int octal = 0144; // 八进制
        int hex = 0x64; // 十六进制
        int binary = 0b1100100; // 二进制
        
        // 浮点字面值
        double price = 19.99; // 标准形式
        double scientific = 1.23e5; // 科学计数法(1.23×10⁵)
        
        // 字符字面值
        char letter = 'A';
        char unicodeChar = '\u0041'; // Unicode字符'A'
        
        // 字符串字面值
        String message = "Hello Java!";
        
        // 常量(使用final关键字)
        final double PI = 3.14159;
        // PI = 3.14; // 错误!常量不可修改
        
        System.out.println("二进制字面值: " + binary);
        System.out.println("科学计数法: " + scientific);
        System.out.println("Unicode字符: " + unicodeChar);
        System.out.println("常量PI: " + PI);
    }
}
代码语言:javascript
复制
2.2.3 整数类型
代码语言:javascript
复制
public class IntegerTypes {
    public static void main(String[] args) {
        // 4种整数类型
        byte b = 127; // 1字节, -128~127
        short s = 32767; // 2字节, -32768~32767
        int i = 2147483647; // 4字节, -2³¹~2³¹-1
        long l = 9223372036854775807L; // 8字节, 结尾加L
        
        System.out.println("byte最大值: " + Byte.MAX_VALUE);
        System.out.println("short最大值: " + Short.MAX_VALUE);
        System.out.println("int最大值: " + Integer.MAX_VALUE);
        System.out.println("long最大值: " + Long.MAX_VALUE);
        
        // 数值溢出示例
        int maxInt = Integer.MAX_VALUE;
        System.out.println("int溢出: " + (maxInt + 1)); // 输出最小值
    }
}
代码语言:javascript
复制
2.2.4 浮点类型
代码语言:javascript
复制
public class FloatingPointTypes {
    public static void main(String[] args) {
        // 两种浮点类型
        float f = 3.14159f; // 4字节, 结尾加f
        double d = 3.141592653589793; // 8字节
        
        // 特殊浮点值
        double positiveInfinity = Double.POSITIVE_INFINITY;
        double negativeInfinity = Double.NEGATIVE_INFINITY;
        double nan = Double.NaN; // 非数字
        
        System.out.println("float值: " + f);
        System.out.println("double值: " + d);
        System.out.println("正无穷大: " + positiveInfinity);
        System.out.println("负无穷大: " + negativeInfinity);
        System.out.println("非数字: " + nan);
        
        // 浮点精度问题
        System.out.println("0.1 + 0.2 = " + (0.1 + 0.2)); // 0.30000000000000004
    }
}
代码语言:javascript
复制
2.2.5 字符类型
代码语言:javascript
复制
public class CharType {
    public static void main(String[] args) {
        // 字符表示
        char c1 = 'A'; // 单字符
        char c2 = 65; // ASCII值
        char c3 = '\u0041'; // Unicode
        
        // 转义字符
        char newline = '\n';
        char tab = '\t';
        char backslash = '\\';
        
        System.out.println("字符表示: " + c1 + ", " + c2 + ", " + c3);
        System.out.println("转义字符示例: Hello" + newline + tab + "World!");
        System.out.println("反斜杠: " + backslash);
    }
}
代码语言:javascript
复制
2.2.6 布尔类型
代码语言:javascript
复制
public class BooleanType {
    public static void main(String[] args) {
        boolean isJavaFun = true;
        boolean isFishTasty = false;
        
        System.out.println("Java有趣吗? " + isJavaFun);
        System.out.println("鱼好吃吗? " + isFishTasty);
        
        // 布尔表达式
        int x = 10, y = 20;
        boolean result = (x > y);
        System.out.println("x > y 吗? " + result);
    }
}
代码语言:javascript
复制
2.2.7 字符串类型
代码语言:javascript
复制
public class StringType {
    public static void main(String[] args) {
        // 创建字符串
        String s1 = "Hello";
        String s2 = new String("World");
        
        // 字符串操作
        String combined = s1 + " " + s2; // 连接
        int length = combined.length(); // 长度
        char firstChar = combined.charAt(0); // 获取字符
        String upper = combined.toUpperCase(); // 转大写
        
        System.out.println("连接结果: " + combined);
        System.out.println("字符串长度: " + length);
        System.out.println("第一个字符: " + firstChar);
        System.out.println("大写形式: " + upper);
        
        // 字符串不可变性
        String original = "Java";
        original.toUpperCase(); // 创建新字符串
        System.out.println("原始字符串: " + original); // 输出"Java"
    }
}
代码语言:javascript
复制

2.3 运算符

2.3.1 算术运算符
代码语言:javascript
复制
public class ArithmeticOperators {
    public static void main(String[] args) {
        int a = 10, b = 3;
        
        System.out.println("a + b = " + (a + b)); // 13
        System.out.println("a - b = " + (a - b)); // 7
        System.out.println("a * b = " + (a * b)); // 30
        System.out.println("a / b = " + (a / b)); // 3 (整数除法)
        System.out.println("a % b = " + (a % b)); // 1 (取余)
        
        // 自增自减
        int c = 5;
        System.out.println("c++ = " + c++); // 5 (后置)
        System.out.println("++c = " + ++c); // 7 (前置)
    }
}
代码语言:javascript
复制
2.3.2 关系运算符
代码语言:javascript
复制
public class RelationalOperators {
    public static void main(String[] args) {
        int x = 10, y = 20;
        
        System.out.println("x > y: " + (x > y)); // false
        System.out.println("x < y: " + (x < y)); // true
        System.out.println("x >= 10: " + (x >= 10)); // true
        System.out.println("y <= 20: " + (y <= 20)); // true
        System.out.println("x == 10: " + (x == 10)); // true
        System.out.println("x != 10: " + (x != 10)); // false
    }
}
代码语言:javascript
复制
2.3.3 逻辑运算符
代码语言:javascript
复制
public class LogicalOperators {
    public static void main(String[] args) {
        boolean a = true, b = false;
        
        System.out.println("a && b: " + (a && b)); // false (与)
        System.out.println("a || b: " + (a || b)); // true (或)
        System.out.println("!a: " + (!a)); // false (非)
        
        // 短路特性演示
        int x = 5, y = 10;
        boolean result = (x > 10) && (y++ > 0); // 第一个条件为false,第二个不执行
        System.out.println("y的值: " + y); // 10 (未改变)
    }
}
代码语言:javascript
复制
2.3.4 赋值运算符
代码语言:javascript
复制
public class AssignmentOperators {
    public static void main(String[] args) {
        int num = 10;
        
        num += 5; // 等同于 num = num + 5
        System.out.println("+= : " + num); // 15
        
        num -= 3; // 等同于 num = num - 3
        System.out.println("-= : " + num); // 12
        
        num *= 2; // 等同于 num = num * 2
        System.out.println("*= : " + num); // 24
        
        num /= 4; // 等同于 num = num / 4
        System.out.println("/= : " + num); // 6
        
        num %= 4; // 等同于 num = num % 4
        System.out.println("%= : " + num); // 2
    }
}
代码语言:javascript
复制
2.3.5 位运算符
代码语言:javascript
复制
public class BitwiseOperators {
    public static void main(String[] args) {
        int a = 5; // 二进制: 0101
        int b = 3; // 二进制: 0011
        
        System.out.println("a & b: " + (a & b)); // 0001 = 1 (按位与)
        System.out.println("a | b: " + (a | b)); // 0111 = 7 (按位或)
        System.out.println("a ^ b: " + (a ^ b)); // 0110 = 6 (按位异或)
        System.out.println("~a: " + (~a)); // 1010 = -6 (按位取反)
        System.out.println("a << 1: " + (a << 1)); // 1010 = 10 (左移)
        System.out.println("a >> 1: " + (a >> 1)); // 0010 = 2 (带符号右移)
        System.out.println("a >>> 1: " + (a >>> 1)); // 0010 = 2 (无符号右移)
    }
}
代码语言:javascript
复制
2.3.6 运算符的优先级和结合性

运算符优先级从高到低:

优先级

运算符

结合性

最高

()、[]、.

左到右

!、~、++、--、+、-

右到左

*、/、%

左到右

+、-

左到右

<<、>>、>>>

左到右

<、<=、>、>=、instanceof

左到右

==、!=

左到右

&

左到右

^

左到右

|

左到右

&&

左到右

||

左到右

?:

右到左

=、+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=、>>>=

右到左

代码语言:javascript
复制
public class OperatorPrecedence {
    public static void main(String[] args) {
        int result = 5 + 2 * 3; // 乘法优先于加法
        System.out.println("5 + 2 * 3 = " + result); // 11
        
        boolean logical = true || false && false; // &&优先于||
        System.out.println("true || false && false = " + logical); // true
    }
}

2.4 数据类型转换

2.4.1 自动类型转换
代码语言:javascript
复制
public class AutoConversion {
    public static void main(String[] args) {
        // 小类型转大类型:自动转换
        int intVal = 100;
        long longVal = intVal; // int自动转long
        double doubleVal = longVal; // long自动转double
        
        System.out.println("int转long: " + longVal);
        System.out.println("long转double: " + doubleVal);
        
        // 表达式中的自动转换
        double result = 10 + 20.5; // int自动转double
        System.out.println("表达式转换: " + result); // 30.5
    }
}
代码语言:javascript
复制
2.4.2 强制类型转换
代码语言:javascript
复制
public class CastingConversion {
    public static void main(String[] args) {
        // 大类型转小类型:需要强制转换
        double doubleVal = 10.5;
        int intVal = (int) doubleVal; // 强制转换,丢失小数部分
        
        System.out.println("double转int: " + intVal); // 10
        
        // 整数类型强制转换
        int bigNum = 200;
        byte smallByte = (byte) bigNum; // 强制转换,可能溢出
        
        System.out.println("int转byte: " + smallByte); // -56 (溢出结果)
        
        // 字符与整数转换
        char ch = 'A';
        int charCode = (int) ch;
        System.out.println("字符'A'的ASCII: " + charCode); // 65
    }
}
代码语言:javascript
复制
2.4.3 表达式中类型自动提升
代码语言:javascript
复制
public class ExpressionPromotion {
    public static void main(String[] args) {
        // 表达式中的类型提升
        byte b = 10;
        short s = 20;
        int i = 30;
        long l = 40L;
        float f = 5.5f;
        double d = 6.6;
        
        double result = b + s + i + l + f + d; // 所有类型提升为double
        
        System.out.println("表达式结果: " + result); // 111.1
        
        // 混合类型运算
        int intVal = 10;
        float floatVal = 3.5f;
        double result2 = intVal * floatVal; // int提升为float,然后提升为double
        
        System.out.println("混合运算结果: " + result2); // 35.0
    }
}
代码语言:javascript
复制

2.5 小结

本章系统讲解了Java语言的基础知识,包括:

  1. 简单程序的开发:输入输出、变量声明、标识符和关键字
  2. 数据类型:基本类型和引用类型,以及它们的特性和使用
  3. 运算符:算术、关系、逻辑、赋值和位运算符及其优先级
  4. 数据类型转换:自动转换、强制转换和表达式中的类型提升

掌握这些基础知识是学习Java编程的关键一步。下面通过一个综合案例巩固所学内容。

综合案例:简易计算器

代码语言:javascript
复制
import java.util.Scanner;

public class SimpleCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("简易计算器");
        System.out.println("-------------------");
        
        // 获取第一个操作数
        System.out.print("请输入第一个数字: ");
        double num1 = scanner.nextDouble();
        
        // 获取运算符
        System.out.print("请输入运算符(+ - * /): ");
        char operator = scanner.next().charAt(0);
        
        // 获取第二个操作数
        System.out.print("请输入第二个数字: ");
        double num2 = scanner.nextDouble();
        
        double result = 0;
        boolean validOperator = true;
        
        // 根据运算符执行计算
        switch (operator) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                if (num2 != 0) {
                    result = num1 / num2;
                } else {
                    System.out.println("错误:除数不能为零!");
                    validOperator = false;
                }
                break;
            default:
                System.out.println("错误:无效的运算符!");
                validOperator = false;
        }
        
        // 输出结果
        if (validOperator) {
            System.out.println("计算结果: " + num1 + " " + operator + " " + num2 + " = " + result);
        }
        
        scanner.close();
    }
}
代码语言:javascript
复制

编程练习

  1. 数据类型转换练习:编写程序,从键盘输入一个浮点数,将其转换为整数并输出转换前后的值。
  2. 运算符综合应用:编写程序,计算并输出表达式(10 + 5 * 2) / (20 % 3) - 2的结果,并解释计算过程。
  3. 字符处理程序:编写程序,从键盘输入一个大写字母,将其转换为小写字母并输出。
  4. 位运算应用:编写程序,使用位运算实现两个整数的交换(不使用临时变量)。

        通过本章学习,读者应能掌握Java语言的基础知识,为后续学习面向对象编程打下坚实基础。建议读者动手实践所有代码示例,加深理解。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 2.1 简单程序的开发
    • 2.1.1 从键盘读取数据
    • 2.1.2 变量与赋值
    • 2.1.3 Java标识符
    • 2.1.4 Java关键字
  • 2.2 数据类型
    • 2.2.1 数据类型概述
    • 2.2.2 字面值和常量
    • 2.2.3 整数类型
    • 2.2.4 浮点类型
    • 2.2.5 字符类型
    • 2.2.6 布尔类型
    • 2.2.7 字符串类型
  • 2.3 运算符
    • 2.3.1 算术运算符
    • 2.3.2 关系运算符
    • 2.3.3 逻辑运算符
    • 2.3.4 赋值运算符
    • 2.3.5 位运算符
    • 2.3.6 运算符的优先级和结合性
  • 2.4 数据类型转换
    • 2.4.1 自动类型转换
    • 2.4.2 强制类型转换
    • 2.4.3 表达式中类型自动提升
  • 2.5 小结
  • 综合案例:简易计算器
  • 编程练习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档