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开发技能。实践是学习编程的关键,建议读者在掌握理论知识后,通过项目实践来巩固和提升自己的编程能力。此外,还可以借助在线学习平台如慕课网等资源,获取更多详细的教程和实战项目。
共同学习,写下你的评论
评论加载中...
作者其他优质文章