2024年Java最新Java语法详解,2024最新Java面试题目解答

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

三、运算符

Java支持多种运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符等。

3.1. 算术运算符

Java的算术运算符包括加、减、乘、除等。例如,可以使用+运算符将两个数相加,使用-运算符将两个数相减。

示例代码:

int a = 10;
int b = 5;
int sum = a + b; // 15
int difference = a - b; // 5

3.2. 关系运算符

Java的关系运算符包括等于、不等于、大于、小于等。例如,可以使用==运算符判断两个数是否相等,使用<运算符判断一个数是否小于另一个数。

示例代码:

int a = 10;
int b = 5;
boolean isEqual = (a == b); // false
boolean isLessThan = (a < b); // false

3.3. 逻辑运算符

Java的逻辑运算符包括与、或、非等。例如,可以使用&&运算符实现逻辑与操作,使用||运算符实现逻辑或操作。

示例代码:

boolean isTrue1 = true;
boolean isTrue2 = false;
boolean result1 = (isTrue1 && isTrue2); // false
boolean result2 = (isTrue1 || isTrue2); // true

3.4. 位运算符

Java的位运算符包括与、或、异或、左移、右移等。例如,可以使用&运算符实现位与操作,使用|运算符实现位或操作。

示例代码:

int a = 5; // 0101
int b = 3; // 0011
int result1 = (a & b); // 0001 (位与)
int result2 = (a | b); // 0111 (位或)

四、控制流

Java的控制流语句包括if语句、switch语句、for循环、while循环等。

4.1. if语句

if语句用于根据条件执行不同的代码块。例如,可以使用if语句判断一个数是否为正数,如果是则执行某个代码块。

示例代码:

int num = 10;
if (num > 0) {
    System.out.println("The number is positive");
} else if (num < 0) {
    System.out.println("The number is negative");
} else {
    System.out.println("The number is zero");
}

4.2. switch语句

switch语句用于根据不同的情况执行不同的代码块。例如,可以使用switch语句根据用户的输入选择执行不同的操作。

示例代码:

int choice = 1;
switch (choice) {
    case 1:
        System.out.println("You selected option 1");
        break;
    case 2:
        System.out.println("You selected option 2");
        break;
    default:
        System.out.println("Invalid choice");
}

4.3. for循环

for循环用于重复执行一段代码块。例如,可以使用for循环输出从1到10的数字。

示例代码:

for (int i = 1; i <= 10; i++) {
    System.out.println(i);
}

4.4. while循环

while循环用于重复执行一段代码块,直到指定的条件不再满足为止。例如,可以使用while循环判断一个数是否为质数。

示例代码:

int num = 7;
boolean isPrime = true;
int i = 2;
while (i <= num / 2) {
    if (num % i == 0) {
        isPrime = false;
        break;
    }
    i++;
}
if (isPrime) {
    System.out.println(num + " is a prime number");
} else {
    System.out.println(num + " is not a prime number");
}

五、方法和函数

在Java中,方法用于定义可重复使用的代码块。方法可以接受输入参数并返回一个值。在Java中,函数是方法的一种特殊形式,可以独立于类存在。

示例代码:

// 定义一个方法,接受两个整数参数,并返回它们的和
public int add(int a, int b) {
    return a + b;
}

// 调用add方法,并打印返回结果
int result = add(5, 3);
System.out.println(result); // 输出:8

// 定义一个函数,独立于类存在,接受两个整数参数,并返回它们的差
public static int subtract(int a, int b) {
    return a - b;
}

// 调用subtract函数,并打印返回结果
int result = subtract(5, 3);
System.out.println(result); // 输出:2

在上述示例代码中,定义了一个名为add的方法和一个名为subtract的函数。add方法接受两个整数参数a和b,通过return语句返回它们的和。subtract函数也接受两个整数参数a和b,通过return语句返回它们的差。在调用方法和函数时,需要提供参数,并将返回值存储在变量中或直接使用。

六、类和对象

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.");
    }
}

// 创建对象并调用方法
Person person1 = new Person("Alice", 25);
person1.sayHello(); // 输出:Hello, my name is Alice and I am 25 years old.

Person person2 = new Person("Bob", 30);
person2.sayHello(); // 输出:Hello, my name is Bob and I am 30 years old.

在上述示例代码中,定义了一个名为Person的类,包含了两个私有属性name和age,以及一个公有的构造方法和一个公有的方法sayHello。构造方法用于创建对象时初始化对象的属性,而方法用于执行对象的行为。在创建对象时,使用new关键字和构造方法来实例化对象。然后,通过对象名和点操作符来调用对象的方法。在调用sayHello方法时,会输出对象的属性值。

需要注意的是,类定义了对象的模板,而对象则是类的实例。可以根据同一个类的定义创建多个不同的对象,每个对象具有独立的属性和行为。

七、继承和多态

继承是一种机制,允许子类继承父类的属性和方法。多态是指不同类型的对象对相同的方法可以有不同的实现。

// 定义一个父类 Animal
public class Animal {
    // 定义父类的方法
    public void makeSound() {
        System.out.println("The animal makes a sound.");
    }
}

// 定义一个子类 Dog,继承自 Animal
public class Dog extends Animal {
    // 子类可以继承父类的方法,也可以重写父类的方法
    @Override
    public void makeSound() {
        System.out.println("The dog barks.");
    }
}

// 定义一个子类 Cat,继承自 Animal
public class Cat extends Animal {
    // 子类可以继承父类的方法,也可以重写父类的方法
    @Override
    public void makeSound() {
        System.out.println("The cat meows.");
    }
}

// 创建父类对象和子类对象,并调用相同的方法
Animal animal1 = new Animal();
animal1.makeSound(); // 输出:The animal makes a sound.

Animal animal2 = new Dog();
animal2.makeSound(); // 输出:The dog barks.

Animal animal3 = new Cat();
animal3.makeSound(); // 输出:The cat meows.

在上述示例代码中,定义了一个父类Animal和两个子类Dog和Cat。子类继承了父类的属性和方法,同时也可以重写父类的方法。在创建对象时,可以使用父类的引用指向子类的对象。这就是多态的体现,同一个方法名可以根据不同的对象类型调用不同的实现。

通过创建父类对象animal1,调用makeSound方法,输出了父类的实现。创建子类对象dog和cat,并将其赋值给父类引用animal2和animal3,然后调用makeSound方法。由于animal2和animal3指向的对象是子类对象,所以调用的是子类的实现。这样就实现了多态,同一个方法名根据不同的对象类型调用了不同的实现。

八、异常处理

Java提供了异常处理机制,用于捕获和处理程序中的异常。通过使用try-catch语句块,可以在程序出错时执行特定的操作,以防止程序崩溃。

try {
    // 可能会产生异常的代码块
    // 例如,读取文件、连接数据库等
} catch (Exception e) {
    // 异常捕获后的处理代码块
    // 这里可以对异常进行处理,或者输出异常信息
} finally {
    // 无论是否发生异常,都会执行的代码块
    // 例如,关闭文件、释放资源等
}

在上述代码中,try块是用来包裹可能会产生异常的代码块。当try块中的代码发生异常时,会被catch块捕获。catch块中的代码用于处理异常,可以根据需要进行相应的操作,比如输出异常信息、记录日志等。

catch块中的参数e是用来接收捕获到的异常对象,它可以提供异常的详细信息,比如异常类型、发生的位置等。可以使用e.getMessage()方法获取异常的消息。

finally块是可选的,用于定义无论是否发生异常都会执行的代码块。一般情况下,finally块用于释放资源、关闭连接等必要的清理操作。

以下是一个示例代码,演示了如何使用异常处理机制:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ExceptionHandlingExample {
    public static void main(String[] args) {
        try {
            File file = new File("example.txt");
            Scanner scanner = new Scanner(file);
            System.out.println("File found!");
        } catch (FileNotFoundException e) {
            System.out.println("File not found: " + e.getMessage());
        } finally {
            System.out.println("Program completed.");
        }
    }
}

在上述示例代码中,尝试打开一个名为example.txt的文件。如果文件不存在,会抛出FileNotFoundException异常。在catch块中,输出异常信息,提示文件未找到。最后,无论是否发生异常,都会在finally块中输出"Program completed."。

九、输入输出

Java提供了丰富的输入输出类和方法,用于读取和写入数据。可以使用标准输入输出流、文件输入输出流、网络输入输出流等进行数据的输入输出操作。
标准输入输出流:

标准输入流使用System.in进行读取用户的输入,标准输出流使用System.out进行输出。

import java.util.Scanner;

public class IOExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("请输入一个整数:");
        int num = scanner.nextInt();
        System.out.println("您输入的整数是:" + num);
        
        System.out.print("请输入一个字符串:");
        String str = scanner.nextLine();
        System.out.println("您输入的字符串是:" + str);
        
        scanner.close();
    }
}

总结

面试难免让人焦虑不安。经历过的人都懂的。但是如果你提前预测面试官要问你的问题并想出得体的回答方式,就会容易很多。

此外,都说“面试造火箭,工作拧螺丝”,那对于准备面试的朋友,你只需懂一个字:刷!

给我刷刷刷刷,使劲儿刷刷刷刷刷!今天既是来谈面试的,那就必须得来整点面试真题,这不花了我整28天,做了份“Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”

image

且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

14920437616)]

且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。

[外链图片转存中…(img-cOE7pI23-1714920437617)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值