note40:应用开发规范

1、以下哪些建议能防止内存溢出(ABD)

A、数据库批量提交时,每个批量的数量不得超过1000

B、必须使用EXCEL时建议使用com.alibaba.easyexcel

C、避免使用全局对象,避免使用大对象,避免使用单例对象

D、调用后台、外系统接口时,必须使用分页、数据筛选等手段以降低返回结果集的空间占用

内存溢出:程序申请的内存超过JVM堆的最大限制

2、以下说法正确的是(D)

A、fastjson最低版本要求为1.2.75

B、在多线程中共享Random可能会导致多个线程生成相同的随机序列

C、Mybatis中,$符号可以防止SQL注入

D、外部请求下载文件时,需要避免由外界指定文件名

Random类在多线程环境下是不安全的,多个线程同时调用Random实例的方法可能会导致数据不一致或者产生重复的随机数。Random类的实例包含一个种子值(seed),这个种子值会影响生成的随机数序列。在多线程环境下,多个线程同时访问同一个Random实例时,由于种子值的共享,可能会导致多个线程生成相同的随机数序列。

为了解决Random线程不安全的问题,可以使用ThreadLocal来保证每个线程拥有自己的Random实例。这样可以避免多个线程之间的种子值共享,从而确保线程安全。

多线程共用一个实例时是安全的,多线程各自建一个Random实例可能生成重复随机数。

3、以下JVM参数含义正确的是(AD)

A、-XX:+HeapDumpOnOutOfMemoryError:配置后当发生 OOM(OutOfMemory)时,会自动转储堆内存快照dump文件

B、-Xms:设置JVM堆内存的最大值

C、-Xmx:设置JVM堆内存的初始大小,也是堆内存大小的最小值

D、-Xss:每个线程的堆栈大小

4、以下哪些类是不安全的(A)

A 、SimpleDateFormat  B、SecureRandom C、ThreadLocal D、DateTimeFormatter

SimpleDateFormat类的内部有一个Calendar对象引用,这个对象主要用来储存和这个SimpleDateFormat相关的日期信息。把SimpleDateFormat作为多个线程的共享资源来使用的时候,那就意味着多个线程之间会共享这个SimpleDateFormat里面的Calendar引用。如果多个线程同时于操作这个Calendar对象的情况下,就会出现数据脏读的现象,从而导致一些不可预料的错误。

①可以把SimpleDateFormat定义成非全局使用的局部变量,这样每个线程调用的时候都创建一个新的实例。②可以使用ThreadLocal,把SimpleDateFormat变成一个线程私有的对象。③定义SimpleDateFormat的时候,加上同步锁,这样就能够保证在同一时刻只允许一个线程操作。④使用Java 8的新特性,在Java8中引入了一些线程安全的日期操作API,比如LocalDateTimer、DateTimeFormatter 等等。

5、以下哪些是不安全的加密算法或摘要算法(AB)

A、MD5算法

B、DES算法

C、长度1024位的RSA算法

D、SM4算法

MD5(Message-Digest Algorithm 5)-这是一种广泛使用的哈希函数,但因为其易于碰撞攻击,已不适合用于密码存储等安全性要求高的场合。
DES (Data Encrvption Standard)-虽然曾经是标准,但它的密钼长度较短(64位),现在被认为相对容易被暴力破解。
RSA-原本是安全的公钥加密系统,但如果密钥管理不当(如选择过短的密钥、密钥泄露等),也可能变得不安全。

6、以下描述正确的是(ACD)

A.SQL中的select语句避免使用 * (全字段)字符查询,需填写所使用每个字段名称

B.悲观锁完全保证数据的独占性、正确性,但对性能影响较大,甚至可能出现死锁,适用于相对多读少写的场景

C.一般交易量较大的产品不使用数据库的自定义函数、触发器、存储过程等

D.核心交易业务建议不用分库分表,容易出现查询时出现不幂等

悲观锁:在整个数据处理过程中,将共享资源进行加锁,以防止其他线程的干扰。

实现:通常通过数据库的行锁或者Java中的synchronized关键字来实现。在悲观锁的情境下,线程认为在执行期间其他线程可能会修改共享资源,因此在访问共享资源之前,先获取锁,确保自己是独占资源的。

乐观锁:乐观锁的基本思想是,在整个数据处理过程中,不对共享资源进行加锁,而是在访问时假设其他线程不会修改共享资源,只有在真正更新时才检查是否有冲突。
实现: 乐观锁的实现通常依赖于数据版本控制,通常通过版本号(版本控制)或者CAS(Compare and Swap)等机制来实现。在乐观锁的情境下,线程在读取共享资源时不会加锁,而是在更新时检查是否有其他线程修改过,如果有,则进行相应处理。

7、日志规约描述错误的是(AD)

A、打印日志直接调用Log4j、Logback的 API进行打印

B、在日志输出时,字符串变量之间的拼接使用占位符的方式

C、对于 trace/debug/info 级别的日志输出,必须进行日志级别的开关判断

D、避免重复打印日志,浪费磁盘空间,务必在 log4j.xml 中设置 additivity=true

 logger.debug("Processing trade with id: " + id + " symbol: " + symbol);如果日志级别是 warn,上述日志不会打印,但是会执行字符串拼接操作,如果 symbol 是对象,会执行 toString() 方法,浪费了系统资源,执行了上述操作,最终日志却没有打印。

8、跨系统(多个系统链路)调用时的超时控制原则

跨系统调用时,调用方与被调用方应至少有一方具有超时控制的机制,并且超时设置在交易路径上原则上要求超时时间由前到后逐渐减小(遵循漏斗原则)。

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

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

相关文章

使用qemu搭建armv7嵌入式开发环境

目录 目录 1 概述 2 环境准备 2.1 vexpress系列开发板介绍 2.2 安装工具 2.2.1 安装交叉工具链 2.2.2 安装qemu 2.2.3 安装其他工具 3 启动uboot 3.1 uboot下载与编译 3.1.1 下载 3.1.2 编译 3.2 使用qemu启动uboot 4 启动kernel 4.1 下载和编译kernel 4.1.1 下…

CSDN外链失效3:

参考我之前的博客: 外链失效博客1:随想笔记1:CSDN写博客经常崩溃,遇到外链图片转存失败怎么办_csdn外链图片转存失败-CSDN博客 外链失效博客2:网络随想2:转语雀_md格式转语雀lake格式-CSDN博客 markdown…

《LangChain大模型应用开发》书籍分享

前言 ChatGPT和OpenAI开发的GPT模型不仅改变了我们的写作和研究方式,还改变了我们处理信息的方式。《LangChain大模型应用开发》讨论了聊天模式下的LLM的运作、能力和局限性,包括ChatGPT和Gemini。书中通过一系列实际例子演示了如何使用LangChain框架构…

Jenkins持续集成部署——jenkins安装

前言 Jenkins 是一个开源的自动化服务器,主要用于持续集成(CI)和持续交付(CD)。它为软件开发团队提供了一个易于使用的平台来自动化构建、测试和部署应用程序的过程。 Jenkins 主要功能 1. 持续集成 (CI) 自动构建…

飞牛 fnos 使用docker部署 bili-sync:打造自动化 B 站资源下载器,与主流媒体服务器无缝衔接

Bili-Sync介绍及相关部署操作 一、Bili-Sync概述 Bili-Sync是哔哩哔哩内容同步助手,它能借助用户提供的登录信息,定期对用户的视频合集以及个人收藏进行遍历,找出还没在本地保存的新内容,然后自动下载到本地存储,以此…

Idean 处理一个项目引用另外一个项目jar 但jar版本低的问题

当在idea中一个module A引用另外一个项目B的jar,但是从私服仓库中拉下的jar版本比较低导致编译不通过时,可以把项目B拉下来,重新编译打包jar跟新到本地的仓库 选中右边菜单的Maven 选中对应的项目B-》Lifecycle->双击 install也可以按住c…

【day11】面向对象编程进阶(继承)

概述 本文深入探讨面向对象编程的核心概念,包括继承、方法重写、this和super关键字的使用,以及抽象类和方法的定义与实现。通过本文的学习,你将能够: 理解继承的优势。掌握继承的使用方法。了解继承后成员变量和成员方法的访问特…

高效准确的PDF解析工具,赋能企业非结构化数据治理

目录 准确性高:还原复杂版面元素 使用便捷:灵活适配场景 贴心服务:快速响应机制 在数据为王的时代浪潮中,企业数据治理已成为组织优化运营、提高竞争力的关键。随着数字化进程的加速,企业所积累的数据量呈爆炸式增长…

Unity全局雾效

1、全局雾效是什么 全局雾效(Global Fog)是一种视觉效果,用于在3D场景中模拟大气中的雾气对远处物体的遮挡 它通过在场景中加入雾的效果,使得距离摄像机较远的物体看起来逐渐被雾气覆盖,从而创造出一种朦胧、模糊的视…

解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题

配置一下apache里面的配置文件:httpd.conf 和 httpd.vhosts.conf httpd.conf httpd-vhosts.conf 重启服务 展示: 浏览器中中文乱码问题:

【Spring事务】深入浅出Spring事务从原理到源码

什么是事务 保证业务操作完整性的一种数据库机制 (driver 驱动)事务特定 ACID A 原子性 (多次操作 要不一起成功 要不一起失败 (部分失败 savepoint)) C 一致性 (事务开始时数据状态&#xff0c…

MFC/C++学习系列之简单记录13

MFC/C学习系列之简单记录13 前言memsetList Control代码注意 总结 前言 今天记录一下memset和List control 的使用吧! memset memset通常在初始化变量或清空内存区域的时候使用,可以对变量设定特定的值。 使用: 头文件: C&#…

C# cad启动自动加载启动插件、类库编译 多个dll合并为一个

可以通过引用costura.fody的包,编译后直接变为一个dll 自动加载写入注册表、激活码功能: 【CAD二次开发教程-实例18-启动加载与自动运行-哔哩哔哩】 https://b23.tv/lKnki3f https://gitee.com/zhuhao1912/cad-atuo-register-and-active

Android Studio AI助手---Gemini

从金丝雀频道下载最新版 Android Studio,以利用所有这些新功能,并继续阅读以了解新增内容。 Gemini 现在可以编写、重构和记录 Android 代码 Gemini 不仅仅是提供指导。它可以编辑您的代码,帮助您快速从原型转向实现,实现常见的…

固定电话采用的是模拟信号还是数字信号?如果通话两端采用不同的信号会发生什么?

固定电话信号大揭秘:模拟与数字信号的纠缠 模拟信号 VS 数字信号:谁是电话界的“老江湖”? 固定电话采用的是模拟信号还是数字信号? 这其实取决于接入方式: 铜线接入:传统方式,使用模拟电信号…

<项目代码>YOLO Visdrone航拍目标识别<目标检测>

项目代码下载链接 <项目代码>YOLO Visdrone航拍目标识别<目标检测>https://download.csdn.net/download/qq_53332949/90163918YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一…

druid与pgsql结合踩坑记

最近项目里面突然出现一个怪问题,数据库是pgsql,jdbc连接池是alibaba开源的druid,idea里面直接启动没问题,打完包放在centos上和windows上cmd窗口都能直接用java -jar命令启动,但是放到国产信创系统上就是报错&#xf…

LabVIEW电机控制中的主动消抖

在LabVIEW电机控制系统中,抖动现象(如控制信号波动或机械振动)会影响系统的稳定性和精度。通过使用主动消抖算法,可以有效降低抖动,提高控制性能。本文将介绍几种主流的主动消抖算法,并结合具体应用案例进行…

Vue CLI 脚手架创建项目流程详解 (2)

更新 CLI 脚手架 确保你安装的是最新版本的 Vue CLI,以支持最新的特性及改进。你可以通过以下命令全局安装或更新 Vue CLI: npm install -g vue/cli创建 Vue 3.x 项目 启动创建向导 使用 vue create 命令来开始创建一个新的 Vue 项目: vue …

macos 隐藏、加密磁盘、文件

磁盘加密 打开磁盘工具 点击添加 设置加密参数 设置密码 查看文件 不用的时候右键卸载即可使用的时候装载磁盘,并输入密码即可 修改密码 解密 加密,输入密码即可 禁止开机自动挂载此加密磁盘 如果不禁止自动挂载磁盘,开机后会弹出输入…