【后端面经-Java】Java基本概念
发布人:shili8
发布时间:2025-02-27 07:18
阅读次数:0
**后端面经-Java**
作为一名后端开发者,Java 是一个非常重要的语言。它是 Java EE(Enterprise Edition)的一部分,是企业级应用程序开发的首选语言之一。在本文中,我们将讨论 Java 的基本概念、特点和一些常见的面试题。
**1. Java 基础**
###1.1 变量和数据类型Java 中,变量是用来存储值的空间。每个变量都有一个名称(也称为标识符),以及一个数据类型。数据类型决定了变量可以存储什么样的值。
java// int 类型的变量int age =25; // String 类型的变量String name = "John";
###1.2 运算符Java 中有各种运算符,用于执行不同类型的计算。例如:
* 算术运算符(+、-、*、/等)
* 关系运算符(==、!=、<、>等)
* 逻辑运算符(&&、||等)
java// 算术运算符示例int a =5; int b =3; System.out.println(a + b); // 输出:8System.out.println(a - b); // 输出:2// 关系运算符示例String s1 = "hello"; String s2 = "world"; System.out.println(s1 == s2); // 输出:false
###1.3 控制结构Java 中的控制结构用于控制程序的执行流程。例如:
* if-else语句* switch-case语句* while循环* for循环
java// if-else示例int score =80;
if (score >=90) {
System.out.println("A");
} else if (score >=70) {
System.out.println("B");
} else {
System.out.println("C");
}
// switch-case示例String day = "Monday";
switch (day) {
case "Monday":
System.out.println("Today is Monday.");
break;
case "Tuesday":
System.out.println("Today is Tuesday.");
break;
default:
System.out.println("Unknown day.");
}
###1.4 函数Java 中的函数是用来封装代码逻辑的块。它们可以接受参数,并返回值。
java// 函数示例public class Calculator {
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
System.out.println(add(5,3)); // 输出:8 }
}
###1.5 类和对象Java 中的类是用来定义对象结构和行为的模板。每个类都有一个名称(也称为类名),以及一些属性和方法。
java// 类示例public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
// 对象示例public class Main {
public static void main(String[] args) {
Person person = new Person("John",25);
person.sayHello(); // 输出:Hello, my name is John and I am25 years old.
}
}
###1.6 继承Java 中的继承是用来定义一个类从另一个类继承属性和方法的机制。
java// 继承示例public class Animal {
public void eat() {
System.out.println("I am eating.");
}
}
public class Dog extends Animal {
@Override public void eat() {
System.out.println("I, a dog, am eating.");
}
public void bark() {
System.out.println("Woof woof!");
}
}
###1.7 多态Java 中的多态是指一个方法或属性可以有多个不同的实现。
java// 多态示例public class Shape {
public void draw() {
System.out.println("Drawing a shape.");
}
}
public class Circle extends Shape {
@Override public void draw() {
System.out.println("Drawing a circle.");
}
}
public class Rectangle extends Shape {
@Override public void draw() {
System.out.println("Drawing a rectangle.");
}
}
###1.8 异常Java 中的异常是指程序执行过程中出现的错误或异常情况。
java// 异常示例public class Calculator {
public static int divide(int a, int b) throws ArithmeticException {
if (b ==0) {
throw new ArithmeticException("Cannot divide by zero.");
}
return a / b;
}
public static void main(String[] args) {
try {
System.out.println(divide(5,3)); // 输出:1 System.out.println(divide(5,0)); // 抛出异常 } catch (ArithmeticException e) {
System.out.println(e.getMessage()); // 输出:Cannot divide by zero.
}
}
}
###1.9 线程Java 中的线程是指程序执行过程中可以并发执行多个任务的机制。
java// 线程示例public class MyThread extends Thread {
@Override public void run() {
System.out.println("Hello, I am a thread.");
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); // 启动线程 }
}
###1.10 并发Java 中的并发是指程序执行过程中可以并发执行多个任务的机制。
java// 并发示例public class Counter {
private int count =0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) {
Counter counter = new Counter();
Thread thread1 = new Thread(() -> {
for (int i =0; i < 10000; i++) {
counter.increment();
}
});
Thread thread2 = new Thread(() -> {
for (int i =0; i < 10000; i++) {
counter.increment();
}
});
thread1.start();
thread2.start();
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
System.out.println(counter.getCount()); // 输出:20000 }
}
###1.11 IOJava 中的IO是指程序执行过程中与外部世界交互的机制。
java// IO示例public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter your name: ");
String name = reader.readLine();
System.out.println("Hello, " + name);
}
}
###1.12 网络Java 中的网络是指程序执行过程中与外部世界交互的机制。
java// 网络示例import java.net.*;
public class Main {
public static void main(String[] args) throws UnknownHostException, IOException {
InetAddress address = InetAddress.getByName("www.google.com");
System.out.println(address.getHostAddress());
}
}
###1.13 数据库Java 中的数据库是指程序执行过程中与外部世界交互的机制。
java// 数据库示例import java.sql.*;
public class Main {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable");
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
}
}
}
###1.14 XMLJava 中的XML是指程序执行过程中与外部世界交互的机制。
java// XML示例import javax.xml.parsers.*;
public class Main {
public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("example.xml"));
System.out.println(document.getDocumentElement().getTextContent());
}
}
###1.15 JSONJava 中的JSON是指程序执行过程中与外部世界交互的机制。
java// JSON示例import org.json.*;
public class Main {
public static void main

