Java 基础面试300题 (201-230)

Java 基础面试300题 (201-230)

201.下面代码片段的输出是什么?

Predicate<Integer> numberChecker = (num)> num > 20;
int input = 10;
System.out.println(input+” greater than 20–”+numberChecker.test(input)); //Line 1
input = 40;
System.out.println(input+” greater than 20–”+numberChecker.test(input)); //Line 2

上述代码片段使用了Predicate内置函数接口,该接口接受一个任何数据类型的参数,并返回一个布尔值, 用于测试一个条件。在上述情况下,代码创建一个名为numberChecker的谓词,该谓词接受整数值。它通过lambda表达式实现,该表达式检查输入数是否大于20。第1行使用输入数据10应用谓词值,而第2行使用输入数据40应用谓词值,因此代码会打印以下输出:

10 greater than 20:false
40 greater than 20:true

202. 使用哪个内置函数接口将字符串转换为大写?

Java 有一个名为UnaryOperator的内置函数接口,它接受任何数据类型的参数,并返回相同数据类型的结果。它有一个名为apply的方法,可以对输入值进行操作。因此,可以使用它将字符串转换为大写。如下代码所示:

UnaryOperator<String> converter = str–> str.toUpperCase();
System.out.println(converter.apply(“hello,world”));

在这里,代码创建了一个名为converterUnaryOperator 类型的函数接口,并使用lambda表达式实现该接口, lambda表达式的主体逻辑调用字符串的toUpperCase()方法将字符串转换为大写。因此,上述代码会打印以下输出:

HELLO WORLD

203.下面的代码有效吗?

@FunctionalInterface
public interface Interface1 {
public void doSomething();
}
public interface Interface2 extends Interface1{
public void doSomethingElse();
}

上面代码是有效的。 代码声明了一个名为Interface1的函数接口, 该接口有一个名为doSomething的抽象方法,然后定义了另一个名为Interface2的接口(不一定是函数接口),它扩展了Interface1,并有一个doSomethingElse的抽象方法。 接口Interface2现在有两个抽象方法,doSomething()doSomethingElse(),因为它没有用@FunctionalInterface来注解,所以有多个抽象方法是可以的。但如果在Interface2上使用@FunctionalInterface进行注解,代码将导致编译错误。

204. 有哪些Java 8之前的接口由 Java 8转换成了函数接口。?

在Java 8之前,有一些接口已经有一个抽象方法。Java 8通过在这些接口上指定@FunctionalInterface注解将这些接口指定为函数接口。因此,这些接口中的抽象方法都可以通过lambda表达式来实现。下表列出了这些接口:

接口描述
java.lang.Runnable用于创建线程。
java.util.cocurrent.Callable用于创建具有返回值的线程。
java.util.Comparator用于比较值。
java.io.FileFilter用于过滤文件。

205. Java 8为什么为基础数据类型内置了一些专门的函数接口 ,如IntSupplierBooleanSupplier等?

主要原因是提高性能,减少内存使用。 使用这些专门的内置接口可以消除了自动装箱的需求,从而提高了性能。考虑如下需求,随机生成一个小于100的整数 。 下面代码使用通用的 Supplier<Integer> 实现上述需求,但是因为是通用的 Supplier,它只能够处理对象类型,而不能够处理基础数据类型,所以必须将Random类返回的值包装为整数,带来了一定的性能损失。

Supplier<Integer> integerSupplier = ()> new Integer(new Random().nextInt());

现在考虑以下代码,它使用了专门的IntSupplier函数接口,同样返回一个小于100的随机整数:

IntSupplier integerSupplier2 = ()> new Random().nextInt();

此时,没有必要将Random类的返回值包装为Integer了, 避免了自动装箱,性能更好,内存使用也更少 。

206.内置函数接口通常在哪里使用?

Java 8增加了流 API,有助于在集合上执行批量操作。内置的函数接口通常用作流API中方法的参数。流方法将函数接口指定的操作应用于流中的每个元素。例如,Stream接口有一个过滤方法,可以根据某些条件过滤集合。该条件通过Predicate接口指定,该接口是一个内置的函数接口。它检查输入流中的每个值是否与谓词指定的条件匹配。同样,Stream接口有一个名为map的方法,可以转换Stream中的元素。它接受内置函数接口的实例为参数, 然后将函数接口指定的操作应用于流中的每个元素。

207.什么是lambda表达式?有什么优点?

Lambda表达式用于指定没有名称的函数。它主要用于实现函数接口中的抽象方法。Lambda表达式有如下几个优点:

  • 使代码简洁。在Java 8之前,开发人员必须编写大量代码来实现一个接口,代码冗长而繁琐。Lambda表达式消除了与实现接口相关的大多数样板代码。

  • lambda表达式允许将代码作为方法的参数传递。

  • lambda 可以轻而易举地为同一方法提供不同的实现。

  • Java 8增加的其他一些新功能,如for-each遍历和Stream 框架也大量使用了lambda表达式。

208.Lambda表达式和函数接口是什么关系?

函数接口是具有单一抽象方法的接口。而Lambda表达式用于实现函数接口中指定的抽象方法。

由于Java是一种面向对象的语言,lambda表达式不能单独存在,需要与一个对象相关联。因此,Java 8引入了函数式接口,并强制lambda表达式仅与函数式接口一起使用,用来实现函数接口的抽象方法。 因此lambda表达式成为函数接口一个具体的实现,成为OO的一部分。

函数接口和lambda表达式一起有助于编写干净简洁的Java代码。

Java 8增加的函数接口使Java 语言也支持某种程度的函数式编程。

209.解释lambda表达式的语法。

下面是lambda表达式的语法:

(parameters)> {lambda body}

lambda表达式由输入参数,lambda运算符 -> 和表达式主体三部分构成。 lambda表达式可以接收零个或更多参数。如果它不接受任何参数,则需要使用空括号。如果它接受单个参数,则无需在括号中指定该参数。如果它接受多个参数,则需要在括号中指定并用逗号分隔。lambda主体是普通的Java代码,可以包含任意数量的语句。如果lambda主体只是一个单语句,则可以省略主体的大括号。

210.给出一些lambda表达式的例子。

以下是lambda表达式的一些示例:

示例1-单个参数,无返回值

str–> System.out.println(str);

这个lambda表达式接受一个参数,并使用Sysout 语句打印。它不返回任何值。

示例2-多个参数,有返回值

(num1, num2)> num1+num2;

这个lambda表达式接受两个参数,并返回它们的相加的结果。代码中并未明确指定return关键字。

示例3-无参数,有返回值

()>{
//doing something here
return 0;
}

这个lambda表达式不接受任何参数,它返回值0,代码显示使用了return关键字。

211. 如何使用Lambda表达式实现函数接口? 。

函数接口是只有一个抽象方法的接口。下面代码定义了一个名为StringConverter的函数接口:

@FunctionalInterface
public interface StringConverter {
public String convert(String s);
}

它的唯一抽象方法名是 convert,这个方法接受一个String参数并返回String。下面的Lambda表达式提供了该函数接口的一个具体实现,它将输入字符串转换为大写并返回:

StringConverter converter = (str)> str.toUpperCase();

212.如何使用不同的lambda表达式以不同的方式实现相同的函数接口?

考虑以下StringConverter 函数接口:

@FunctionalInterface
public interface StringConverter {
public String convert(String s);
}

我们可以通过不同的lambda表达式为convert方法提供不同的实现,如下是一种实现, 它通过lambda表达式将输入字符串转换为大写并返回它:

StringConverter upperCaseconverter = str–> str.toUpperCase();
String result = upperCaseconverter.convert(Hello);

下面是另外一种实现, 它通过lambda表达式将输入字符串转换为小写并返回 :

StringConverter lowerCaseconverter = str–> str.toLowerCase();
String result = lowerCaseconverter.convert(Hello);

因此,不同的lambda表达式为StringConverter 函数接口提供了不同的实现。

213.下面lambda表达式有错误吗, 如何修复?

(str)> return str.toUpperCase();

上面的lambda表达式使用了显示的 return关键字, 但没有将 lambda主体包含在大括号中,因此错误。如下是正确代码:

(str)> {return str.toUpperCase();};

也可以直接删除return关键字,而使用隐式返回,如下代码:

(str)–> str.toUpperCase();

214.以下代码正确吗?

public void generateSquareRoot(int num) {
Function<Integer, Double> squareRoot = (num)> Math.sqrt(num);
}

上面的代码定义了一个名为generateSquareRoot 的方法,它接受整数值为参数,使用内置的函数接口Function,并通过lambda表达式实现它。

上述代码无效,会导致编译错误。这是因为, 在lambda表达式中声明的参数与其包裹方法中声明的参数或局部变量同名。

generateSquareRoot方法接受一个名为num的参数,在lambda表达式中又使用了相同的名称声明参数,这会导致编译错误。要修复此问题,只需要将方法参数或lambda表达式参数重新命名为另外一个不同的名称即可。

215.编写一个函数式接口,使其成为以下lambda表达式的目标类型。

(input)> input.toUpperCase();

上述代码定义了一个lambda表达式,它接受一个String类型为参数, 将其转换为大写并返回,返回类型也是String。 因此,该lambda表达式可用于实现以下函数接口:

@FunctionalInterface
public interface Interface1 {
public String doSomething(String input);
}

此代码定义了一个名为Interface1的函数接口,它有一个doSomething方法,接受一个字符串为参数,并返回一个字符串 。

216. 如何使用lambda表达式创建新线程?

java.lang.Runnable 接口用于创建新线程。Java 8将此接口指定为函数接口,因此可以使用lambda表达式实现它。如下代码所示 :

Runnable r = ()> {
System.out.println(Starting Thread..);
//some more code
};
Thread myThread = new Thread(r);
myThread.start();

在上面代码中, 我们通过一个简单的lambda表达式实现了Runnable接口,然后使用此Runnable对象创建一个myThread 线程对象,调用myThread.start()方法, 创建、并运行一个新的线程。

217. 创建流的有哪几种不同方式?

如下几种方法都可以创建流:

  • 直接从一组值创建,如下所示:
Stream<String> values = String.of(Red,Blue);
  • 从实现了Collections接口的对象中创建流,如下所示:
List<Integer> numbers = Arrays.asList(1,2,3,4);
Stream<Integer> stream = numbers.stream();
  • 从数组创建流,如下所示:
int[] numbers = new int[] {1,2,3,4};
IntStream arrayStream= Arrays.stream(numbers);

218.用代码示例解释流的filter 操作。

Stream.filter()操作可用于根据某些条件对流进行过滤。 它创建了一个新的流,由与指定过滤条件匹配的元素组成。它的输入参数是Predicate函数接口,根据其指定的谓词条件过滤流中的元素。如下代码示例:

Stream<Integer> numbers = Stream.of(7,3,9,6,1);
Stream<Integer> output = numbers.filter(num–> num > 5);

上述代码创建一个整数值的流,然后用lambda表达式调用filter()方法进行过滤,该表达式检查输入的数是否大于5。因此,输出流将由仅大于5的数字组成。

219. Java流有哪些主要不同类型的操作?

Java流操作可以分类如下:

类型描述
中间操作中间操作在流上操作并产生流输出。由于中间操作生成流,因此它们可以链接在一起执行一系列操作。一些中间操作的例子包括filtermapsorted
终止操作终止操作在流上操作,但产生非流结果, 可以产生任何数据类型的结果。终止操作不能链接。当一系列流操作被链接时,终止操作通常是最后一个操作。一些终止操作的例子包括countanyMatchallMatchcollect

220.什么是并行流? 如何创建并行流?

除了顺序流外,Java 流API还支持并行流。并行流在流中的元素上同时运行,从而具有更好的性能。Java 8为Collection接口增加了一个名为parallelStream()的新方法, 该方法可用于获取与底层集合相对应的并行流。如下代码示例:

List<String> colours = Arrays.asList(Red,Green,Blue);
Stream<String> parallelStream = colours.parallelStream();

此代码首先创建一个名为colors 的字符串列表,然后调用parallelStream()方法, 返回与列表对应的并行流。随后在并行流上执行的任何进一步操作都将在流中的元素上同时执行。

221.如何将流转换回为集合?

Java流接口有一个名为collect()的方法,可用于将流转换回集合。如下代码所示 :

Stream<Integer> numbers = Stream.of(7,3,9,6,1);
List<Integer> filteredList = numbers.filter(num–> num > 5).collect(Collectors.toList());

上述代码首先创建一个整数流 , 然后,调用filter()方法来获取大于5的数字。之后,它调用collect()方法, 该方法接受一个收集器 Collector类型参数, Collectors.toList()方法返回一个将输入流转换为列表的收集器。因此最终,filteredList是一个由大于5的数字构成的列表。Collectors类中还有其他方法,如Collectors.toSetCollectors.toMapCollectors.toCollection等等,可用于将流转换为(回)其他类型的集合。

222.以下代码片段的输出是什么?

Stream<Integer> numbers = Stream.of(10,15,20,25);
boolean anyMatch = numbers.anyMatch(num–> num%2==0);
System.out.println(anyMatch);

上面的代码片段使用流接口的anyMatch()方法。如果输入流中的任何元素与指定条件匹配,则此方法返回true。在上面情形,它检查输入流中是否有偶数。由于流中有偶数,所以
anyMatch()方法返回true。因此,此代码打印以下输出:

true

223. 流和集合有什么区别?

流和集合之间有下面几个区别:

  • 集合实际上存储数据。 另一方面,流不存储任何数据,它只是对底层数据执行一些操作。

  • 对集合执行操作时,集合会被修改。对在集合上获得的流执行操作时,底层集合不会被修改。

  • 集合可以在创建后进行修改。另一方面,流在构建后无法修改。

  • 可以多次遍历集合,而流只能遍历一次。 如果希望再次遍历流,这是不可能的,需要从底层数据源创建一个新的流并再次遍历。

224. 如何使用Java流操作从一个字符串列表中删除重复项, 并转换为大写?

下面代码片段演示了如何实现上述要求:

List<String> fruits =
Arrays.asList(Apple,Mango,Banana,Apple,Orange,Mango,Strawberry); //Line 1
List<String> uniqueFruits = fruits.stream().distinct().map(str–> str.toUpperCase()).collect(Collectors.toList()); //Line 2
uniqueFruits.forEach(str–> System.out.println(str));//Line 3

上述代码在第 1行首先创建一个名为fruits 的字符串值列表。第2行调用fruits.stream(),生成一个字符串流。然后,调用流的 distinct()操作删除重复项。distinct()方法返回一个新的流,该流仅由输入流中的不同元素组成。 然后调用流的map()操作。Map()操作用于转换流。它接受函数实例(可以是lambda表达式)作为参数,并将函数应用于流中的每个元素。在上述情形,使用lambda表达式将流中的每个字符串转换为大写。最后,调用collect()方法,对流进行收集并将结果转换为列表 uniqueFruits, 并在控制台上打印该列表中的所有元素。因此,代码最终输出如下:

APPLE
MANGO
BANANA
ORANGE
STRAWBERRY

225.可以将数组转换为流吗?

是的,可以将数组转换为流。Java 8在java.util.Arrays类中添加了stream()方法,用于从数组生成流。 这个方法有多个重载版本,接受不同数据类型的数组,并将数组转换为流。以下代码
将一个整数数组转换为IntStream流:

int[] numbers = {10,20,30};
IntStream numberStream = Arrays.stream(numbers);

226. 考虑下面 Employee类 :

public class Employee {
private String name;
private int salary;
}

现在假设有以下员工对象的列表:

List<Employee> employees = new ArrayList<Employee>();
employees.add(new Employee(John,10000));
employees.add(new Employee(Ana,15000));
employees.add(new Employee(Tia,8000));

如何使用流API创建一个新列表,该列表仅包含员工工资,且按升序排列?

下面代码可用于实现上述需求:

List<Employee> sortedList = employees.stream().sorted((emp1, emp2)> emp1.getSalary()–emp2.getSalary()).collect(Collectors.toList());
sortedList.forEach(emp–> System.out.println(emp.getSalary()));

上述代码首先在员工列表上获取流。然后,它调用排序方法sorted()对流进行排序。sorted()方法接受一个Comparator为输入,并使用一个lambda表达式实现的Comparator,lambda表达式的逻辑是比较Employee对象的工资字段 。最后,调用collect()方法将流转换回列表。 代码最终打印以下输出:

8000
10000
15000
20000

227.什么是方法引用?有什么优点?

方法引用是Java 8引入的新运算符。它是lambda表达式的快捷方式。 它由两个连续的冒号表示::表示。

方法引用有如下几个优点:

  • 可以避免代码重复。 有时,程序可能已经有一个方法,它的代码可能和 lambda表达式中的代码相同。在这种情况下可通过方法引用直接调用现有方法,而不是在lambda表达式中再次编写新代码 。

  • 它们使代码简洁:方法引用比lambda表达式更进一步。它们通过将代码从lambda表达式中移到单独的方法中而使代码更加简洁。

228. Java有哪些不同类型的方法引用?

Java有如下4种不同类型的方法引用:

  • 静态方法引用:当通过方法引用引用类的静态方法时,就会发生这种情况。语法如下:
class::staticmethod
  • 实例方法引用:当通过方法引用引用类的实例方法时,就会发生这种情况。语法如下:
object::instancemethod
  • 构造函数引用:当通过方法引用引用类的构造函数时,就会发生这种情况。语法如下:
 class::new
  • 任意方法引用:当访问类的实例方法但不指定任何特定对象时,就会发生这种情况。语法如下:
class::instancemethod

229.举例说明静态方法引用。

当通过方法引用运算符访问类的静态方法时,就会发生静态方法引用。以下代码演示了这一点:

public class MethodReferenceDemo {
public static boolean checkIfNumberGreaterThan8(int num) {
return num > 8;
}
public static void main(String[] args) {
Predicate<Integer> numberChecker =
MethodReferenceDemo::checkIfNumberGreaterThan8;
boolean flag = numberChecker.test(10);
}
}

在上述代码中 ,MethodReferenceDemo类有一个名为checkIfNumberGreaterThan8()的静态方法,它检查输入数字是否大于8,并相应地返回一个布尔值。在main方法中,定义了一个谓词, 谓词的逻辑使用lambda表达式实现, 这个lambda表达式直接使用静态方法引用来引用已经存在的静态方法 checkIfNumberGreaterThan8(),而不是重新编写新的代码(来实现谓词逻辑) 。由于checkIfNumberGreaterThan8()是一个静态方法,因此使用类限定符后跟方法名方式引用。

230.考虑以下 Shape类:

public class Shape {
private String name;
}

为了使以下代码有效,需要进行哪些更改?

List<String> shapeNames = Arrays.asList(Circle,Triangle);
List<Shape> shapes = shapeNames.stream().map(Shape::new).collect(Collectors.toList());

上面的代码创建一个名为shapeNames的字符串列表,然后使用Stream 的map()操作创建一个名为shapesShape对象列表, 代码使用构造函数引用创建一个新的Shape对象,因此,Shape类需要一个接受String为输入参数构造函数,但是目前Shape类没有这样的构造函数,因此上述代码会编译出错, 按如下方式增加构造函数即可:

public Shape(String name) {
this.name = name;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

perl: URI::rtsp 是用来处理RTSP协议的的URI的模块。

在Perl中&#xff0c;URI::rtsp 是用来处理RTSP&#xff08;Real Time Streaming Protocol&#xff0c;实时流协议&#xff09;的URI的模块。 以下是一些使用 URI::rtsp 的方法&#xff1a; 1.创建一个RTSP URI use URI::rtsp;my $uri URI::rtsp->new("rtsp://user…

WPS部分快捷操作汇总

记录一些个人常用的WPS快捷操作 一、去除文档中所有的超链接&#xff1a; 1、用WPS打开文档&#xff1b; 2、用Ctrla全选&#xff0c;或者点击上方的【选择】-【全选】&#xff0c;选中文档全部内容&#xff1b; 3、按CTRLSHIFTF9组合键&#xff0c;即可一次性将取文档中所有…

AI学习指南机器学习篇-线性回归统计推断

AI学习指南机器学习篇-线性回归统计推断 在机器学习领域&#xff0c;线性回归模型是最为常见且基础的模型之一。而统计推断则是为了更好地理解数据背后的规律而产生的一门重要学科。本文将探讨线性回归模型与统计推断的关系&#xff0c;重点讨论参数估计的置信区间和假设检验。…

Linux的程序管理2:设置优先级,程序的查看与处理---ps命令详解与kill,killall,top,renice,nice搭配使用管理linux

前言 程序的管理除了前文说到的前后台执行&#xff0c;离线执行。还包括下面几个方面&#xff1a; 1&#xff1a;如何找到最耗费系统资源的程序&#xff1f; &#xff08;使用top命令找到PID然后排查原因&#xff09; 2&#xff1a;设置程序的优先级&#xff0c;让其被执行的概…

Leetcode 第 397 场周赛题解

Leetcode 第 397 场周赛题解 Leetcode 第 397 场周赛题解题目1&#xff1a;3146. 两个字符串的排列差思路代码复杂度分析 题目2&#xff1a;思路代码复杂度分析 题目3&#xff1a;3148. 矩阵中的最大得分思路代码复杂度分析 题目4&#xff1a;3149. 找出分数最低的排列思路代码…

“论软件的可靠性评价”必过范文,突击2024软考高项论文

论文部分 摘要 2023年03月&#xff0c;我参与了某艺术品公司线上拍卖管理平台的研发。该项目的目标是建立一个互联网在线拍卖平台&#xff0c;用户可以通过手机或PC浏览器进入拍卖平台&#xff0c;对喜欢的拍品进行参拍出价。平台提供了在线支付、在线出价、保证金管理、拍品…

php fpdf使用记录

使用composer安装fpdf > composer require setasign/fpdf简单创建一个pdf文件并输出下载 //fpdf版本&#xff1a;&quot;setasign/fpdf&quot;: &quot;^1.8&quot;, // 创建PDF实例 $pdf new \FPDF();// 设置文档信息 $pdf->SetAuthor(Your Name); $pdf-…

深入解析力扣171题:Excel表列序号(进制转换法详解及模拟面试问答)

在本篇文章中&#xff0c;我们将详细解读力扣第171题“Excel表列序号”。通过学习本篇文章&#xff0c;读者将掌握如何使用多种方法来解决这一问题&#xff0c;并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释和ASCII图解&#xff0c;以便于理解。 问题描述…

Android开机动画的结束过程BootAnimation(基于Android10.0.0-r41)

文章目录 Android 开机动画的结束过程BootAnimation(基于Android10.0.0-r41) Android 开机动画的结束过程BootAnimation(基于Android10.0.0-r41) 路径frameworks/base/cmds/bootanimation/bootanimation_main.cpp init进程把我们的BootAnimation的二进制文件拉起来了&#xf…

iOS开发中的sceneDidEnterBackground和applicationDidEnterBackground

在 iOS 应用开发中&#xff0c;sceneDidEnterBackground 和 applicationDidEnterBackground 是两个不同的生命周期方法&#xff0c;它们分别属于 UISceneDelegate 和 UIApplicationDelegate&#xff0c;用于处理应用程序或场景进入后台时的逻辑。以下是它们的区别和用法&#x…

字符串和字节串

字符串和字节串 在 Python 中,字符串(String)和字节串(Byte String)是两种不同的数据类型。 字符串(String) 字符串是一种文本数据类型,它可以包含 Unicode 字符。Python 的字符串是使用 Unicode 编码的,可以包含任何语言的字符。 例如: s = "hello" …

YOLOv5改进 | 添加注意力篇 | 利用YOLOv10提出的PSA注意力机制助力YOLOv5有效涨点(附代码 + 详细修改教程)

一、本文介绍 本文给大家带来的改进机制是YOLOv10提出的PSA注意力机制&#xff0c;自注意力在各种视觉任务中得到了广泛应用&#xff0c;因为它具有显著的全局建模能力。然而&#xff0c;自注意力机制表现出较高的计算复杂度和内存占用。为了解决这个问题&#xff0c;鉴于注意…

一个可以自动生成随机区组试验的excel VBA小程序

在作物品种区域试验时&#xff0c;通常会采用随机区组试验设计&#xff0c;特制作了一个可以自动生成随机区组试验的小程序。excel参数界面如下&#xff1a; 参数含义如下&#xff1a; 1、生成新表的名称&#xff1a;程序将新建表格&#xff0c;用于生成随机区组试验。若此处为…

2024年3月电子学会Python编程等级考试(四级)真题题库

2024年3月青少年软件编程Python等级考试&#xff08;四级&#xff09;真题试卷 题目总数&#xff1a;38 总分数&#xff1a;100 选择题 第 1 题 单选题 运行如下Python代码&#xff0c;若输入整数3&#xff0c;则最终输出的结果为&#xff1f;&#xff08; &#xff…

java动态获取实体类字段的方法

1.使用反射&#xff08;Reflection&#xff09;API来动态地获取实体类的字段 在Java中&#xff0c;我们可以使用反射&#xff08;Reflection&#xff09;API来动态地获取实体类的字段。以下是一个详细的代码示例&#xff0c;演示了如何获取一个实体类的所有字段&#xff1a; …

arm cortex-m架构 SVC指令详解以及其在freertos的应用

1. 前置知识 本文基于arm cortex-m架构描述&#xff0c; 关于arm cortex-m的一些基础知识可以参考我另外几篇文章&#xff1a; arm cortex-m 架构简述arm异常处理分析c语言函数调用规范-基于arm 分析 2 SVC指令 2.1 SVC指令位域表示 bit15 - bit12&#xff1a;条件码&#…

SOFA-RPC学习记录

文章目录 需求分析模块划分微服务模块交互模块 可拓展架构插件机制 功能分析交互模块 学习微服务模块交互模块 dubbo与nacos集成学习Nacos配置中心实战 dubbo与apollo集成学习配置中心组件与k8s的抉择参考资料 结论 本报告旨在深入学习SOFA-RPC框架&#xff0c;特别是其动态配置…

LeetCode 每日一题 2024/5/27-2024/6/2

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 5/27 2028. 找出缺失的观测数据5/28 2951. 找出峰值5/29 2981. 找出出现至少三次的最长特殊子字符串 I5/30 2982. 找出出现至少三次的最长特殊子字符串 II5/31 2965. 找出缺…

Linux综合实践(Ubuntu)

目录 一、配置任务 1.1 配置该服务器的软件源为中科大软件源 1.2 安装相关软件openssh-server和vim 1.3 设置双网卡&#xff0c;网卡1为NAT模式&#xff0c;网卡2为桥接模式(桥接模式下&#xff0c;使用静态ip&#xff0c;该网卡数据跟实验室主机网络设置相似&#xff0c;除…

如何搜索[仅有1个文件]或[指定个数范围、名称、类型文件等复杂情况]的文件夹

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 打开工具&#xff0c;切换到批量复制板块&#xff0c;用Ctrl5可以快速切换 然后鼠标移动到工具的贴边的右侧&#xff0c;不是移出工具外面&#xff0c;还在…