为了账号安全,请及时绑定邮箱和手机立即绑定

JavaSE学习:从入门到实践的简洁指南

标签:
杂七杂八

JavaSE基础介绍

1.1 Java简介

Java是一种面向对象的、跨平台的、免费的编程语言。它由Sun Microsystems开发,并由Oracle Corporation维护。Java的“一次编写,到处运行”的特性使其在全球范围内广泛应用,从桌面应用到服务器端开发,再到移动设备开发(通过Java ME)。

1.2 Java语言特性

  • 面向对象:Java语言基于面向对象编程模型,支持封装、继承、多态等概念。
  • 跨平台:运行Java程序需要Java虚拟机(JVM),使得Java程序能在不同操作系统中运行,无需修改源代码。
  • 安全:Java具有严格的内存管理机制,避免了诸如内存泄漏、指针溢出等问题。
  • 强类型:Java使用静态类型系统,变量在声明时就确定了类型,并且类型检查在编译时完成。

1.3 Java应用领域

  • 企业级开发:主要使用Java EE(企业版)进行大中型应用开发,如Web应用、企业级组件等。
  • 安卓开发:Java是安卓应用的主要开发语言,通过Android Studio等集成开发环境进行开发。
  • 嵌入式系统:通过Java ME(微型版)适用于小型嵌入式设备开发。
  • 游戏开发:虽然Java不是游戏开发的首选语言,但通过某些特定框架和库,如JavaFX,可以用于开发图形界面应用。

Java语法精讲

3.1 基本数据类型与变量

基本数据类型

  • byte, short, int, long
  • float, double
  • char
  • boolean

示例代码

public class Main {
    public static void main(String[] args) {
        byte age = 15;
        short price = 20000;
        int salary = 50000;
        long id = 1234567890123L;
        float height = 1.75F;
        double weight = 70.5;
        char gender = 'M';
        boolean isValid = true;

        System.out.println("Age: " + age);
        System.out.println("Price: " + price);
        System.out.println("Salary: " + salary);
        System.out.println("ID: " + id);
        System.out.println("Height: " + height);
        System.out.println("Weight: " + weight);
        System.out.println("Gender: " + gender);
        System.out.println("Is Valid: " + isValid);
    }
}

3.2 运算符与表达式

算术运算符:如+, -, *, /, %
赋值运算符:如=, +=, -=, *=, /=
逻辑与关系运算符:如&&, ||, ==, !=, >, <, >=, <=

示例代码

public class Main {
    public static void main(String[] args) {
        int a = 10, b = 5;
        int sum = a + b;
        int subtraction = a - b;
        int multiplication = a * b;
        int division = a / b;
        int modulus = a % b;
        boolean isEqual = (a == b);
        boolean isGreaterThan = (a > b);

        System.out.println("Sum: " + sum);
        System.out.println("Subtraction: " + subtraction);
        System.out.println("Multiplication: " + multiplication);
        System.out.println("Division: " + division);
        System.out.println("Modulus: " + modulus);
        System.out.println("Is Equal: " + isEqual);
        System.out.println("Is Greater Than: " + isGreaterThan);
    }
}

3.3 控制结构

条件语句:如if, else, else if
循环语句:如for, while, do-while
跳转语句:如break, continue

示例代码

public class Main {
    public static void main(String[] args) {
        int num = 5;

        if (num > 0) {
            System.out.println("Number is positive.");
        } else if (num < 0) {
            System.out.println("Number is negative.");
        } else {
            System.out.println("Number is zero.");
        }

        for (int i = 1; i <= 5; i++) {
            System.out.println("Iteration: " + i);
        }

        int sum = 0;
        for (int i = 1; i <= 10; i++) {
            sum += i;
        }
        System.out.println("Sum: " + sum);

        int count = 0;
        do {
            System.out.println("Count: " + count);
            count++;
        } while (count < 3);
    }
}

Java面向对象编程(OOP)核心

4.1 类与对象

:描述具有相似属性和行为的对象的模板。
对象:类的实例。

示例代码

public class Employee {
    private String name;
    private int salary;

    public Employee(String name, int salary) {
        this.name = name;
        this.salary = salary;
    }

    public void display() {
        System.out.println("Name: " + name);
        System.out.println("Salary: " + salary);
    }
}

public class Main {
    public static void main(String[] args) {
        Employee emp1 = new Employee("John Doe", 50000);
        emp1.display();
    }
}

4.2 封装与访问控制

封装:将数据和方法绑定在一起,提供一个安全的接口访问内部数据。
访问控制:使用public, private, protected, default修饰符控制成员的访问权限。

示例代码

public class Account {
    private int balance;

    public void deposit(int amount) {
        balance += amount;
    }

    public int getBalance() {
        return balance;
    }
}

public class Main {
    public static void main(String[] args) {
        Account acc = new Account();
        acc.deposit(1000);
        System.out.println("Balance: " + acc.getBalance());
    }
}

4.3 继承与多态

继承:子类可以继承父类的属性和方法。
多态:通过接口或抽象类实现相同的操作,但不同的对象实现不同的行为。

示例代码

public abstract class Animal {
    public void eat() {
        System.out.println("Eating...");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("Woof!");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Dog();
        animal.eat();
        animal.bark();
    }
}

集合框架与多线程

5.1 集合框架

Java集合框架主要包括:

  • List:存储有序的元素,如ArrayList、LinkedList、Vector等。
  • Set:不存储重复元素,如HashSet、TreeSet等。
  • Map:键值对存储,如HashMap、TreeMap等。

示例代码

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        Map<String, Integer> prices = new HashMap<>();
        prices.put("Apple", 1);
        prices.put("Banana", 2);
        prices.put("Cherry", 3);

        for (Map.Entry<String, Integer> entry : prices.entrySet()) {
            System.out.println("Fruit: " + entry.getKey() + ", Price: " + entry.getValue());
        }
    }
}

5.2 多线程基础

线程:处理并发任务的基本单位,Java通过Thread类实现线程。

同步与并发:使用synchronized关键字保证多个线程同时访问共享资源的互斥。

示例代码

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }
}

public class Main {
    public static void main(String[] args) {
        Counter counter = new Counter();

        Thread t1 = new Thread(() -> {
            for (int i = 0; i < 1000000; i++) {
                counter.increment();
            }
        });

        Thread t2 = new Thread(() -> {
            for (int i = 0; i < 1000000; i++) {
                counter.increment();
            }
        });

        t1.start();
        t2.start();

        try {
            t1.join();
            t2.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("Final count: " + counter.count);
    }
}

案例实战

6.1 实战项目:简易图书管理系统

需求:实现一个简单的图书管理系统,能够添加、删除、查找图书信息。

代码实现

import java.util.ArrayList;
import java.util.Scanner;

public class BookManager {
    private static ArrayList<Book> books = new ArrayList<>();

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        boolean running = true;
        while (running) {
            System.out.println("1. Add Book");
            System.out.println("2. Delete Book");
            System.out.println("3. Find Book");
            System.out.println("4. Exit");
            System.out.print("Choose an option: ");
            int choice = scanner.nextInt();

            switch (choice) {
                case 1:
                    addBook(scanner);
                    break;
                case 2:
                    deleteBook(scanner);
                    break;
                case 3:
                    findBook(scanner);
                    break;
                case 4:
                    running = false;
                    break;
                default:
                    System.out.println("Invalid choice!");
            }
        }

        scanner.close();
    }

    public static void addBook(Scanner scanner) {
        System.out.print("Enter book title: ");
        String title = scanner.nextLine();
        System.out.print("Enter author: ");
        String author = scanner.nextLine();

        Book book = new Book(title, author);
        books.add(book);
    }

    public static void deleteBook(Scanner scanner) {
        System.out.print("Enter book title to delete: ");
        String title = scanner.nextLine();

        boolean found = false;
        for (Book book : books) {
            if (book.getTitle().equals(title)) {
                books.remove(book);
                found = true;
                break;
            }
        }

        if (!found) {
            System.out.println("Book not found.");
        }
    }

    public static void findBook(Scanner scanner) {
        System.out.print("Enter book title to find: ");
        String title = scanner.nextLine();

        for (Book book : books) {
            if (book.getTitle().equals(title)) {
                System.out.println("Found: " + book);
                return;
            }
        }
        System.out.println("Book not found.");
    }
}

class Book {
    private String title;
    private String author;

    public Book(String title, String author) {
        this.title = title;
        this.author = author;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    @Override
    public String toString() {
        return "Book: " + title + ", Author: " + author;
    }
}

通过上述步骤,读者可以深入理解JavaSE的基础知识,从安装到实际应用案例,逐步构建自己的Java开发技能。实践是学习编程的关键,建议读者在掌握理论知识后,通过项目实践来巩固和提升自己的编程能力。此外,还可以借助在线学习平台如慕课网等资源,获取更多详细的教程和实战项目。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消