从小白到精通 | 企业级编程语言 | 包含对比、实用性和作业
Java是一种面向对象的编程语言,由Sun Microsystems公司在1995年开发。Java的设计目标是"一次编写,到处运行"(Write Once, Run Anywhere),这意味着你写的Java代码可以在任何安装了Java虚拟机(JVM)的计算机上运行。
Java这个名字来自印度尼西亚的爪哇岛,这个岛以出产优质咖啡而闻名。所以Java的标志是一杯咖啡。
Java是企业级应用开发的首选语言。如果你想进入大公司做开发,学好Java是必须的。
| 特性 | Java | Python | C++ |
|---|---|---|---|
| 学习难度 | ⭐⭐⭐ 中等 | ⭐ 简单 | ⭐⭐⭐⭐ 困难 |
| 执行速度 | 快 | 慢 | 很快 |
| 跨平台性 | 优秀 | 优秀 | 一般 |
| 企业应用 | 最佳 | 一般 | 一般 |
| 开发速度 | 中等 | 快 | 慢 |
| 内存占用 | 较多 | 较多 | 少 |
任务:输出"Hello, World!"
Java(8行):
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}Python(1行):
print("Hello, World!")C++(5行):
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}Java的核心是JDK(Java Development Kit),它包含了编译器和运行时环境。
java -version 验证安装brew install openjdkjava -versionsudo apt-get updatesudo apt-get install openjdk-17-jdkjava -version输入 java -version 后,看到类似 "openjdk version 17.0.0" 的输出,说明安装成功。
Java程序必须写在类里面,这是Java的基本特性。
HelloWorld.javajavac HelloWorld.java(编译)java HelloWorld(执行)public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}Hello, World!public class HelloWorld - 定义一个公开的类,名字必须和文件名一样public static void main(String[] args) - 程序的入口点,Java程序从这里开始执行System.out.println() - 输出文本到控制台Java是编译型语言,需要先编译成字节码(.class文件),然后才能运行。这和Python(解释型)不同。
Java是强类型语言,每个变量都必须声明类型。
public class DataTypes {
public static void main(String[] args) {
// 整数
int age = 25;
long population = 7800000000L;
// 浮点数
double height = 1.75;
float price = 99.99f;
// 字符和字符串
char grade = 'A';
String name = "Alice";
// 布尔值
boolean isStudent = true;
System.out.println("姓名: " + name);
System.out.println("年龄: " + age);
System.out.println("身高: " + height);
}
}Java中的String不是基本类型,而是一个类。但它使用非常频繁,所以要特别注意。
变量是存储数据的容器,运算符用来操作这些数据。
// 声明变量
int x;
x = 10; // 赋值
// 声明并赋值
int y = 20;
// 多个变量
int a = 1, b = 2, c = 3;public class Operators {
public static void main(String[] args) {
int x = 10;
int y = 3;
// 算术运算
System.out.println(x + y); // 13
System.out.println(x - y); // 7
System.out.println(x * y); // 30
System.out.println(x / y); // 3
System.out.println(x % y); // 1
// 比较运算
System.out.println(x > y); // true
System.out.println(x == y); // false
// 逻辑运算
System.out.println(x > 5 && y < 5); // true
}
}条件语句用来根据不同条件执行不同的代码。
public class IfStatement {
public static void main(String[] args) {
int age = 18;
if (age < 13) {
System.out.println("你是儿童");
} else if (age < 18) {
System.out.println("你是青少年");
} else {
System.out.println("你是成年人");
}
}
}public class SwitchStatement {
public static void main(String[] args) {
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("其他日期");
}
}
}循环用来重复执行代码块。
public class ForLoop {
public static void main(String[] args) {
// 基本for循环
for (int i = 0; i < 5; i++) {
System.out.println(i); // 输出 0 1 2 3 4
}
// 增强for循环(遍历数组)
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
}
}public class WhileLoop {
public static void main(String[] args) {
int count = 0;
while (count < 3) {
System.out.println(count);
count++;
}
// do-while循环(至少执行一次)
int x = 0;
do {
System.out.println(x);
x++;
} while (x < 3);
}
}方法是一段可重用的代码块。Java中的方法类似于Python的函数。
public class Methods {
// 定义一个方法
public static int add(int a, int b) {
return a + b;
}
// 定义一个无返回值的方法
public static void greet(String name) {
System.out.println("Hello, " + name);
}
public static void main(String[] args) {
// 调用方法
int result = add(5, 3);
System.out.println(result); // 8
greet("Alice"); // Hello, Alice
}
}Java支持方法重载,即同一个方法名可以有多个版本,只要参数不同。
public class MethodOverloading {
// 版本1:两个int参数
public static int add(int a, int b) {
return a + b;
}
// 版本2:两个double参数
public static double add(double a, double b) {
return a + b;
}
// 版本3:三个int参数
public static int add(int a, int b, int c) {
return a + b + c;
}
public static void main(String[] args) {
System.out.println(add(1, 2)); // 调用版本1
System.out.println(add(1.5, 2.5)); // 调用版本2
System.out.println(add(1, 2, 3)); // 调用版本3
}
}面向对象编程是Java的核心。它通过类和对象来组织代码。
类比:如果"汽车"是一个类,那么"我的红色本田"就是一个对象。
public class Person {
// 属性
public String name;
public int age;
// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 方法
public void introduce() {
System.out.println("我叫" + name + ",今年" + age + "岁");
}
public static void main(String[] args) {
// 创建对象
Person p1 = new Person("Alice", 25);
Person p2 = new Person("Bob", 30);
// 调用方法
p1.introduce(); // 我叫Alice,今年25岁
p2.introduce(); // 我叫Bob,今年30岁
}
}继承允许一个类继承另一个类的属性和方法。
// 父类
public class Animal {
public void eat() {
System.out.println("动物在吃东西");
}
}
// 子类
public class Dog extends Animal {
public void bark() {
System.out.println("狗在叫");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat(); // 继承的方法
dog.bark(); // 自己的方法
}
}数组和集合用来存储多个元素。
public class Arrays {
public static void main(String[] args) {
// 创建数组
int[] numbers = {1, 2, 3, 4, 5};
// 访问元素
System.out.println(numbers[0]); // 1
// 遍历数组
for (int num : numbers) {
System.out.println(num);
}
// 数组长度
System.out.println(numbers.length); // 5
}
}import java.util.ArrayList;
import java.util.List;
public class Collections {
public static void main(String[] args) {
// 创建List
List<String> fruits = new ArrayList<>();
// 添加元素
fruits.add("apple");
fruits.add("banana");
fruits.add("orange");
// 访问元素
System.out.println(fruits.get(0)); // apple
// 遍历
for (String fruit : fruits) {
System.out.println(fruit);
}
// 删除元素
fruits.remove(0);
// 获取大小
System.out.println(fruits.size()); // 2
}
}异常处理用来处理程序运行中可能出现的错误。
public class ExceptionHandling {
public static void main(String[] args) {
try {
// 可能出现异常的代码
int[] numbers = {1, 2, 3};
System.out.println(numbers[5]); // 数组越界
} catch (ArrayIndexOutOfBoundsException e) {
// 捕获异常
System.out.println("数组索引越界!");
System.out.println(e.getMessage());
} finally {
// 无论是否出现异常都会执行
System.out.println("程序结束");
}
}
}异常处理很重要,它让你的程序更加健壮。不要忽视异常,要主动处理它们。
场景:开发一个电商平台的后端系统,处理用户订单、支付、库存等。
技术栈:Spring Boot + MySQL + Redis
场景:开发一个手机应用,如天气预报、社交媒体等。
技术栈:Android SDK + Java
场景:处理数十亿条日志数据,进行数据分析和挖掘。
技术栈:Hadoop + Spark + Java
场景:开发一个多人在线游戏。
技术栈:LibGDX + Java
场景:开发银行的核心交易系统。
技术栈:Spring + Oracle + Java
Java是企业级应用的标准选择。全球大多数大型公司都在使用Java开发关键业务系统。
⭐ 简单 | ⭐⭐ 中等 | ⭐⭐⭐ 困难 | ⭐⭐⭐⭐ 挑战
要求:创建一个Person类,包含姓名、年龄、城市属性,以及一个introduce()方法。
要求:创建一个Calculator类,实现加、减、乘、除四个方法。
要求:根据分数判断等级(A/B/C/D/E)。
要求:创建Student类,包含学号、姓名、成绩等属性,实现添加、删除、查询学生的功能。
要求:创建Animal父类和Dog、Cat子类,实现不同的行为。
要求:创建BankAccount类,实现存款、取款、转账功能,使用异常处理。
要求:创建完整的图书馆系统,包括Book、User、Library等类,实现借书、还书、查询等功能。
完成作业后,可以在我们的客服中心提交你的代码,获得专业的代码审查和反馈。
现在你已经掌握了Java的核心概念。让我们回顾一下你学到的内容:
Java学习的关键是理解面向对象的思想。不要急于学习框架,先把基础打牢。