当前位置: 首页 > article >正文

Java 新手宝典(带案例)

一、入门基础

1. 环境搭建

  • JDK 安装
    • 访问 Oracle 或 OpenJDK 官方网站,根据自己的操作系统(Windows、Linux、Mac OS)下载合适的 JDK 版本。
    • 安装过程中按照提示操作,注意记住安装路径。
  • 环境变量配置
    • Windows:在系统环境变量中配置 JAVA_HOME(指向 JDK 安装目录)、PATH(添加 %JAVA_HOME%\bin)和 CLASSPATH(可设置为 . 表示当前目录)。
    • Linux/Mac OS:编辑 ~/.bashrc 或 ~/.bash_profile 文件,添加类似如下内容:
export JAVA_HOME=/path/to/your/jdk
export PATH=$JAVA_HOME/bin:$PATH

然后执行 source ~/.bashrc 或 source ~/.bash_profile 使配置生效。

  • 验证安装
    • 打开命令行工具,输入 java -version 和 javac -version,如果能正确显示版本信息,说明 JDK 安装和配置成功。

2. 第一个 Java 程序

  • 创建文件:使用文本编辑器创建一个名为 HelloWorld.java 的文件。
  • 编写代码
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
  • 编译运行
    • 打开命令行工具,进入 HelloWorld.java 所在目录,执行 javac HelloWorld.java 进行编译,会生成一个 HelloWorld.class 文件。
    • 接着执行 java HelloWorld,屏幕将输出 Hello, World!

3. 基本语法

  • 变量和数据类型
    • 基本数据类型byteshortintlongfloatdoublecharboolean
    • 引用数据类型:如 String、数组、类、接口等。
int num = 10;
double price = 9.99;
char grade = 'A';
boolean isTrue = true;
String name = "John";
  • 运算符
    • 算术运算符+-*/% 等。
    • 关系运算符==!=><>=<= 等。
    • 逻辑运算符&&||! 等。
  • 控制语句
    • 条件语句if-elseswitch
if (num > 0) {
    System.out.println("Positive number");
} else if (num < 0) {
    System.out.println("Negative number");
} else {
    System.out.println("Zero");
}

switch (grade) {
    case 'A':
        System.out.println("Excellent");
        break;
    case 'B':
        System.out.println("Good");
        break;
    default:
        System.out.println("Need improvement");
}
  • 循环语句forwhiledo-while
for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

int j = 0;
while (j < 5) {
    System.out.println(j);
    j++;
}

int k = 0;
do {
    System.out.println(k);
    k++;
} while (k < 5);

二、面向对象编程

1. 类和对象

  • 类的定义:类是对象的抽象,包含属性和方法。
class Person {
    String name;
    int age;

    public void introduce() {
        System.out.println("My name is " + name + " and I'm " + age + " years old.");
    }
}
  • 对象的创建和使用:通过 new 关键字创建对象,并调用对象的方法和访问属性。
Person person = new Person();
person.name = "Alice";
person.age = 20;
person.introduce();

2. 封装、继承和多态

  • 封装:将数据和操作数据的方法绑定在一起,隐藏对象的内部实现细节。通过访问修饰符(privateprotectedpublic)来实现。
class BankAccount {
    private double balance;

    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    public double getBalance() {
        return balance;
    }
}
  • 继承:子类继承父类的属性和方法,可实现代码复用和扩展。使用 extends 关键字。
class Student extends Person {
    String studentId;

    public void study() {
        System.out.println(name + " is studying.");
    }
}
  • 多态:同一个方法调用可以根据对象的不同类型表现出不同的行为。通过继承和接口实现。
class Animal {
    public void makeSound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Dog barks");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Cat meows");
    }
}

// 多态的使用
Animal dog = new Dog();
Animal cat = new Cat();
dog.makeSound();
cat.makeSound();

3. 接口和抽象类

  • 抽象类:包含抽象方法的类,不能实例化,需要子类继承并实现抽象方法。使用 abstract 关键字。
abstract class Shape {
    abstract double area();
}

class Circle extends Shape {
    double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    @Override
    double area() {
        return Math.PI * radius * radius;
    }
}
  • 接口:是一种特殊的抽象类型,只包含抽象方法和常量。类通过 implements 关键字实现接口。
interface Flyable {
    void fly();
}

class Bird implements Flyable {
    @Override
    public void fly() {
        System.out.println("Bird is flying");
    }
}

三、常用类库

1. 字符串处理

  • String 类:用于处理不可变的字符串。
String str1 = "Hello";
String str2 = " World";
String result = str1 + str2;
System.out.println(result);

int length = result.length();
boolean contains = result.contains("World");
  • StringBuilder 和 StringBuffer 类:用于处理可变的字符串,StringBuilder 是非线程安全的,StringBuffer 是线程安全的。
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World");
String finalResult = sb.toString();

2. 集合框架

  • List 接口:有序的集合,可包含重复元素。常用实现类有 ArrayList 和 LinkedList
import java.util.ArrayList;
import java.util.List;

List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
for (String fruit : list) {
    System.out.println(fruit);
}
  • Set 接口:无序的集合,不包含重复元素。常用实现类有 HashSet
import java.util.HashSet;
import java.util.Set;

Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(2); // 重复元素不会被添加
for (int num : set) {
    System.out.println(num);
}
  • Map 接口:键值对的集合,键是唯一的。常用实现类有 HashMap
import java.util.HashMap;
import java.util.Map;

Map<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
int value = map.get("Apple");
System.out.println(value);

3. 日期和时间处理

  • java.util.Date 和 java.util.Calendar 类:旧的日期和时间处理类。
import java.util.Date;
import java.util.Calendar;

Date date = new Date();
System.out.println(date);

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2024);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
calendar.set(Calendar.DAY_OF_MONTH, 1);
Date specificDate = calendar.getTime();
  • Java 8 新的日期和时间 API:如 LocalDateLocalTimeLocalDateTime 等。
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;

LocalDate today = LocalDate.now();
LocalTime currentTime = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.of(today, currentTime);

四、异常处理

1. 异常类型

  • 检查异常:如 IOExceptionSQLException 等,必须在代码中进行处理(捕获或抛出)。
  • 非检查异常:如 NullPointerExceptionArrayIndexOutOfBoundsException 等,通常是程序逻辑错误导致的,不需要强制处理。

2. 异常处理语句

  • try-catch 语句:用于捕获和处理异常。
try {
    int[] arr = {1, 2, 3};
    System.out.println(arr[3]); // 会抛出 ArrayIndexOutOfBoundsException
} catch (ArrayIndexOutOfBoundsException e) {
    System.out.println("Array index out of bounds: " + e.getMessage());
}
  • finally 语句:无论是否发生异常,finally 块中的代码都会执行。
try {
    // 可能抛出异常的代码
} catch (Exception e) {
    // 异常处理代码
} finally {
    // 无论是否发生异常都会执行的代码
}
  • throws 关键字:用于在方法声明中抛出异常。
public void readFile() throws java.io.IOException {
    // 读取文件的代码
}

五、开发工具和资源

1. 集成开发环境(IDE)

  • Eclipse:开源、功能强大,有丰富的插件支持。
  • IntelliJ IDEA:智能、高效,对 Java 开发有很好的支持,分为社区版和旗舰版。
  • NetBeans:简单易用,适合初学者。

2. 学习资源

  • 官方文档:Oracle Java 官方文档是学习 Java 的权威资料。
  • 在线教程:如菜鸟教程、W3Schools 等,提供了丰富的 Java 教程和示例代码。
  • 书籍:《Effective Java》《Java 核心技术》等是经典的 Java 学习书籍。

3. 代码托管平台

  • GitHub:全球最大的开源代码托管平台,可以学习他人的代码,参与开源项目。
  • GitLab:支持私有仓库,适合团队开发。

六、项目实践

1. 简单控制台项目

  • 学生管理系统:实现学生信息的添加、删除、修改和查询功能。
  • 图书管理系统:管理图书的借阅和归还信息。

2. Web 项目

  • 使用 Servlet 和 JSP:搭建一个简单的 Web 应用,处理用户请求和显示动态内容。
  • 使用 Spring Boot:快速搭建一个基于 Spring 框架的 Web 项目,简化开发流程。

通过以上内容的学习和实践,新手可以逐步掌握 Java 编程的基础知识和技能,为进一步深入学习和开发打下坚实的基础。在学习过程中,要多动手实践,遇到问题及时查阅资料和寻求帮助。


http://www.kler.cn/a/560686.html

相关文章:

  • 点击修改按钮图片显示有问题
  • stm32-电源控制
  • 深入理解与实战SQL IFNULL()函数
  • 深入理解 QVectorQString:Qt 中动态数组的强大力量
  • FFmpeg进化论:从av_register_all手动注册到编译期自动加载的技术跃迁
  • 深入剖析:基于红黑树实现自定义 map 和 set 容器
  • 零工市场小程序利用 Java 连接企业与自由职业者?
  • Matlab Simulink创建Clark和Park变换模型
  • 开源测试_POmronFINSTCP
  • check spring configuration解决方法
  • 剑指offer第2版:搜索算法(二分/DFS/BFS)
  • html中的元素(1)
  • Prompt:创造性的系统分析者
  • DeepSeek-R1:通过强化学习激发大语言模型的推理能力
  • Linux系统需要学习的内容和学习计划
  • [ComfyUI] 【AI】如何获得一张人物图片的优质描述
  • mysql 学习17 SQL 锁
  • 动态链接器(九):.init和.init_array
  • Vue Axios
  • 【C++】AVL 树平衡二叉搜索的神奇结构,代码实现全解析,从概念到应用,助你轻松掌握这一高效数据结构,编程能力更上一层楼!