码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【每周一测】Java阶段三第三周学习


    目录

    1、事务四个隔离级别中,哪一个不能防止脏读

    2、关于sleep()和wait(),以下描述错误的一项是()

    3、以下关于Servlet生命周期说法错误的是( )

    4、下列概念解释说明错误的是

    5、在 JWT 中,哪一个部分可以使用非对称加密算法来保护其完整性和机密性?

    6、JWT 的签名部分是用来做什么的?

    7、JWT 的头部部分是用来做什么的?

    8、在使用Redis实现分布式锁时,加锁命令是( )

    9、关于SpringCache中的Cacheable注解,说法错误的是?

    10、下面哪种 ID 生成机制可以支持高并发的 ID 生成需求?

    11、JWT 的签名部分是怎么实现的?

    12、下列哪个是关于事务隔离级别的正确描述

    13、以下哪个注解,可以用来读取SpringBoot配置文件中的内容()

    14、Springmvc提供一组注解用于替换@RequestMapping注解的,以下哪些是正确的?

    15、有关静态初始化块说法正确的是?

    16、下面哪个Java语句声明了一个适合于创建50个字符串对象数组的变量?

    17、Redis 存在线程安全问题吗?为什么?

    18、redis缓存雪崩、击穿、穿透是怎么解决的?


    1、事务四个隔离级别中,哪一个不能防止脏读

    解题思路: 读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。不能防止脏读

    2、关于sleep()和wait(),以下描述错误的一项是()

    3、以下关于Servlet生命周期说法错误的是( )

    4、下列概念解释说明错误的是

    5、在 JWT 中,哪一个部分可以使用非对称加密算法来保护其完整性和机密性?

    签名

    6、JWT 的签名部分是用来做什么的?

    7、JWT 的头部部分是用来做什么的?

    8、在使用Redis实现分布式锁时,加锁命令是( )

    解题思路: 获取锁的时候,使用setnx加锁

    9、关于SpringCache中的Cacheable注解,说法错误的是?

    10、下面哪种 ID 生成机制可以支持高并发的 ID 生成需求?

    解题思路: Snowflake 算法的优点是高效、可靠,并且可以支持高并发的 ID 生成需求。

    11、JWT 的签名部分是怎么实现的?

    12、下列哪个是关于事务隔离级别的正确描述

    解题思路: 事务四个隔离级别的含义如下: 读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。 读提交,顾名思义,就是一个事务要等另一个事务提交后才能读取数据。 重复读,就是在开始读取数据(事务开启)时,还未提交前,其他事务对这行数据的修改在本事务中读不到。 Serializable 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。

    13、以下哪个注解,可以用来读取SpringBoot配置文件中的内容()

    14、Springmvc提供一组注解用于替换@RequestMapping注解的,以下哪些是正确的?

    15、有关静态初始化块说法正确的是?

    16、下面哪个Java语句声明了一个适合于创建50个字符串对象数组的变量?

    17、Redis 存在线程安全问题吗?为什么?

    参考答案:

    其实关于 Redis 线程安全性的问题并不难理解。
    Redis Server 本身是一个线程安全的 K-V 数据库 ,也就是说在 Redis Server 上执行的 指令 ,不需要任何同步机制 ,不会存在线程安全问题。
    虽然 Redis 6.0 里面 ,增加了多线程的模型 ,但是增加的多线程只是用来处理 网络 IO 事件 ,对于指令的执行过程 ,仍然是由主线程来处理 ,所以不会存在多个线程 通知执行操作指令的情况。

    至于为什么 Redis 没有采用多线程来执行指令 ,我认为有几个方面的原因。 Redis Server 本身可能出现的性能瓶颈点无非就是网络 IO、CPU、内存。但是 CPU
    不是 Redis 的瓶颈点 ,所以没必要使用多线程来执行指令。
    如果采用多线程 ,意味着对于 redis 的所有指令操作 ,都必须要考虑到线程安全问
    题 ,也就是说需要加锁来解决 ,这种方式带来的性能影响反而更大。
    第二个 ,从 Redis 客户端层面。
    虽然 Redis Server 中的指令执行是原子的 ,但是如果有多个 Redis 客户端同 时执行多个指令的时候 ,就无法保证原子性。
    假设两个 redis client 同时获取 Redis Server 上的 key1, 同时进行修改和写入,因为 多线程环境下的原子性无法被保障,以及多进程情况下的共享资源访问的竞争问题,使 得数据的安全性无法得到保障。

    当然,对于客户端层面的线程安全性问题,解决方法有很多 ,比如尽可能的使用 Redis 里面的原子指令,或者对多个客户端的资源访问加锁,或者通过 Lua 脚本来实现多个指 令的操作等等。
    线程安全性确实是开发中非常重要的一个知识点,所以面试的频率会特别高,大家可以 重点关注一下。

    解题思路: 其实关于 Redis 线程安全性的问题并不难理解。 Redis Server 本身是一个线程安全的 K-V 数据库 ,也就是说在 Redis Server 上执行的 指令 ,不需要任何同步机制 ,不会存在线程安全问题。 虽然 Redis 6.0 里面 ,增加了多线程的模型 ,但是增加的多线程只是用来处理 网络 IO 事件 ,对于指令的执行过程 ,仍然是由主线程来处理 ,所以不会存在多个线程 通知执行操作指令的情况。 至于为什么 Redis 没有采用多线程来执行指令 ,我认为有几个方面的原因。 Redis Server 本身可能出现的性能瓶颈点无非就是网络 IO、CPU、内存。但是 CPU 不是 Redis 的瓶颈点 ,所以没必要使用多线程来执行指令。 如果采用多线程 ,意味着对于 redis 的所有指令操作 ,都必须要考虑到线程安全问 题 ,也就是说需要加锁来解决 ,这种方式带来的性能影响反而更大。 第二个 ,从 Redis 客户端层面。 虽然 Redis Server 中的指令执行是原子的 ,但是如果有多个 Redis 客户端同 时执行多个指令的时候 ,就无法保证原子性。 假设两个 redis client 同时获取 Redis Server 上的 key1, 同时进行修改和写入,因为 多线程环境下的原子性无法被保障,以及多进程情况下的共享资源访问的竞争问题,使 得数据的安全性无法得到保障。 当然,对于客户端层面的线程安全性问题,解决方法有很多 ,比如尽可能的使用 Redis 里面的原子指令,或者对多个客户端的资源访问加锁,或者通过 Lua 脚本来实现多个指 令的操作等等。

    18、redis缓存雪崩、击穿、穿透是怎么解决的?

    1.缓存雪崩,添加多台redis服务器,或者配置主从; 2.缓存击穿,针对热点keys,可以设置随机失效时间来解决; 3.缓存穿透,引入布隆过滤器。


  • 相关阅读:
    啃完这本阿里手册,应届七面进阿里
    C/C++面经嵌入式面经软件开发面经<25/30>-- 操作系统(四)
    Unity之ShaderGraph如何实现冰冻效果
    【运维】永久关闭selinux不当,导致无法启动
    智能合约安全漏洞与解决方案
    【LeetCode】移除盒子 [H](记忆化搜索)
    基于JAVA的RSA文件加密软件的设计与实现
    SUNLORDINC顺络电子LTCC产品推广资料
    Ubuntu server 24 (Linux) 安装lua + 卸载软件
    【深度学习】实验06 使用TensorFlow完成线性回归
  • 原文地址:https://blog.csdn.net/m0_62006803/article/details/134203840
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号