面试突击指南:Java基础面试题1

1. Lambda表达式

Lambda表达式提供了一种简洁的方式来实现接口的单个抽象方法,通常用于替代匿名类。

示例:

List<String> names = Arrays.asList("peterF", "anna", "mike", "xenia");
Collections.sort(names, (a, b) -> b.compareTo(a));

在上述代码中,lambda表达式替代了匿名比较器,实现了对字符串列表的降序排序。

2. 函数式接口

函数式接口是仅包含一个抽象方法的接口,Java 8引入了@FunctionalInterface注解来确保这一点。

示例:

@FunctionalInterface
interface Converter<F, T> {T convert(F from);
}
Converter<String, Integer> converter = Integer::valueOf;
Integer converted = converter.convert("123");
System.out.println(converted); // 123
3. 方法引用和构造器调用

方法引用使用::符号,可以引用静态方法、实例方法以及构造函数。

示例:

Converter<String, Integer> converter = Integer::valueOf;
PersonFactory<Person> personFactory = Person::new;
Person person = personFactory.create("Peter", "Parker");
4. Stream API

Stream API用于处理集合类,可以执行过滤、排序、映射等操作,并且可以串行或并行执行。

示例:

List<String> stringCollection = new ArrayList<>();
stringCollection.add("ddd2");
stringCollection.add("aaa2");
stringCollection.add("bbb1");stringCollection.stream().filter(s -> s.startsWith("a")).forEach(System.out::println); // aaa2
5. 接口中的默认方法和静态方法

Java 8允许在接口中定义默认方法和静态方法。

示例:

interface Formula {double calculate(int a);default double sqrt(int a) {return Math.sqrt(a);}
}
Formula formula = (a) -> sqrt(a * 100);
System.out.println(formula.calculate(100)); // 100.0
System.out.println(formula.sqrt(16)); // 4.0
6. 新时间日期API

Java 8引入了全新的时间日期API,提供了更简洁且更安全的日期和时间操作类。

主要类和示例:

  • Instant 代表时间戳
  • LocalDate 代表日期,例如2020-01-14
  • LocalTime 代表时刻,例如12:59:59
  • LocalDateTime 代表具体时间 2020-01-12 12:22:26
  • ZonedDateTime 代表带时区的完整时间

示例:

LocalDate today = LocalDate.now();
LocalTime now = LocalTime.now();
LocalDateTime now = LocalDateTime.now();
ZonedDateTime zonedNow = ZonedDateTime.now();
7. 并行Streams

Stream可以通过并行处理来提升性能,只需调用parallelStream()即可。

示例:

List<String> values = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {values.add(UUID.randomUUID().toString());
}long t0 = System.nanoTime();
long count = values.parallelStream().sorted().count();
long t1 = System.nanoTime();

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

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

相关文章

java面向对象(4)

目录 1.多态 1.1如何构成多态 1.2多态的调用规则 1.3多态的向下转型 1.4 instanceof运算符 1.5多态的好处 2.final关键字 3.接口 3.1接口中可以定义哪些成员 3.2接口的使用 3.2接口的特性 1.多态 多态:同一种事物,在不同的时刻表现出不同的状态 1.1如何构成多态 …

yii2 ActiveForm使用技巧

持续更新&#xff1a; 1、搜索输入框&#xff1a;form-inline <?php $form ActiveForm::begin([action > [index],method > get,options > [class > form-inline] &#xff08;增加此行代码&#xff09; ]); ?>

PBR网络数据流量分流+NQA联动静态路由

一、实验目的&#xff1a; 企业有两个网段&#xff0c;业务1网段和业务2网段&#xff0c;拓扑图如下&#xff0c; 二、实验要求 pc1报文走左侧链路到达ar1&#xff0c;pc2报文走右侧链路到达ar1&#xff0c;且当ar2或者ar3发生故障时候&#xff0c;可以通过另一个设备到达ar1…

1.4 Kettle 数据同步工具详细教程

工具介绍 一、概述 Kettle&#xff0c;又名 Pentaho Data Integration&#xff08;PDI&#xff09;&#xff0c;是一个开源的数据集成工具&#xff0c;最初由 Pentaho 公司开发。它能够从多种数据源提取、转换并加载&#xff08;ETL&#xff09;数据&#xff0c;适用于数据仓…

字符串根据给定关键词进行高亮显示

问题 一般使用搜索引擎的时候我们会发现,搜索出来的内容都对我们搜索的关键词进行了高亮显示, 这样我们能很直观的看出是不是我们想要的结果, 最近我也遇到了类似的功能, 因为关于舆情的系统使用到了ES, 一开始心想ES本身就有支持的API实现起来不难, 但我这里的需求还不太一样…

Altera的JTAG电路下载模块为何上下拉电阻,不可不知的秘密

一、FPGA背景信息 当前的FPGA市场上有国际和国产两大体系&#xff0c;国际排名&#xff0c;一直很稳定&#xff0c;国际上前三名Xilinx、Altera、Lattice&#xff0c;国内FPG厂商也在填补空白&#xff0c;低端、中低端市场上发力&#xff0c;替代潮流已在兴起&#xff0c;目前…

【驱动篇】龙芯LS2K0300之单总线驱动

实验过程 实验目的&#xff1a; 在龙芯开发板上面使用单总线驱动DS18B20温度传感器 ① 根据原理图连接DS18B20模块 ② 将i2c0引脚的功能复用为GPIO ③ 注册字符设备&#xff0c;按照DS18B20的读写时序编写读写驱动接口 ④ 编写测试用例解析传感器的数值 原理图 将板子上…

jupyter notebook 中使用ipython 魔法指令整理

在 Jupyter Notebook 中&#xff0c;IPython 魔法指令为数据分析和探索提供了很多便利。以下是一些常见且实用的 IPython 魔法指令及其用法&#xff1a; 1. %timeit 魔法指令 用于测量一段代码的执行时间。 %timeit [i for i in range(1000)]2. %matplotlib inline 魔法指令…

政务云VMware私有云企业云平台建设参考学习方案资料

下面资源来源于网络&#xff0c;如有侵权请联络删除&#xff01; NetApp私有云及虚拟化解决方案&#xff08;49页&#xff09;.pptx Openstack构建企业私有云.pdf VMware私有云解决方案&#xff08;84页&#xff09;_.docx 上海市政务云管理暂行办法.pdf 私有云平台实施方案…

马尔可夫聚类算法

马尔可夫聚类算法&#xff08;Markov Clustering Algorithm&#xff0c;MCL&#xff09;是一种用于图聚类的算法&#xff0c;广泛应用于生物信息学、社交网络分析、推荐系统等领域。 其核心思想是模拟随机游走过程&#xff0c;通过迭代地扩散和收缩图上的概率分布来识别图中的…

章十九、JavaVUE —— 框架、指令、声明周期、Vue-cli、组件路由、Element

目录 一、 框架 ● vue.js 框架 ● 特点 ● Vue 安装 二、 第一个vue程序 ● 创建项目 ​编辑 ● 导入 vue.js ● 创建vue对象&#xff0c;设置属性&#xff0c;使用模版渲染到页面 介绍 — Vue.js (vuejs.org) 三、 vue指令 ● v-text ● v-html ● v-…

LeetCode 671.二叉树第二小的结点

这个题我们可以用数组辅助完成&#xff0c;然后进行排序后&#xff0c;再用再进行取值&#xff0c;这是我的代码块: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/void Preorde…

【07】持久化-数据库选择和设计

1. 数据库选择 在比特币原始论文中,并没有提到要使用哪一个具体的数据库,它完全取决于开发者如何选择。Bitcoin Core ,最初由中本聪发布,现在是比特币的一个参考实现,它使用的是 LevelDB。 我们将要使用的是BoltDB。Bolt DB是一个纯键值存储的 Go 数据库。没有具体的数据…

上海市计算机学会竞赛平台2023年9月月赛丙组分形扩张

题目描述 一开始&#xff0c;你只有一个数字&#x1d460;s&#xff0c;&#x1d460;s 只可能为 00 或 11。接下来&#xff0c;你需要将这个数字扩张 &#x1d45b;n 轮&#xff0c;最后变成一个 2&#x1d45b;2&#x1d45b;2n2n 的矩阵&#xff0c;每轮的扩张规则如下&…

uniapp scroll-view 虚拟滚动【适合每条数据高度一致】

基本原理 有一万条数据&#xff0c;我们按10条一页来进行分组&#xff0c;会有1000页页面滚动到第10页的位置的时候&#xff0c;10页之后和10页之前是不用被显示的&#xff0c;可以直接隐藏掉如果是数据删除&#xff0c;页面会不流畅&#xff0c;会卡顿一下&#xff0c;且滚动位…

vue-cli搭建

一、vue-cli是什么&#xff1f; vue-cli 官方提供的一个脚手架&#xff0c;用于快速生成一个 vue 的项目模板&#xff1b;预先定义 好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven 项目时可以选择创建一个 骨架项目&#xff0c;这个骨架项目就是脚手架&#xff0c;…

一个使用Python和假设的天气API来获取和展示天气数据的简单脚本示例

要使用Python编写一个天气预测的脚本&#xff0c;我们通常需要依赖于现有的天气API来获取实时或历史天气数据&#xff0c;并且结合机器学习或统计模型来进行预测。然而&#xff0c;由于天气预测是一个复杂的任务&#xff0c;通常需要大量的计算资源和专业的气象知识&#xff0c…

QT事件处理系统之二:窗口部件的事件拦截,以及事件的传递顺序

1、案例说明 在父窗口中为selfLineEdit窗口安装事件过滤器,这样我们可以在父窗口中首先拦截来自于selfLineEdit本身产生的事件,并且决定该事件最终是否继续传递到selfLineEdit窗口本身。 2、关键代码 selfLineEdit.cpp #include "selfLineEdit.h" #include &l…

ECM和MEMS技术在心肺声学监测中的应用

心肺疾病是全球范围内导致死亡的主要原因。因此&#xff0c;对这些疾病迹象的准确和快速评估对于为患者提供适当的医疗保健至关重要。心血管疾病最重要的迹象之一是心脏周期的异常。大多数呼吸系统疾病则表现为呼吸周期的异常。有多种方法可以监测心脏和肺部的周期。听诊是监测…

pytest测试框架pytest-xdist插件并发执行测试用例

Pytest提供了丰富的插件来扩展其功能&#xff0c;本章介绍下插件pytest-xdist&#xff0c;主要是提供并行测试、分布式测试、循环测试等功能&#xff0c;可以加快测试速度。 pytest-xdist官方显示没有严格的python和pytest版本限制。 pytest-xdist安装 使用pip命令安装: pip…