2020-11-28

从长沙出来之后的个人小总结把:

其实人都是蛮物质的,对自己没啥好处的事情一般 都不怎么愿意干把 甚至可能是任务浪费时间,对于写博客这种即浪费精力 还浪费时间的事情 起初就是抱着这样的想法 也没怎么在意过,认为自己所有问题都可以在百度上面去看别人写好的博客就可以 为什么还要自己写呢,还不如自己去git和哔哩哔哩上面学点其他的东西,学那些新技术,听大佬解析源码,学人家找问题的方法 来用于自己以后可能遇到的问题不好嘛,可后面遇到问题可能远远超出我的解决范围了,迫使着我们不断的去提升自己 ,大城市中你不提升 人家后面有数不清的人在努力着 ,人家往往比你本身就优秀很多 ,211 985比比皆是 可能在地铁上面随便碰到的一个就是某某名牌大学毕业,人家有着你没有的敲门砖,第一次写博客 希望可以结交更多的朋友,一起努力 相互交流 下面的说一些自己的最近面试总结以及 个人经历和遇到的一些问题吧

面试中遇到的一些问题吧:

沿海城市的技术还是蛮新的 一些老框架ssm ssh 一般都很少遇到 即便是去维护的一些老项目 ,也很少用到这2个了 举个几个问得最多例子

  1. Spring
  2. Springboot
  3. Mybatis
  4. SpringMVC
  5. Redis
  6. RabbitMQ
  7. mysql
  8. 当然必不可少java 线程 集合等

一些面试往往 开始会问一些 比较基础的 但是内容延升空间比较大的问题
问 : 你说说Spring 问这一类问题的时候一定要把握好 因为这些是你当前问的可能最熟悉的东西

1、IOC和DI
IOC: 控制反转
即控制权的转移,将我们创建对象的方式反转了,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序创建(spring)
DI: 依赖注入
spring这个容器中,替你管理着一系列的类,前提是你需要将这些类交给spring容器进行管理,然后在你需要的时候,不是自己去定义,而是直接向spring容器索取,当spring容器知道你的需求之后,就会去它所管理的组件中进行查找,然后直接给你所需要的组件.
实现IOC思想需要DI做支持

接下来可以说 注入方式
set方式注入
构造方法注入
字段注入
下面就可以说说他的好处
1.降低组件之间的耦合度,实现软件各层之间的解耦.
2.可以使容器提供众多服务如事务管理消息服务处理等等。当我们使用容器管理事务时,开发人员 就不需要手工 控制 事务,也不需要处理复杂的事务传播
3.容器提供单例模式支持,开发人员不需要自己编写实现代码.
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
对自己稍微自信一点的 还可以说一哈 里面优秀的接口
比如 BeanFactory ApplicationContext接口

问:请说Spring出里面一些具体的设计模型

回答:
工厂模式
单例模式
代理模式
观察者模式
适配器模式
也可以举例说明一些具体用在哪部分
比如 单例模式 :在我们的系统中,有一些对象其实我们只需要一个,比如说:线程池、缓存、对话框、注册表、日志对象、充当打印机、显卡等设备驱动程序的对象。事实上,这一类对象只能有一个实例,如果制造出多个实例就可能会导致一些问题的产生,比如:程序的行为异常、资源使用过量、或者不一致性的结果
代理模式: AOP:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
适配器模式 : AOP 的增强或通知使用到了适配器模式、spring MVC 中也是用到了适配器模式适配

问mybatis 中 #{}和 ${}的区别是什么

#{} 速度快,能防止sql注入,是占位符方式,先预编译,然后填充参数,字符串格式,用户名=(___),参数只是下划线上的内容

${} 是直接拼接到语句上,这种方式需要自己拼括号和参数,但是也可以拼接想执行的任何语句,也就是传说中的sql注入

问如果我将RabbitMQ中存了一条消息,当我取这条消息的时候,并未取到消息,而中间件这边已经显示消息已被消费,这时会发生异常,你该怎么处理

回答:如果我当前这个系统出问题了, 暂时不能处理这个消息, 但是 这个消息已经被你消费掉了rabbitmq的队列里也删除掉了·类似这种消费失败的 我会有2中处理方式重试+补偿 补偿又分为2种补偿
1 定时任务补偿:
  通过定时任务去跟进后续任务,根据不同的状态表确定下一步的操作,从而保证业务最终执行成功,
  这种办法可能会涉及到很多的后台服务,维护起来也会比较麻烦,这是应该是早期比较流行的做法
2 消息补偿:
  通过消息中间件触发下一段任务,既通过实时消息通知下一段任务开始执行,执行完毕后的消息回发通知来保证业务最终完成;
  当然这也是异步进行的,但是能保证数据最终的完整性、一致性,也是近几年比较热门的做法

一般框架问几个如果你回答的好 半个小时就差不多 在结合一些java基础 java多线程 你在项目介绍好一点 保持好状态 即使有一些不是很会的也可以通过其他的补

最近遇到的一个问题 在使用nacos的时候 spring-cloud-starter-alibaba-nacos-discovery 是有这个包的
Caused by: java.lang.IllegalStateException: No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer
后面解决方案

     <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

重新加入 ribbon 或者 loadBalancer 这两种暂时可以解决 需要后期在解决

 <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>



总结

一旦努力开始,你就会发现自己成长的速度在增快,你看待文字背后的世界会变得不同。每一个程序员也不应该仅仅局限于技术写作,对于世界、历史、人文的理解同样需要记录和分享,希望写作让你面向屏幕时,不止面向代码,更是面向星辰大海。欢迎大家有相互分享交流Q1538063309一起努力一起加油吧 还有我家的傻田田

这是一个 SQL 语句,用于向借阅表中插入数据。该表包含以下字段:借阅编号、读者编号、书籍编号、借阅日期、归还日期、借阅状态。每条数据表示一次借阅记录。其中借阅编号、读者编号、书籍编号、借阅日期和借阅状态是必填项,归还日期为可选项,如果借阅状态为“已还”则必须填写归还日期。 具体插入的数据如下: - 借阅编号:100001,读者编号:123413,书籍编号:0001,借阅日期:2020-11-05,归还日期:NULL,借阅状态:借阅 - 借阅编号:100002,读者编号:223411,书籍编号:0002,借阅日期:2020-9-28,归还日期:2020-10-13,借阅状态:已还 - 借阅编号:100003,读者编号:321123,书籍编号:1001,借阅日期:2020-7-01,归还日期:NULL,借阅状态:过期 - 借阅编号:100004,读者编号:321124,书籍编号:2001,借阅日期:2020-10-09,归还日期:2020-10-14,借阅状态:已还 - 借阅编号:100005,读者编号:321124,书籍编号:0001,借阅日期:2020-10-15,归还日期:NULL,借阅状态:借阅 - 借阅编号:100006,读者编号:223411,书籍编号:2001,借阅日期:2020-10-16,归还日期:NULL,借阅状态:借阅 - 借阅编号:100007,读者编号:411111,书籍编号:1002,借阅日期:2020-9-01,归还日期:2020-9-24,借阅状态:已还 - 借阅编号:100008,读者编号:411111,书籍编号:0001,借阅日期:2020-9-25,归还日期:NULL,借阅状态:借阅 - 借阅编号:100009,读者编号:411111,书籍编号:1001,借阅日期:2020-10-08,归还日期:NULL,借阅状态:借阅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值