JAVA中高级的面试题有哪些
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容介绍了"JAVA中高级的面试题有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是悲观
千家信息网最后更新 2024年09月22日JAVA中高级的面试题有哪些
本篇内容介绍了"JAVA中高级的面试题有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
什么是悲观锁,乐观锁。 他们有什么区别?悲观锁: 认为一定会有资源的竞争的情况出现。因此对资源进行加锁,只有持有锁的访问者才可以对其进行访问,否则就需要等待资源锁的释放,获取到锁才可以对资源进行访问。乐观锁:并发访问资源,不会产生冲突,产生数据不一致的情况。不需要对其加锁,判断当版本号匹配才可以对其进行修改。区别: 悲观锁对资源进行加锁,性能低下,可能会出现死锁。乐观锁:性能高效,但是当版本号不匹配的时候,需要重试 什么是sql注入?如何防范sql注入?非法的恶意的SQL命加入到请求参数里面,最终让数据库执行恶意的SQL命令 预防: 1 。程序过滤恶意SQL命令。转义特殊字符 2. 不要动态拼接SQL,PreparedStatement采用参数化赋值3. 配置应用的数据库权限 https://blog.csdn.net/qq_41685990/article/details/89316575 https://www.cnblogs.com/lansetuerqi/p/12807891.htmlspring的事务传播行为有哪些? 1. 当前如果没有事务,则创建一个事务。 propagation_required 2. 当前如果不存在事务,则抛出异常 . propagation_mandatory3. 当然如果不存在事务,则不使用事务。如果存在则使用当前事务 propagation_supports4. 如果存在事务,则挂起当前事务,创建一个新的事务 propagation_required_new 5. 以非事务运行,如果当前事务存在,则挂起当前事务 propagation_not_supported 6. 以非事务运行,如果当前存在事务,则抛出异常 propagation_never7. 如果当前事务存在,新建一个新的嵌套事务运行 。当前不存在事务,则创建一个事务 propagation_nested假设一个接口的DB操作包含写日志和业务处理,如何让写日志一定会成功。代码逻辑: 先执行写日志,再执行业务处理。接口开启事务propagation_required ,接口里面的 写日志使用propagation_required_new 这样 当写日志异常,执行业务处理也不会执行。当执行业务处理异常回滚,那么 写日志因为是在一个新的事务里面将不受影响因此写日志成功https://www.jianshu.com/p/8f576982f574https://blog.csdn.net/wangpeifeng669/article/details/26403119"组合优先于继承",这种描述是否正确,请给出自己的分析?不正确。看业务需求!具体情况具体分析。组合灵活,易于扩展。如果业务复杂,多变,比如 根据不同条件进行各种不一样的处理 或者业务模型多种多样,那么就使用组合。否则随意组合,会导致过度设计,增加程序复杂度。继承适用于父类改动少,子类依赖于父类的属性或者方法,子类自身属性少或者不需要扩展的情况使用Redis时,如何保证数据的一致性,请给出自己的分析?1. 如果并发不高的情况下,就使用先删除缓存再删除数据库数据。相对于先删除数据库数据,再删除缓存来说出现数据不一致的问题大大减低。先删除数据库的话,如果删除缓存失败,那么数据就是错误的。如果先删除缓存的话,那么下次查询就可以去查询数据库获取最新的数据。2. 高并发的情况下:通常的解决方案是,如果我们需要使用一个线程安全队列来缓存更新或删除的数据,当 A 操作变更数据时,会先删除一个缓存数据,此时通过线程安全的方式将缓存数据放入到队列中,并通过一个线程进行数据库的数据删除操作。当有另一个查询请求 B 进来时,如果发现缓存中没有该值,则会先去队列中查看该数据是否正在被更新或删除,如果队列中有该数据,则阻塞等待,直到 A 操作数据库成功之后,唤醒该阻塞线程,再去数据库中查询该数据。但其实这种实现也存在很多缺陷,例如,可能存在读请求被长时间阻塞,高并发时低吞吐量等问题。如果数据更新比较频繁且对数据有一定的一致性要求,通常不建议使用缓存。 常见算法以及: 算法的 复杂度 https://www.cnblogs.com/zwtgyh/p/10631760.html mysql 的 三种 log 的作用 : https://blog.csdn.net/lhanson/article/details/82752883https://www.jb51.net/article/69676.htmmysql 索引类型: 普通索引,唯一索引 , 全文索引(MyISAM支持), 主键索引,联合索引 索引方法: hash, btree https://blog.csdn.net/weixin_33686714/article/details/91894377mysql 执行计划type类型: https://www.jianshu.com/p/b5c01bd4a306type 访问类型,表示找到所查询数据的方法,该属性的常见值如下,性能从好到差:NULL:无需访问表或者索引,比如获取一个索引列的最大值或最小值。system/const:当查询最多匹配一行时,常出现于where条件是=的情况。system是const的一种特殊情况,既表本身只有一行数据的情况。eq_ref:多表关联查询时,根据唯一非空索引进行查询的情况。ref:多表查询时,根据非唯一非空索引进行查询的情况。range:在一个索引上进行范围查找。index:遍历索引树查询,通常发生在查询结果只包含索引字段时。ALL:全表扫描,没有任何索引可以使用时。这是最差的情况,应该避免。spring IOC与AOP 的原理:https://www.jianshu.com/p/78ba8bafb90a描述你对微服务架构的理解:openFeign 与 RestTemplate 的区别 ?微服务的 gateWay 网关如何 修改 响应内容? redis 常见数据结构, hashmap 的使用场景 ? 微服务的 服务注册中心的 命名空间 是什么 ?微服务 配置信息的 热加载 更新配置 ? 准备SQL 题 (牛客网上面有) :比如 组织表如果 递归查询 子组织信息 等。 即 查询出来所有的组织树信息https://www.cnblogs.com/chywx/p/9420726.htmlhttps://blog.csdn.net/qq_34120430/article/details/849692351、 如果在组织表中间一个字段维护当前组织的所有父级信息那么将会非常省事2、 或者建立一张组织的父子关系表或者视图!关联查询即可3、 否则就是建立对应的函数了4、 一般组织表都会记录其所有父级的数据,比如 tree_code 以逗号分隔存储其所以的父ID就可以 使用联合查询来达到效果了SELECT sf1.org_name, sf1.tree_code from sso_framework sf1where sf1.id=27UNION SELECT sf2.org_name, sf2.tree_code from sso_framework sf2where sf2.tree_code like '%,27,%'UNION SELECT sf2.org_name, sf2.tree_code from sso_framework sf2where sf2.tree_code like '27,%'UNION SELECT sf2.org_name, sf2.tree_code from sso_framework sf2where sf2.tree_code like '%,27'常规的java 题目也是需要准备的(牛客网上面有) , 熟悉 java的 基础类比如 list ,hashmap 等信息 :kafka 是什么? 和其他MQ的区别多线程: 多线程的参数 , 举例说一下 使用到的场景分布式事务 比如 MQ如何实现 , setea , tcc 等什么是同步锁? 什么是偏向锁, 还有哪些锁? 等spring boot 常用注解 有哪些?
"JAVA中高级的面试题有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
数据
事务
查询
索引
情况
数据库
缓存
业务
日志
线程
资源
信息
处理
服务
一致
队列
更新
组合
复杂
乐观
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北京市第六医院网络安全
不属于实现数据库系统安全性
java软件开发试用工资
我的世界开服务器怎么招人
法国电信网络安全
关系数据库rdbm
csv导入数据库报错
旺店通用的什么数据库
香港网络技术
多媒体数据库技术视频教学
大学生网络安全的实践
机架服务器 英文
新兵网络安全
学软件开发推荐书籍
计算机网络技术统招专插本
我的世界建筑服务器
同花顺股票价格数据库
软件开发属于什么学院
海南师范大学网络安全大纲
戴尔2950机架式服务器
舟山品牌网络技术包括什么
数据库永久删除代码
数据库行锁什么时候会释放
代理服务器什么意思
orcal数据库链接方式
多媒体数据库技术视频教学
软件开发企业发展方向
软件开发主题
软件开发程序员第一步做什么
浙江挑选软件开发供应商