仿论坛项目--第三部分习题

2024-09-05 19:52

本文主要是介绍仿论坛项目--第三部分习题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.关于前缀树的特征描述不正确的是:

根节点不包含字符,除根节点以外的每个节点,只包含一个字符。
从根节点到某一个节点,路径经过的字符连接起来,为该节点对应的字符串。
每个节点的所有子节点,包含的字符串不相同。
每个节点,最多只能包含2个节点。
解析:
这些描述都是关于前缀树(Trie)的一些基本特点。前缀树是一种树形结构,用于高效地存储字符串数据,常用于自动补全或拼写检查等应用。在前缀树中:

根节点通常不包含任何字符信息。
节点表示的字符串可以通过从根节点开始沿着路径向下遍历所经过的字符来确定。
同一节点的不同子节点代表不同的字符串后继。
在标准实现中,每个节点通常最多有26个子节点(对应英文字母的数量),但这并不意味着节点必须且仅限于拥有两个子节点。实际上,节点可以拥有任意数量的子节点(只要不超过字母表大小即可)。

2.下列那一项,不是前缀树的应用场景?

选项:

记录日志
字符串检索
词频统计
字符串排序

解析:
记录日志。虽然前缀树可用于多种与字符串相关的操作,如字符串检索、词频统计等,但它并不是一种常见的记录日志的方法或工具。因此,“记录日志”不是前缀树典型的应用场景。

3.使用前缀树实现过滤敏感词算法时,需要有3个指针,它们分别是?

选项:

有一个指针指向前缀树,用以遍历敏感词的每一个字符
有一个指针指向被过滤字符串,用以标识过滤的次数
有一个指针指向被过滤字符串,用以标识敏感词的开头
有一个指针指向被过滤字符串,用以标识敏感词的结尾

解析:
答案是:

有一个指针指向前缀树,用以遍历敏感词的每一个字符
有一个指针指向被过滤字符串,用以标识敏感词的开头
有一个指针指向被过滤字符串,用以标识敏感词的结尾

这三个指针分别用于处理前缀树中的敏感词字符、定位敏感词在待过滤字符串中的起始位置以及结束位置。通过这种方式,可以有效地识别和替换敏感词。

4.问题:关于AJAX,下列描述错误的是?

选项:

AJAX是Asynchronous JavaScript and XML的编写
字符串检索AJAX是指异步的JavaScript与XML,这是一门全新的技术
使用AJAX,网页能够将增量更新呈现在页面上,而不需要刷新整个页面
虽然X代表XML,但目前JSON的使用比XML更加普遍

解析:
答案是:字符串检索AJAX是指异步的JavaScript与XML,这是一门全新的技术。这个说法是错误的,因为AJAX并非一门全新的技术,而是由已有的Web技术组合而成。其他三个选项都正确地描述了AJAX的特点和用途。

5.问题:通过jQuery,将服务端返回的JSON格式的字符串转为对象,语法正确的是?

选项:

$.parseJSON(data)
$ .ParseJson(data)
#.parseJSON(data)
#.ParseJson(data)

解析:
答案是:.parseJSON(data)。这是一个正确的jQuery方法,用于将JSON格式的字符串转换为JavaScript对象。其他选项中的“.parseJSON(data)。这是一个正确的jQuery方法,用于将JSON格式的字符串转换为JavaScript对象。其他选项中的“ .ParseJson(data)”、“#.parseJSON(data)”和“#.ParseJson(data)”都是错误的写法。

6.问题:使用fastjson,将JSON对象转为JSON字符串,下列语法正确的是?

选项:

JSONObject json = new JSONObject(); json.put("x", x); json.toJSONString();
JSONObject json = new JSONObject(); json.put("x", x); json.toJsonString();
JSONObject json = new JSONObject(); json.put("x", x); json.toString();
JSONObject json = new JSONObject(); json.put("x", x); json.toJSON();

解析:
答案是:JSONObject json = new JSONObject(); json.put(“x”, x); json.toString()。这是因为toString()方法可以将JSON对象转化为字符串形式。其它选项中的toJSONString()和toJSON()是不存在的或者不符合题目要求的转化方式。

7.问题:关于事务的特性,下列描述中不正确的是?

选项:

原子性,即事务是应用中不可再分的最小执行体
一致性,即事务执行的结果,必须使数据从一个一致性状态,变为另一个一致性状态
隔离性,即各个事务的执行互不干扰,任何事务的内部操作对其他的事务都是隔离的
持久性,即事务一旦提交,数据将永远不能被改变

解析:
答案是:持久性,即事务一旦提交,数据将永远不能被改变。这是错误的描述,正确的应该是“持久性,即事务一旦提交,数据将永久保存”。

8.问题:MySQL支持4种常见的隔离级别,其中最低的隔离级别是?

选项:

Read Uncommitted(未提交读)
Read Committed(已提交读)
Repeatable Read(可重复读)
Serializable(可串行化)

答案是:Read Uncommitted(未提交读)。这是MySQL支持的四种隔离级别中最低的一个,它允许读取到未提交的数据变更,可能会出现脏读的情况。

9.问题:下列哪一种并发异常,是Repeatable Read这种隔离级别无法规避的?

选项:

第二类丢失更新
不可重复读
脏读
幻读

解析:
答案是:幻读。在Repeatable Read(可重复读)隔离级别下,可以避免脏读以及不可重复读,但是无法避免幻读。

10.问题:关于隔离级别的实现机制,下列描述中错误的是?

选项:

实现隔离级别的基本方式是对数据加锁,而锁分为悲观锁和乐观锁
数据库默认采用的是悲观锁,它又可分为共享锁和排他锁
乐观锁也是数据库内置的锁,它采用版本号或时间戳来判定数据的突变
锁在提高安全性的同时,会降低数据库的性能,应根据实际业务选择合适的锁

解析:
答案是:乐观锁也是数据库内置的锁。实际上,乐观锁通常不是数据库内置的锁,而是应用程序自己实现的一种锁策略。

11.问题:下列关于Spring事务管理的描述中,错误的是?

选项:

Spring提供了声明式事务、编程式事务两种事务管理方案
声明式事务,只需通过XML或注解进行配置,即可实现对事务的管理
编程式事务,需要通过TransactionTemplate组件执行SQL,达到管理事务的目的
声明式事务优于编程式事务,应该一律采用声明式事务

解析:
答案是:声明式事务优于编程式事务,应该一律采用声明式事务。因为编程式事务也有其适用场景,并非所有情况下都优于编程式事务。

12.问题:下列关于AOP概念的描述中,错误的是?

选项:

AOP是Aspect Oriented Programming的缩写,意为面向方面编程
AOP是一种编程思想,可以代替OOP,更好的管理应用中的对象
AOP常见的使用场景有权限检查、记录日志、事务管理
AOP是一种编程思想,是对OOP的补充,可以进一步提高编程的效率

解析:
答案是:AOP是一种编程思想,可以代替OOP,更好的管理应用中的对象。AOP并不能完全替代OOP,它们是互补的关系。

13.问题:下列关于AOP术语的描述中,错误的是?

选项:

Joinpoint,是指目标对象上所定义的各种方法
Pointcut,是用来定义当前的横切逻辑准备织入到哪些连接点上
Advice,用来定义横切逻辑,即在连接点上准备织入什么样的逻辑
Aspect,是一个用来封装切入点和通知的组件

解析:
答案是:Joinpoint,是指目标对象上所定义的各种方法。正确的描述应该是Joinpoint指程序运行过程中的某个特定位置,如方法的调用等。

14.问题:关于织入,下列说法错误的是?

选项:

织入,就是将方面组件中定义的横切逻辑,织入到目标对象的连接点的过程
可以在编译时织入,需要使用特殊的编译器
可以在装裁类时织入,需要使用特殊的类装载器
可以在运行时织入,需要使用特殊的JRE

解析:
答案是:可以在运行时织入,需要使用特殊的JRE。正确的描述应该是,在运行时织入需要使用特殊的框架或者容器,而不是特殊的JRE。

15.问题:关于AOP的实现,下列描述中错误的是?

选项:

AspectJ是语言级的实现,它扩展了Java语言,定义了AOP的语法
AspectJ在编译期织入代码,它有一个专门的编译器,用来生成遵守Java字节码规范的class文件
Spring AOP使用纯Java实现,它不需要专门的编译器,也不需要特殊的类加载器
Spring AOP在运行时通过代理的方式织入代码,可以支持任意类型的连接点

解析;
答案是:Spring AOP在运行时通过代理的方式织入代码,可以支持任意类型的连接点。实际上,Spring AOP只能支持接口代理,对于没有接口的情况,可以通过CGLIB等方式实现,因此并不是任意类型都能支持。

16.问题:关于Spring AOP的实现机制,下列描述中错误的是?

选项:

JDK动态代理,是Java提供的代理技术,可以在装栽时创建接口的代理实例
Spring AOP默认采用JDK动态代理,在接口的代理实例中织入代码
CGLib动态代理,采用底层的字节码技术,在运行时创建子类代理实例
当目标对象不存在接口时,Spring AOP会采用CGLib动态代理的方式,在子类实例中织入代码

解析:
答案是:JDK动态代理,是Java提供的代理技术,可以在装栽时创建接口的代理实例。正确的描述应该是JDK动态代理是在运行时创建接口的代理实例。

这篇关于仿论坛项目--第三部分习题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139913

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

2. 下载rknn-toolkit2项目

官网链接: https://github.com/airockchip/rknn-toolkit2 安装好git:[[1. Git的安装]] 下载项目: git clone https://github.com/airockchip/rknn-toolkit2.git 或者直接去github下载压缩文件,解压即可。