Java 面试常见项目问题回答

news2024/11/13 15:24:08

在这里插入图片描述

之前整理了好几期,我面试时遇到的面试候选人,我是如何我去筛选的,这一期,我们来看下一些 面试常问的业务性的问题

你们公司权限认证是如何实现的?

这其实是个通用性的问题,大部分公司 小型公司,或者中型公司都有权限认证,作为一个开发人员,大家或多或少都应该接触过一切,所以会去问下开发人员是否接触过
如果开发 人员没有接触过,那么就会抱着好奇的角度去问他,如果在此项目的基础上

加上一个 权限认证,你会如果去设计 ?

  • 简单设计
    在这里插入图片描述框架:+ shiro + spring security在这里插入图片描述

  • 详细设计

    • 系统菜单
      在这里插入图片描述

    • 系统角色
      在这里插入图片描述

    • 菜单角色表
      在这里插入图片描述

    • 用户对应的角色
      在这里插入图片描述

    • 用户信息
      在这里插入图片描述

其实说白了,大家可以理解为就是一个 联表的关联查询 ,通过 标识 已经角色关联的id 去进行 权限的 控制 ,最后加入了一张中间表串联起来, 当然还有很多优化的空间

上传数据的安全性你们怎么控制?

对称加密
文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥
在这里插入图片描述
解释: 在对称加密算法中,数据发信方将明文和加密密钥一起经过特殊的加密算法处理后,使其变成复杂的加密密文发送出去,收信方收到密文后,若想解读出原文,则需要使用加密时用的密钥以及相同加密算法的逆算法对密文进行解密,才能使其回复成可读明文。在对称加密算法中,使用的密钥只有一个,收发双方都使用这个密钥,这就需要解密方事先知道加密密钥。

优点: 对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
缺点: 没有非对称加密安全.
用途: 一般用于保存用户手机号、身份证等敏感但能解密的信息。
常见的对称加密算法有: AES、DES、3DES、Blowfish、IDEA、RC4、RC5、RC6、HS256

非对称加密

两个密钥:公开密钥(publickey)和私有密钥,公有密钥加密,私有密钥解密在这里插入图片描述
解释: 同时生成两把密钥:私钥和公钥,私钥隐秘保存,公钥可以下发给信任客户端.
加密与解密:
● 私钥加密,持有公钥才可以解密
● 公钥加密,持有私钥才可解密
签名:
● 私钥签名, 持有公钥进行验证是否被篡改过.
优点: 非对称加密与对称加密相比,其安全性更好;
缺点: 非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
用途: 一般用于签名和认证。私钥服务器保存, 用来加密, 公钥客户拿着用于对于令牌或者签名的解密或者校验使用.
常见的非对称加密算法有: RSA、DSA(数字签名用)、ECC(移动设备用)、RS256 (采用SHA-256 的 RSA 签名)
面试题:上传数据的安全性你们怎么控制?
使用非对称加密(或对称加密),给前端一个公钥让他把数据加密后传到后台,后台负责解密后处理数据

生产问题怎么排查?

1,先分析日志,通常在业务中都会有日志的记录,或者查看系统日志,或者查看日志文件,然后定位问题,解决问题
2,如果问题较为复杂,情况就可能会有多种,可能是代码的问题,也有可能是数据的问题

3,远程debug

特别注意,通常公司的正式环境(生产环境)是不允许远程debug的。

一般远程debug都是公司的测试环境,方便调试代码
实现步骤:

前提条件:远程的代码和本地的代码要保持一致

①:远程代码需要配置启动参数:
把项目打包放到服务器后启动项目的参数:

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 project-1.0-SNAPSHOT.jar

-agentlib:jdwp 是通知JVM使用(java debug wire protocol)来运行调试环境
transport=dt_socket 调试数据的传送方式
server=y 参数是指是否支持在server模式
suspend=n 是否在调试客户端建立起来后,再执行JVM。
address=5005 调试端口设置为5005,其它端口也可以

②:idea中设置远程debug
找到idea中的 Edit Configurations…在这里插入图片描述
设置远程debug参数在这里插入图片描述
③idea中启动远程debug
在这里插入图片描述
④在本地代码中打断点即可调试远程

怎么快速定位系统的瓶颈?

在这里插入图片描述

Arthas(阿尔萨斯)
Arthas
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

你们开发业务的流程是什么?

1,产品经理说需求–》后端+前端+测试
2,定接口(后端主导 | 前端主导 | 前后端协调)
● mock测试
3,后端的工作:设计(技术选型,数据库表[原型或PRD])+ 编码;前端 开发页面
● 基于原型或PRD(需求文档)
● 命名规范(参考阿里规约)
● 字段类型(合适类型—>根据存储的内容决定)
● 实体与实体之间的关系(主外键约束)
● 表设计没有不变的
4,部署测试环境
5,接口联调 —>前后端联调
6,测试 --> 提bug 专门的bug管理工具(禅道)
每个人都会开通一个禅道账号 个人修复bug以后,提交为 已解决———》 测试人员回归测试
7,部署正式环境

查看日志的命令

(1)tomcat查看实时日志

● 实时监控日志:

tail -f catalina.out

● 查询最后100行日志:

tail -n 100 -f catalina.out 

(2)doeker容器实时查看日志
● 实时监控日志:

docker logs -f 容器id/容器名称 

● 查询最后100行日志:docker logs -n 100 -f 容器id/容器名称
(3)查看日志文件
● 在test.log文件中搜索”exception”:cat -n test.log | grep “exception”
● 分页查看日志文件:more test.log
● 使用 >xxx.txt 将查询到的日志保存到文件中,可以下载这个文件分析
cat -n test.log |grep “debug” >debug.txt
通常的使用思路:先尝试监控实时日志,看看能不能监控到想要的信息,如果不能则需要查看日志文件,从海量日志信息中找出自己想要的错误信息。

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

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

相关文章

Praat之基频分析

Praat之基频分析 测量基频F0的方法 自相关 Autocorrelation(易出现pitch-halving\pitch-double)窄带谱图 Narrowband spectrogram(第一谐波就是基频)倒谱分析 Cepstral analysis测量声门波 glottal pluse(通过波形&a…

拥抱数字时代 | 第十六届中国大数据技术大会成功举办

2月26日,由中国计算机学会(CCF)主办,苏州市吴江区人民政府支持,CCF大数据专家委员会、苏州市吴江区工信局、吴江区东太湖度假区管理办公室、苏州市吴江区科技局、苏州大学未来科学与工程学院、DataFountain数联众创承办…

史上最全最详细的Java架构师成长路径图,程序员必备

从新手码农到高级架构师,要经过几步?要多努力,才能成为为人倚重的技术专家?本文将为你带来一张程序员发展路径图,但你需要知道的是,天下没有普适的道理,具体问题还需具体分析,实践才…

JavaScript基础三、数据类型

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…

nest.js学习笔记(一)

nest.js学习笔记(一)一、安装nest.js前置条件运行项目目录介绍二、nest.js cli 常用命令三、RESTful 风格设计1.接口url2.RESTful 版本控制四、获取前端传过来的参数1.获取Get请求参数2.获取Post请求参数3.动态路由4.获取Header信息5.自定义状态码nest.j…

Kotlin lateinit 和 lazy 之间的区别 (翻译)

Kotlin 中的属性是使用var或val关键字声明的。Late init 和 lazy 都是用来初始化以后要用到的属性。 由于这两个关键字都用于声明稍后将要使用的属性,因此让我们看一下它们以及它们的区别。 Late Init 在下面的示例中,我们有一个变量 myClass&#xff0…

【前缀和】截断数组、K倍区间、激光炸弹

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

小目标识别——基于K近邻的白酒杂质检测算法实现

文章目录实现思路配置opencv位置剪裁实现代码自适应中值滤波实现代码动态范围增强实现代码形态学处理实现代码图片预处理效果计算帧差连续帧帧差法原理和实现代码实现代码K近邻实现基本介绍实现过程参考实现思路 使用C进行实现,开发平台是clion,并没有使…

zencart/opencart/wordpress外贸独立站最少需要多少钱

以程序员的职位进入跨境电商行业已经有10年了,接触过不少大大小小的老板客户,我遇到最多的问题就是搭建一个站要多少钱?实话说这问题问的有些粗糙。如果我遇到不负责的公司他可能会直接报价1W,2W或更多,也有可能遇到兼…

【STM32MP157应用编程】3.控制PWM

目录 PWM文件 指令操作PWM 程序操作PWM 程序说明 程序代码 3_PWM_1.c 启动交叉编译工具 编译 拷贝到开发板 测试 PWM文件 在/sys/class/pwm目录下,存放了PWM的文件。 pwmchip0和pwmchip4目录对应了MP157 SoC的2个PWM控制器,pwmchip0对应的是M…

【Python】torch.norm()用法解析

【Python】torch.norm()用法解析 文章目录【Python】torch.norm()用法解析1. 介绍1.1 p-范数1.2 Frobenius 范数1.3 核范数2. API3. 示例1. 介绍 torch.norm()是对输入的tensor求对应的范数。tensor的范数有以下三种: 1.1 p-范数 1.2 Frobenius 范数 即&#xff…

Linux-GCC介绍+入门级Makefile使用

前言(1)我们都知道,在Linux中编译.c文件需要使用gcc -o .c文件的指令来将C文件变成可执行文件。但是我们有没有发现,如果我们需要编译大一点的工程,后面需要加上的.c文件是不是太多了?感觉非常的麻烦。&…

linux篇【16】:传输层协议<后序>

目录 六.滑动窗口 (1)发送缓冲区结构 (2)滑动窗口介绍 (3)滑动窗口不一定只会向右移动。滑动窗口可以变大也可以变小。 (4)那么如果出现了丢包, 如何进行重传? 这里分两种情况…

「微报告」激光雷达前装“成色”

激光雷达正处于第一波规模上车期。 高工智能汽车研究院监测数据显示,2022年中国市场(不含进出口)乘用车前装标配搭载激光雷达12.99万台,配套车辆11.18万辆,同比分别增长1544.30%和2626.82%。此外,提供选装的…

华为OD机试题,用 Java 解【相对开音节】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…

基于BERT-PGN模型的中文新闻文本自动摘要生成——文本摘要生成(论文研读)

基于BERT-PGN模型的中文新闻文本自动摘要生成(2020.07.08) 基于BERT-PGN模型的中文新闻文本自动摘要生成(2020.07.08)摘要:0 引言相关研究2 BERT-PGN模型2. 1 基于预训练模型及多维语义特征的词向量获取阶段2. 1. 1 BE…

Python3-数据结构

Python3 数据结构 本章节我们主要结合前面所学的知识点来介绍Python数据结构。 列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。 以下是 Python 中列表的…

3.3 GPIO输入

按键1.1 按键介绍•按键:常见的输入设备,按下导通,松手断开•按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动1.2 按键的四种接法P1是最常用的接法,p1…

【小程序】django学习笔记1

网页能用,不知道小程序能不能用。应该能吧。。。。。创建django程序文件包,xxx处是给该文件夹起个名django-admin startproject xxx一个project是由很多个app(小应用)组成的在文件夹目录下创建一个app,xxx处给该app起个…

脑雾到来的6个症状

在阳康后的一段时间里,很多人发现自己脑力不似从前,长时间的修养也没能彻底恢复,以为自己有后遗症,十分紧张。其实,脑雾不是专业的医学名词,它是对一类症状的统称:健忘、注意力不集中、思维迟钝…