
面试
文章平均质量分 85
编程千纸鹤
从事开发多年,c,c++,java,php均有涉猎,目前主要从事java开发及架构设计,希望以技术结交更多的朋友
展开
-
面试必备杀技:SQL查询专项训练
表结构及基本测试数据#创建表及插入记录CREATE TABLE class ( cid int(11) NOT NULL AUTO_INCREMENT, caption varchar(32) NOT NULL, PRIMARY KEY (cid)) ENGINE=InnoDB CHARSET=utf8;INSERT INTO class VALUES(1, '三年二班'),(2, '三年三班'),(3, '一年二班'),(4, '二年九班');CREATE TAB...原创 2022-12-24 10:30:17 · 402 阅读 · 0 评论 -
Redis官方的高可用性解决方案
Redis主从复制的问题Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用: 一旦主节点宕机,从节点作为主节点的备份可以随时顶上来。 扩展主节点的读能力,分担主节点读压力。 主从复制同时存在以下几个问题: 一旦主节点宕机,从节点晋升成主节点,同时需要修改应用方的主节点地址,还需要命令所有从节点去复制新的主节点,整个过程需要人工干预。 主节点的写能力受到单机的限制。 主节点的存储...原创 2022-05-03 13:51:11 · 187 阅读 · 0 评论 -
面试必过之Mongdodb数据库面试题总结大全
MongoDB是目前最好的面向文档的免费开源NoSQL数据库。如果你正准备参加MongoDB NoSQL数据库的技术面试,你最好看看下面的MongoDB NoSQL面试问答。这些MongoDB NoSQL面试问答涵盖了NoSQL数据库基本的概念,复制(Replication),分片(Sharding),事务和锁,跟踪分析工具(Profiler),Nuances和日志等特性。让我们看看下面的这些MongoDB NoSQL数据库的面试问答吧:强调:mongodb是在4.0版本以后开始支持多文档事务特性,原创 2022-05-07 10:04:06 · 312 阅读 · 1 评论 -
Java模拟面试总结
下面是针对一系列模拟面试后的情况进行面试题的总结和梳理,希望对大家有所帮助:1、SpringBoot的启动类?@SpringBootApplication{@SpringBootConfiguration(标识配置类)、@EnableAutoConfiguration(自动配置基于@import)、@ComponentScan (扫描路径设置)}启动流程:第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器,第二部分实现了应用具体的启动方案,原创 2022-05-31 13:14:37 · 246 阅读 · 0 评论 -
怎么保证缓存和数据库一致性
背景缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。缓存是什么存储的速度是有区别的。缓存就是把低速存储的结果,临时保存在高速存储的技术。图片如图所示,金字塔更上面的存储,可以作为下面存储的缓存。我们本次的讨论,主要针对数据库缓存场景,将以redis作为mysql的缓存为案例来进行。为什么需要缓存存储如mysql通常支持完整的ACID特性,因为原创 2022-05-04 11:52:04 · 674 阅读 · 0 评论 -
【Spring源码】Spring中的AOP底层原理分析
AOP中的几个概念Advisor 和 AdviceAdvice,我们通常都会把他翻译为通知,其实很不好理解,其实他还有另外一个意思,就是“建议”,我觉得把Advice理解为“建议”会更好。比如,我们已经完成了一个功能,这时客户跟我们说,我建议在这个功能之前可以再增加一些逻辑,再之后再增加一些逻辑。在Spring中,Advice分为: 前置Advice:MethodBeforeAdvice 后置Advice:AfterReturningAdvice 环原创 2022-05-08 19:27:11 · 420 阅读 · 0 评论 -
MySQL常见面试题解析
1.drop,delete与truncate的区别相同点:truncate和不带where子句的delete,以及drop都会删除表内的数据不同点: truncate会清除表数据并重置id从1开始,delete就只删除记录,drop可以用来删除表或数据库并且将表所占用的空间全部释放 truncate和delete只删除数据不删除表的结构。drop语句将删除表的结构被依赖的约(constrain),触发器(trigger),依赖于该表的存储过程/函数将保留,但是变为 invalid原创 2022-05-03 13:55:46 · 188 阅读 · 0 评论 -
RedisTemplate常用方法总结
很多公司都将redisTemplate进行了封装,封装成业务所需要的RedisUtil工具类方便进行调用,本篇文章总结了redisTemplate常用的一些方法。Redis常用的数据类型: String Hash List Set zSet Sorted set String类型判断是否有key所对应的值,有则返回true,没有则返回falseredisTemplate.hasKey(key)有则取出key值所对应的值r..原创 2022-05-11 13:34:41 · 3352 阅读 · 0 评论 -
数据库分库分表详细拆解
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。2、CPU瓶颈第一种:SQL问题,如SQL中原创 2022-05-04 11:59:30 · 1873 阅读 · 0 评论 -
SpringCache通用缓存学习
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码。Spring Cache只是提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。CacheManager是Spring提供的各种缓存技术抽象接口。原创 2022-05-24 10:32:41 · 420 阅读 · 1 评论 -
在线教育_Day05-项目讲师管理模块前端开发
JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScript 代码错误通常需要在执行过程中不断调适。ESLint 是一个语法规则和代码风格的检查工具,可以用来保证写出语法正确、风格统一的代码。让程序员在编码的过程中发现问题而不是在执行的过程中。通过一个地址去访问另外一个地址,这个过程如果有三个地方有任何一个地方不一样,就会出现跨域问题。访问协议ip地址端口号在api文件夹下,创建js文件,定义接口地址和参数。原创 2023-03-10 18:35:02 · 245 阅读 · 1 评论 -
2023春招:Javaweb面试锦囊
2023年春季招聘高频面试题之javaweb必会锦囊,希望对大家有所帮助原创 2023-02-10 09:57:43 · 165 阅读 · 1 评论 -
基于SpringBoot的中医诊疗平台的设计与实现
随着人们的生活水平不断提高,健康也越来越受到家庭的关注。2009 年2 月27 日,我国卫生部公布的第四次国家卫生服务调查结果显示,截止至2008 年,我国居民脑血栓,糖尿病,高血压等慢性病病例数达到2.6亿,占全国总人数的20%,其中高血压病人对自身疾病的知晓率只有30%,同时这些病人中的治疗率只有25%,控制率仅为6%,糖尿病病人中,能坚持做到规范治疗的也只有33%。由此我们可以看出,建立科学、规范、高质量的慢性病管理策略,实现对人体慢性病的监护具有重大的意义。通过慢性病的早期诊断和监护,不仅能提前预防原创 2023-02-09 14:35:21 · 573 阅读 · 1 评论 -
如何实现大文件上传:秒传、断点续传、分片上传
文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有比较好的上传体验呢,答案有的,就是下边要介绍的几种上传方式原创 2023-02-09 13:30:45 · 1219 阅读 · 0 评论 -
Spring Boot 无侵入式 实现API接口统一JSON格式返回
定义返回JSON格式后端返回给前端一般情况下使用JSON格式, 定义如下"data": {code: 返回状态码message: 返回信息的描述data: 返回值定义状态码枚举类@ToString@Getter/** 返回的HTTP状态码, 符合http请求 *//** 业务异常码 *//** 业务异常信息描述 */原创 2023-02-08 16:33:17 · 281 阅读 · 0 评论 -
2023春招面试专题:高并发解决方案
高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验。我们常见的高并发场景有:淘宝的双11、春运时的抢票、微博大V的热点新闻等。除了这些典型事情,每秒几十万请求的秒杀系统、每天千万级的订单系统、每天亿级日活的信息流系统等,都可以归为高并发。原创 2023-02-08 14:38:53 · 288 阅读 · 0 评论 -
2023春招面试题:Redis数据库面试题整理
Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能非关系型(NoSQL)的(key-value)键值对数据库。可以用作数据库、缓存、消息中间件等。原创 2022-12-29 20:36:27 · 277 阅读 · 1 评论 -
2023春招面试:消息中间件面试题整理
对于系统发生消息积压的情况,需要先解决积压,再分析原因,毕竟保证系统的可用性是首先要解决的问 题。快速解决积压的方法就是通过水平扩容增加Consumer的实例数量。原创 2023-01-07 08:46:53 · 1083 阅读 · 0 评论 -
2023春季招聘面试集锦:MYSQL数据库高频面试题
主要整理的MYSQL数据库高频面试题,希望大家疫情期间在家好好复习,开春能找到一份好工作。原创 2022-12-24 19:10:13 · 2107 阅读 · 0 评论 -
2023春招面试题:Java并发相关知识
本次整理的主要是针对JAVA并发相关的线程基础知识以供大家学习参考,如果觉得对你有所帮助,请给三连支持原创 2022-12-19 14:31:24 · 863 阅读 · 1 评论 -
2023春招面试专题:JAVA基础高频面试
马上就到了2023年了,也是招聘的时间节点,本次整理了一系统有关于JAVA方向的面试专题分享给大家观看学习原创 2022-12-17 16:36:25 · 372 阅读 · 4 评论 -
构造者设计模式
构造者模式又叫创造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。这样创建对象变得非常不容易,还有可能有电脑对象有两个cpu,两个内存,这样对象创建就更复杂,构造者设计模式就是解决复杂对象的创建,以及对象创建的多元化而诞生的。①创建一些复杂对象时,这些对象的内部组成部分之间的建造顺序是稳定的,但对象的内部组成构建面临着复杂的变化。原创 2022-10-08 19:20:38 · 212 阅读 · 2 评论 -
高并发解决方案
高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。吞吐量:单位时间内处理的请求数量。QPS:每秒响应请求数。原创 2022-10-08 19:19:39 · 776 阅读 · 1 评论 -
软件工程面试技巧之十八罗汉
回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。回到顶部。原创 2022-09-27 08:36:56 · 504 阅读 · 1 评论 -
面试官教你写简历之【中高级开发者简历指南】
为什么简历投出去总是石沉大海,没有回应?!”,无论你技术水平如何,如果你遇到了这类问题,那么这篇文章就是为你准备的。很多人把简历石沉海底的原因归为技术不行,前公司背景不行,教育经历不行等等,但很少有人会去关注到可能是简历出了问题。当需要用到简历时,多数人可能会从网上直接下个模版,然后填填改改1小时不到就搞定了。笔者从业五年来见过各种形形色色的开发者,也阅览过数不清的简历,对于前端面试相关的方面有自己的一些见解和感触。因此近期打算做一个系列的专栏来讲讲如何面试,文笔不好,仅供参考!原创 2022-09-27 08:36:05 · 448 阅读 · 1 评论 -
面试官猛的一问:Spring的Bean注入如何解决循环依赖的?
}如上代码所示,即A里面注入B,B里面又注入A。此时,就发生了「循环依赖」。原创 2022-07-29 19:26:50 · 566 阅读 · 1 评论 -
毕业季--各应用场景案例使用技术
当当网中的支付宝支付功能。 在当当网里面引入jar包。 引入工具类。根据自己的支付宝沙箱环境修改工具类中的属性常量。 把工具类加入到spring中让,spring管理起来这个类。在spring配置文件中加入一个配置项 写控制器类 测试,输入控制器地址会到支付页面。使用SpringAop和RabbitMQ实现日志的记录功能。思路: 操作步骤:商城项目中有个秒杀功能,一元抢iphone手机。商城有十台iphone要促销,吸引顾客。现在要抢的人比较多。并原创 2022-07-19 13:05:47 · 536 阅读 · 0 评论 -
毕业季-Java分布式开发面试题
缓存的目标是提高程序的运行效率。mysql并发量过大,我们可以把数据放入到redis里面来分摊mysql的压力。缓存击穿是指缓存的热点数据到期了,同时并发查询该数据的线程都涌向数据库,导致数据库压力瞬间倍增。这个就是缓存击穿。缓存击穿的应对手段:1.缓存永不过期。2.使用锁(本地锁,分布式锁)。缓存穿透是指数据库被恶意攻击,客户端每次查询的都是mysql中不存在的数据。解决办法:1.在redis里面把不存在的数据也缓存起来。2.使用布隆过滤器。缓存雪崩指的是redis里面缓存的数据同时到期,导致查询数原创 2022-07-19 12:57:31 · 508 阅读 · 0 评论 -
毕业季--Java框架常见面试题
1. mybatis中默认带了一级缓存,自动就使用了一级缓存。一级缓存是跟sqlSession相关的缓存。当我们使用同样的sqlSession去执行相同的查询sql那么一级缓存就会生效。一级缓存应用场景不多,几乎用不到。2. mybatis的二级缓存不是默认打开的,需要我们手动设置开启二级缓存。二级缓存是跟SqlSessionFactory相关的缓存。只要是同一个sqlSessionFactory创建的sqlSession对象执行的sql语句都共用这个二级缓存。......原创 2022-07-19 12:50:21 · 215 阅读 · 0 评论 -
毕业季--数据库常见面试题
mysql中数据引擎有很多,我们常见的是myisam和innodb。要注意存储引擎和存储过程的区别。什么是数据库的事务,什么是脏读,不可重复读,幻读。转存失败重新上传取消事务有四个特性:1.原子性,2.隔离性,3.一致性,4.持久性。原子性指的就是事务里面执行的增删改操作是一个原子操作,要么全部成功,要么全部失败。隔离性指的是两个事务之间同时操作数据库的时候有相应的隔离级别,可以限制事务与事务之间数据的影响。一致性指的是事务操作前和事务操作后数据必须是正确的。持久性指的是事务做完操作之后,数据就别原创 2022-07-16 14:38:38 · 347 阅读 · 0 评论 -
毕业季--JavaSE高级面试题
java堆:存储程序运行过程中产生的对象信息。堆空间被划分成了两大块。1.新生代2.老年代。新生代分了三块区域分别是伊甸区和幸存区1和幸存区2。刚创建的对象放入到新生代,新生代满了,放入第一个幸存区,两个空间都满了开始垃圾回收,回收一次,大概会释放十分之九的空间。留下的对象,年龄加1.留下的对象会被复制到幸存区2里面。然后再往幸存区放对象,满了后,做垃圾回收,把存活对象放入到幸存区1里面。超过16岁的对象会被转移到老年代。老年代做垃圾回收时需要消耗更多的时间,所以我们应该避免老年代的垃圾回收。再做垃圾回收的原创 2022-07-16 14:36:19 · 129 阅读 · 0 评论 -
毕业季--Java基础面试题
1. 开闭原则:开发的模块必须是开放的,支持扩展的,而不是僵化的。封闭指的是对模块的功能进行扩展时,不应该影响或者大规模地影响以有的程序模块,而是通过增加新类的方式去扩展功能。2. 里氏替换原则:子类型必须能够替换掉他们的父类型、并出现在父类能够出现的任何地方。LSP原则能让我们正确地设计出合理的对象继承设计、合理地应用抽象机制。3. 单一职能原则:避免相同的职责分散到不同的类中。避免一个类承担太多的职责。4. 接口隔离原则:一个类对另外一个类的依赖是建立在一个最小的接口之上的。客户端程序不应该依赖它原创 2022-07-12 10:13:53 · 385 阅读 · 0 评论 -
简历书写注意事项
把我们现在做过的功能嵌入到网不要复制别人的技能列表,两个同学可能要去同一个公司面试,如果我们技能列表写的都一样,就被比人看出来了。可以参考别人的技能罗列的顺序,然后用自己的话描述技能,同样的技能不同人有不同的理解,描述出来会有区别。上找的项目中。目前我们做过的功能总结如下:......原创 2022-07-11 15:42:12 · 580 阅读 · 0 评论 -
常见面试题知识点之:分布式锁
对缓存查询数据库的代码进行加锁,有两种方式:本地锁 进程锁 具有局限性,只能在同一个项目中生效,不能控制另一个项目中的方式。保证同一时刻只有一个线程可访问共享资源 例如:对查询数据库的方法加锁,同一时间就只能有一个人查询数据库。分布式锁 分布式锁是指分布式环境下,系统部署在多个机器中,实现多进程分布式互斥的一种锁。为了保证多个进程能看到锁,锁被存在公共存储(比如 Redis、Memcache、数据库等三方存储中),以实现多个进程并发访问同一个临界资源,同一时刻只有一个进程可访问共享资源,确保数据的一致原创 2022-07-11 15:38:11 · 3969 阅读 · 0 评论 -
如何顺利通过计算机专业毕业答辩
临近毕业,很多同学项目和论文都准备的差不多了,只剩下最后一个环节,那就是决定你能否顺利毕业的毕业答辩。最后很多小伙伴咨询关于答辩的问题,也了解到了大家比较焦虑的心理,毕竟对我们来讲,努力了四年或者三年,最主要的目的还是为了这一纸毕业证,它将是我们走向社会,通向成功的第一把钥匙,今天就来给大家聊聊毕业答辩的一些问题。原创 2022-12-24 10:30:40 · 2149 阅读 · 32 评论 -
面试官:讲讲Spring框架Bean的加载过程
spring作为目前我们开发的基础框架,每天的开发工作基本和他形影不离,作为管理bean的最经典、优秀的框架,它的复杂程度往往令人望而却步。不过作为朝夕相处的框架,我们必须得明白一个问题就是spring是如何加载bean的,我们常在开发中使用的注解比如@Component、@AutoWired、@Socpe等注解,Spring是如何解析的,明白这些原理将有助于我们更深刻的理解spring。需要说明一点的是spring的源码非常精密、复杂,限于篇幅的关系,本篇博客不会细致的分析源码,会采取抽丝剥茧的方原创 2022-04-29 14:09:54 · 1139 阅读 · 0 评论 -
java设计模式 - 工厂模式
抽象程度:简单工厂模式 < 工厂方法模式 < 抽象工厂模式。角色分类:1、简单工厂模式:抽象产品、具体产品、工厂类。2、工厂方法模式:抽象产品、具体产品、抽象工厂、具体工厂。3、抽象工厂模式:抽象产品族、抽象产品、具体产品、抽象工厂、具体工厂。原创 2022-04-14 08:36:41 · 133 阅读 · 0 评论 -
阿里面试官:分布式锁到底用Redis好?还是Zookeeper好?
分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。原创 2022-04-14 08:35:31 · 155 阅读 · 0 评论 -
CTO问我,为什么需要API网关?
最近看到了一篇 API 网关的文章,介绍了其三种角色:API 管理、集群入口控制、API 网关模式,最后还讲了与服务网格的关系,通过此文可以更全面的理解 API 网关的作用。原创 2022-04-14 08:34:41 · 816 阅读 · 0 评论 -
面试官问你悲观锁和乐观锁的区别
悲观锁和乐观锁并不是某个具体的“锁”而是一种并发编程的基本概念,是根据看待并发同步的角度。乐观锁和悲观锁最早出现在数据库的设计当中,后来逐渐被 Java 的并发包所引入。悲观锁悲观锁认为对于同一个数据的并发操作一定是会发生修改的,采取加锁的形式,悲观地认为,不加锁的并发操作一定会出问题。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中Synchronized和ReentrantLock等独占锁就是悲观锁思想实现的。乐观锁乐观锁正原创 2022-04-07 08:40:06 · 268 阅读 · 1 评论