Java基础语法

Java基础语法是编写Java程序的基础。这包括语句、变量、数据类型、运算符等。以下是一些Java基础语法的示例代码:

// Hello World示例
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
​
// 变量和数据类型示例
int age = 25;
double salary = 1000.50;
boolean isEmployed = true;
char gender = 'M';
String name = "John Smith";
​
// 运算符示例
int a = 10;
int b = 5;
int sum = a + b;
int difference = a - b;
int product = a * b;
int quotient = a / b;
int remainder = a % b;
boolean isGreater = (a > b);

Java对象和类

Java是一种面向对象的编程语言,它使用对象和类的概念来组织代码。对象是类的实例,类是对象的模板。以下是一个简单的Java类示例:

public class Person {
    private String name;
    private int age;
​
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
​
    public String getName() {
        return name;
    }
​
    public int getAge() {
        return age;
    }
​
    public void sayHello() {
        System.out.println("Hello, my name is " + name);
    }
}
​
// 创建Person对象并调用方法
Person person = new Person("John", 25);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
person.sayHello();

Java基本数据类型

Java提供了一些基本数据类型,用于存储各种类型的数据。以下是Java的基本数据类型:

  • byte:字节型,范围为-128到127

  • short:短整型,范围为-32,768到32,767

  • int:整型,范围为-2,147,483,648到2,147,483,647

  • long:长整型,范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807

  • float:单精度浮点型

  • double:双精度浮点型

  • boolean:布尔型,值为truefalse

  • char:字符型,表示单个字符

Java变量类型

Java的变量类型包括基本数据类型和引用数据类型。基本数据类型的变量直接存储数据值,而引用数据类型的变量存储对象的引用。以下是Java的变量类型示例:

// 基本数据类型变量
int age = 25;
double salary = 1000.50;
boolean isEmployed = true;
char gender = 'M';
​
// 引用数据类型变量
String name = "John Smith";
Person person = new Person("John", 25);

Java修饰符

Java提供了一些修饰符,用于修改类、变量、方法和其他代码元素的行为。以下是一些常用的Java修饰符:

  • public:公共访问修饰符,可以被任何类访问。

  • private:私有访问修饰符,只能在声明它的类内部访问。

  • protected:受保护的访问修饰符,可以在同一包内的类和所有子类中访问。

  • static:静态修饰符,表示静态成员属于类而不是实例。

  • final:最终修饰符继续...

Java运算符

Java提供了多种运算符,用于执行各种操作,例如算术运算、逻辑运算和比较运算。以下是一些常用的Java运算符:

  • 算术运算符:+-*/%

  • 赋值运算符:=

  • 比较运算符:==!=><>=<=

  • 逻辑运算符:&&||!

  • 位运算符:&|^~<<>>

  • 条件运算符(三元运算符):? :

  • 自增自减运算符:++--

Java循环结构

Java提供了多种循环结构,用于重复执行一段代码。以下是Java的循环结构示例:

  • for循环:

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}
  • while循环:

int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}
  • do-while循环:

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

Java条件语句

Java提供了条件语句,用于根据条件的真假执行不同的代码块。以下是Java的条件语句示例:

  • if语句:

int age = 20;
if (age >= 18) {
    System.out.println("成年人");
} else {
    System.out.println("未成年人");
}
  • if-else if-else语句:

int score = 80;
if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}
  • switch-case语句(详见下一节)。

Java switch case

Java的switch-case语句用于根据不同的情况执行不同的代码块。以下是switch-case语句的示例:

int day = 3;
String dayName;

switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    case 3:
        dayName = "Wednesday";
        break;
    default:
        dayName = "Unknown";
        break;
}

System.out.println("Day: " + dayName);

在上面的示例中,根据day的值选择相应的case分支,并执行对应的代码块。如果没有匹配的case,可以使用default分支。

Java Number & Math 类

Java提供了Number类和Math类,用于处理数字和数学运算。Number类是一个抽象类,它是Java数值类型的父类,包括整数、浮点数等。Math类包含了各种数学运算的静态方法。以下是一些示例代码:

// Number类示例
Integer num1 = 10; // 自动装箱
Double num2 = 3.14; // 自动装箱

int intValue = num1.intValue(); // 拆箱
double doubleValue = num2.doubleValue(); // 拆箱

// Math类示例
int maxNum = Math.max(5, 10); // 返回较大的数
double sqrtValue = Math.sqrt(16); // 返回平方根
double randomValue = Math.random(); // 返回0到1之间的随机数

Java Character 类

Java的Character类用于表示字符,并提供了许多与字符相关的方法。以下是一些Character类的示例代码:

char ch = 'A';

boolean isLetter = Character.isLetter(ch); // 检查字符是否为字母
boolean isDigit = Character.isDigit(ch); // 检查字符是否为数字
boolean isWhitespace = Character.isWhitespace(ch); // 检查字符是否为空白字符
boolean isUpperCase = Character.isUpperCase(ch); // 检查字符是否为大写字母
boolean isLowerCase = Character.isLowerCase(ch); // 检查字符是否为小写字母

char lowercaseCh = Character.toLowerCase(ch); // 将字符转换为小写
char uppercaseCh = Character.toUpperCase(ch); // 将字符转换为大写

Java String 类

Java的String类用于表示字符串,并提供了许多与字符串操作相关的方法。以下是一些String类的示例代码:

String str1 = "Hello";
String str2 = "World";

String concatStr = str1.concat(str2); // 字符串拼接
int length = str1.length(); // 获取字符串长度
boolean startsWith = str1.startsWith("He"); // 检查字符串是否以指定前缀开始
boolean endsWith = str1.endsWith("lo"); // 检查字符串是否以指定后缀结束
int indexOf = str1.indexOf("l"); // 获取指定字符在字符串中的索引
String substring = str1.substring(1, 3); // 获取子字符串

String[] splitArray = str1.split(","); // 按指定分隔符拆分字符串为数组
String trimmedStr = str1.trim(); // 去除字符串首尾的空白字符
String replacedStr = str1.replace("l", "L"); // 替换字符串中的字符

Java StringBuffer 类

Java的StringBuffer类用于可变字符串的操作,它提供了许多方法来添加、删除和修改字符串。与String类不同,StringBuffer类是可变的,可以在原有对象上进行操作,而不会创建新的对象。以下是一些StringBuffer类的示例代码:

StringBuffer sb = new StringBuffer();

sb.append("Hello"); // 添加字符串
sb.insert(5, " "); // 在指定位置插入字符串
sb.delete(0, 3); // 删除指定范围内的字符
sb.replace(0, 2, "Hi"); // 替换指定范围内的字符串
sb.reverse(); // 反转字符串

String result = sb.toString(); // 将StringBuffer转换为String

Java 数组

Java的数组是一种用于存储相同类型数据的容器。数组可以是一维的、二维的或多维的。以下是一些Java数组的示例代码:

// 一维数组
int[] numbers = new int[5]; // 声明一个整型数组
numbers[0] = 1; // 赋值
int length = numbers.length; // 获取数组长度

// 二维数组
int[][] matrix = new int[3][3]; // 声明一个二维整型数组
matrix[0][0] = 1; // 赋值
int value = matrix[1][2]; // 访问二维数组的值

```java
// 多维数组
int[][][] cube = new int[3][3][3]; // 声明一个三维整型数组
cube[0][0][0] = 1; // 赋值
int value = cube[2][1][0]; // 访问数组的值

Java 日期时间

Java提供了处理日期和时间的类和方法。您可以使用java.util.Datejava.util.Calendar类来表示和操作日期时间。另外,自Java 8起,引入了java.time包,提供了一套全新的日期时间API。以下是一个示例代码:

import java.util.Date;
import java.util.Calendar;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;

// 使用java.util.Date类
Date date = new Date();
System.out.println(date);

// 使用java.util.Calendar类
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());

// 使用java.time包
LocalDate currentDate = LocalDate.now();
LocalTime currentTime = LocalTime.now();
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println(currentDate);
System.out.println(currentTime);
System.out.println(currentDateTime);

Java 正则表达式

Java的正则表达式是一种强大的字符串匹配和处理工具。您可以使用java.util.regex包中的类来构建和应用正则表达式。以下是一个示例代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String input = "Hello, Java!";
String pattern = "Java";

Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(input);

if (matcher.find()) {
    System.out.println("Pattern found");
} else {
    System.out.println("Pattern not found");
}

Java 方法

Java中的方法是一段可重复使用的代码块,用于执行特定的任务。方法可以接收参数并返回值。以下是一个示例代码:

public class MyClass {
    public static void main(String[] args) {
        int a = 5;
        int b = 10;
        int sum = addNumbers(a, b);
        System.out.println("Sum: " + sum);
    }

    public static int addNumbers(int num1, int num2) {
        return num1 + num2;
    }
}

Java Stream、File、IO

Java的流(Stream)、文件(File)和I/O(Input/Output)类提供了处理输入和输出操作的功能。您可以使用这些类来读取和写入文件、处理网络数据等。以下是一个示例代码:

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

// 文件读取
File file = new File("example.txt");
try (FileReader reader = new FileReader(file)) {
    int character;
    while ((character = reader.read()) != -1) {
        System.out.print((char) character);
    }
} catch (IOException e) {
    e.printStackTrace();
}

// 文件写入
try (FileWriter writer = new FileWriter(file)) {
    writer.write("Hello, Java!");
} catch (IOException e) {
    e.printStackTrace();
}

Java Scanner 类

Java的Scanner类用于读取用户的输入。它提供了方便的方法来解析基本类型的输入数据。以下是一个示例代码:

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);

System.out.print("Enter your name: ");
String name = scanner.nextLine();
System.out.println("Hello, " + name + "!");

System.out.print("Enter your age: ");
int age = scanner.nextInt();
System.out.println("You are " + age + " years old.");

Java 异常处理

Java的异常处理机制允许您捕获和处理运行时错误。通过使用try-catch块,您可以捕获异常并采取相应的措施。以下是一个示例代码:

try {
    int result = 10 / 0; // 除以零将抛出ArithmeticException
    System.out.println("Result: " + result);
} catch (ArithmeticException e) {
    System.out.println("Error: Division by zero");
}

Java 面向对象

面向对象是一种编程范式,Java是一种面向对象的编程语言。面向对象的编程将数据和操作封装在对象中,通过定义类来创建对象,并通过对象之间的交互来实现程序逻辑。以下是一个示例代码:

public class Car {
    private String brand;
    private String color;

    public Car(String brand, String color) {
        this.brand = brand;
        this.color = color;
    }

    public void start() {
        System.out.println("The car is starting.");
    }

    public void stop() {
        System.out.println("The car is stopping.");
    }

    public static void main(String[] args) {
        Car myCar = new Car("Toyota", "Blue");
        myCar.start();
        myCar.stop();
    }
}

Java 继承

Java中的继承是一种面向对象的概念,它允许一个类继承另一个类的属性和方法。通过继承,子类可以获取父类的特性,并可以进一步扩展或修改它们。以下是一个示例代码:

public class Animal {
    public void eat() {
        System.out.println("The animal is eating.");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("The dog is barking.");
    }
}

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

Java Override/Overload

在Java中,方法的重写(Override)和重载(Overload)是实现多态性的重要概念。重写指的是子类重新定义父类中已有的方法,而重载指的是在同一个类中定义多个方法,它们具有相同的名称但不同的参数。以下是一个示例代码:

public class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound.");
    }
}

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

    public void makeSound(String sound) {
        System.out.println("The dog " + sound);
    }
}

public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.makeSound();
        myDog.makeSound("barks loudly");
    }
}

Java 多态

多态是面向对象编程的重要概念之一,它允许同一类型的变量引用不同类型的对象,从而实现不同对象的统一处理。多态性可以通过继承和方法重写来实现。以下是一个示例代码:

public class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound.");
    }
}

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

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

public class Main {
    public static void main(String[] args) {
        Animal myAnimal1 = new Dog();
        myAnimal1.makeSound();

        Animal myAnimal2 = new Cat();
        myAnimal2.makeSound();
    }
}

Java 抽象类

Java中的抽象类是一种不能实例化的类,它用作其他类的基类。抽象类可以包含抽象方法和非抽象方法。抽象方法是没有实现的方法,需要在子类中进行重写。以下是一个示例代码:

public abstract class Animal {
    public abstract void makeSound();

    public void sleep() {
        System.out.println("The animal is sleeping.");
    }
}

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

public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.makeSound();
        myDog.sleep();
    }
}
``以下是剩余条目的解释和示例代码:

## Java 封装

封装是面向对象编程的一个原则,它将类的属性隐藏起来,只能通过类提供的方法来访问和修改属性。这样可以保护数据的安全性并提高代码的可维护性。以下是一个示例代码:

```java
public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("John");
        person.setAge(25);
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
    }
}

Java 接口

接口是一种定义了一组方法签名的抽象类型,它可以被类实现。通过实现接口,类可以遵循接口定义的契约,并实现接口中声明的方法。以下是一个示例代码:

public interface Shape {
    double getArea();

    double getPerimeter();
}

public class Circle implements Shape {
    private double radius;

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

    @Override
    public double getArea() {
        return Math.PI * radius * radius;
    }

    @Override
    public double getPerimeter() {
        return 2 * Math.PI * radius;
    }
}

public class Main {
    public static void main(String[] args) {
        Circle circle = new Circle(5);
        System.out.println("Area: " + circle.getArea());
        System.out.println("Perimeter: " + circle.getPerimeter());
    }
}

Java 枚举

枚举是一种特殊的数据类型,它限定一个变量只能取特定的几个值。在Java中,枚举类型使用enum关键字定义。以下是一个示例代码:

public enum DayOfWeek {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}

public class Main {
    public static void main(String[] args) {
        DayOfWeek today = DayOfWeek.MONDAY;
        System.out.println("Today is " + today);
    }
}

Java 包(package)

包是Java中用于组织类和接口的一种机制,它将相关的类和接口放在一个命名空间中,以避免命名冲突。以下是一个示例代码:

package com.example;

public class MyClass {
    public void printMessage() {
        System.out.println("Hello, world!");
    }
}

public class Main {
    public static void main(String[] args) {
        com.example.MyClass myClass = new com.example.MyClass();
        myClass.printMessage();
    }
}

当然,我将为您解释每个条目,并提供相应的示例代码。以下是每个条目的解释和示例代码:

Java 数据结构

Java中的数据结构是指用于组织和存储数据的方式和方法。它包括各种类型的数据结构,如数组、链表、栈、队列、树等。您可以使用这些数据结构来有效地组织和处理数据。以下是一个示例代码:

// 使用数组存储一组整数
int[] numbers = {1, 2, 3, 4, 5};

// 使用链表存储一组字符串
LinkedList<String> strings = new LinkedList<>();
strings.add("Hello");
strings.add("World");
strings.add("!");

// 使用栈实现后进先出(LIFO)的操作
Stack<String> stack = new Stack<>();
stack.push("Apple");
stack.push("Banana");
stack.push("Orange");
String fruit = stack.pop();  // 弹出栈顶元素

// 使用队列实现先进先出(FIFO)的操作
Queue<String> queue = new LinkedList<>();
queue.offer("Red");
queue.offer("Green");
queue.offer("Blue");
String color = queue.poll();  // 移除并返回队首元素

Java 集合框架

Java集合框架是一组用于存储和操作对象的类和接口。它提供了各种类型的集合,如List、Set、Map等,以及相应的实现类。集合框架使得数据的管理和操作更加方便和高效。以下是一个示例代码:

// 创建一个ArrayList并添加元素
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");

// 创建一个HashSet并添加元素
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);

// 创建一个HashMap并添加键值对
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
map.put("Orange", 3);

Java ArrayList

ArrayList是Java集合框架中的一个类,它实现了可变大小的数组。它提供了一组方法用于在列表中添加、删除和获取元素。以下是一个示例代码:

List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");

System.out.println(fruits.get(1));  // 获取索引为1的元素

fruits.remove("Banana");  // 移除元素

System.out.println(fruits.size());  // 获取列表的大小

Java LinkedList

LinkedList是Java集合框架中的一个类,它实现了双向链表。它提供了一组方法用于在链表中添加、删除和获取元素。以下是一个示例代码:

LinkedList<String> names = new LinkedList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");

System.out.println(names.getFirst());  // 获取链表的第一个元素

names.removeLast();  // 移除链表的最后一个元素

System.out.println(names.size());  // 获取链表的大小

Java HashSet

HashSet是Java集合框架中的一个类,它实现了基于哈希表的Set接口。它提供了高效的插入、查找和删除操作,并且不允许重复元素。以下是一个示例代码:

Set<String> colors = new HashSet<>();
colors.add("Red");
colors.add("Green");
colors.add("Blue");

System.out.println(colors.contains("Green"));  // 判断集合中是否包含元素"Green"

colors.remove("Red");  // 移除元素

System.out.println(colors.size());  // 获取集合的大小

Java HashMap

HashMap是Java集合框架中的一个类,它实现了基于哈希表的Map接口。它提供了一对一的键值对存储方式,并且快速地查找和访问数据。以下是一个示例代码:

// 创建一个HashMap并添加键值对
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
map.put("Orange", 3);

// 获取键对应的值
int value = map.get("Apple");

// 判断是否包含特定的键
boolean containsKey = map.containsKey("Banana");

// 移除键值对
map.remove("Orange");

// 获取HashMap的大小
int size = map.size();

Java Iterator

Iterator是Java集合框架中的一个接口,它提供了遍历集合元素的方法。通过Iterator,我们可以依次访问集合中的每个元素。以下是一个示例代码:

ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");

// 使用Iterator遍历ArrayList
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    System.out.println(item);
}

Java Object

Object是Java语言中的根类,所有其他类都直接或间接地继承自Object类。它提供了一些通用的方法,如equals()、hashCode()、toString()等。以下是一个示例代码:

// 创建一个自定义类
class Person {
    private String name;
    private int age;

    // 构造方法和其他方法

    @Override
    public String toString() {
        return "Person[name=" + name + ", age=" + age + "]";
    }
}

// 创建一个Person对象并调用toString()方法
Person person = new Person("Alice", 25);
System.out.println(person.toString());

Java 泛型

泛型是Java中的一种机制,它允许在定义类、接口或方法时使用类型参数,从而实现代码的重用和类型安全。通过泛型,我们可以在编译时指定类型,并在运行时使用具体的类型。以下是一个示例代码:

// 定义一个泛型类
class Box<T> {
    private T item;

    public void setItem(T item) {
        this.item = item;
    }

    public T getItem() {
        return item;
    }
}

// 使用泛型类
Box<String> box = new Box<>();
box.setItem("Hello");
String item = box.getItem();

Java 序列化

序列化是Java中一种将对象转换为字节序列的机制,以便在网络上传输或保存到文件中。通过序列化,我们可以将对象的状态保存下来,或者从字节序列中重新创建对象。以下是一个示例代码:

// 定义一个可序列化的类
class Person implements Serializable {
    private String name;
    private int age;

    // 构造方法和其他方法
}

// 将对象序列化为字节序列
Person person = new Person("Alice", 25);
try (FileOutputStream fileOut = new FileOutputStream("person.ser");
     ObjectOutputStream out = new ObjectOutputStream(fileOut)) {
    out.writeObject(person);
}

// 从字节序列中反序列化对象
try (FileInputStream fileIn = new FileInputStream("person.ser");
     ObjectInputStream in = new ObjectInputStream(fileIn)) {
    Person deserializedPerson = (Person) in.readObject();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值