【后端面经-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