农历(十月廿一)
关于
友情链接
Toggle navigation
Harries Blog™
追心中的海,逐世界的梦
首页
编程技术
Java
软件架构
移动开发
后端
前端
大数据
数据库
算法
人工智能
测试
代码管理
IT教程
springboot-demo
Java入门教程
bootstrap3
CSS
Apache基础教程
php
ionic 教程
Python
mysql教程
eclipse
Ubuntu VPS系统配置
AngularJS 教程
MongoDB教程
Struts2教程
Redis教程
Spring教程
Git教程
Jenkins进阶系列
openfire参考指南
Java设计模式
HBase教程
Maven教程
hibernate教程
Docker 教程
memcached教程
Quartz指南
Hive教程
Ant教程
ANTLR教程
SpringCloud
java实例教程
springcloud-demo
XStream教程
Hazelcast教程
Elastic-Job-Lite
深入浅出MyBatis
SVN教程
ibaties教程
rabittmq教程
solr教程
Hadoop教程
WebService CXF学习
JPA教程
ActiveMQ中文指南
java-demo
Java内存模型
dubbo教程
python3-demo
Linux入门视频教程
生活感悟
默认分类
博主自留地
一周一本书
一月一个人
互联网
互联网.出海
互联网.IPO
运维
Linux
docker
nginx
windows
监控软件
操作系统
tomcat
虚拟化
vmware
自动化
留言板
转载
发表于 2019年09月03日
浏览 (
671
)
评论 (0)
总结一下最近的面试问题
spring原理:Spring的两个核心概念是IOC(控制反转)和AOP(面向切面编程)。IOC(控制翻转)是一种编程范式,可以在一定程度上解决复杂系统对象耦合度太高的问题,并不是Spring的专利。IOC最常见的方式是DI(依赖注入),可以通过一个容器,将Bean维护起来,方便在其他地方直接使用,而不是重新new。可以说,IOC是Spring最基本的概念,没有IOC就没有Spring。AOP简单来说,它可以让编程人员在不修改对象代码的情况下,为这个对象添加额外的功能或者限制。这就是代理模式。Spring AOP之所以能够为动态生成的Bean提供代理,得益于PostProcessor接口。AOP流程图如下:
redis应用场景:1、
缓存
:合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能(超过指定时间的键会自动被删除),也提供了灵活的键淘汰策略(Redis支持6种策略)。
2、
排行榜
:很多网站都有排行榜应用的,如京东的月度销量榜单、商品按时间的上新排行榜等。Redis提供的有序集合数据类构能实现各种复杂的排行榜应用。
3、计数器:什么是计数器,如电商网站商品的浏览量、视频网站视频的播放数等。为了保证数据实时效,每次浏览都得给+1,并发量高时如果每次都请求数据库操作无疑是种挑战和压力。Redis提供的incr命令来实现计数器功能,内存操作,性能非常好,非常适用于这些计数场景。incr命令为键key储存的数字值加上一。如果键key不存在,那么它的值会先被初始化为0,然后再执行INCR 命令。如果键 key储存的值不能被解释为数字,那么 INCR 命令将返回一个错误。本操作的值限制在 64 位(bit)有符号数字表示之内。INCR 命令会返回键 key在执行加一操作之后的值。
4、
分布式会话
:集群模式下,在应用不多的情况下一般使用容器自带的session复制功能就能满足,当应用增多相对复杂的系统中,一般都会搭建以Redis等内存数据库为中心的session服务,session不再由容器管理,而是由session服务及内存数据库管理。5、
分布式锁
:在很多互联网公司中都使用了分布式技术,分布式技术带来的技术挑战是对同一个资源的并发访问,如全局ID、减库存、秒杀等场景,并发量不大的场景可以使用数据库的悲观锁、乐观锁来实现,但在并发量高的场合中,利用数据库锁来控制资源的并发访问是不太理想的,大大影响了数据库的性能。可以利用Redis的setnx功能来编写分布式的锁,如果设置返回1说明获取锁成功,否则获取锁失败,实际应用中要考虑的细节要更多。setnx命令只在键 key 不存在的情况下,将键key的值设置为value。若键key已经存在,则 SETNX 命令不做任何动作。SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。
6、
社交网络
:点赞、踩、关注/被关注、共同好友等是社交网站的基本功能,社交网站的访问量通常来说比较大,而且传统的关系数据库类型不适合存储这种类型的数据,Redis提供的哈希、集合等数据结构能很方便的的实现这些功能。7、
最新列表
:Redis列表结构,LPUSH可以在列表头部插入一个内容ID作为关键字,LTRIM可用来限制列表的数量,就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。这样列表永远为N个ID,无需查询最新的列表,直接根据ID去到对应的内容页即可。8、
消息系统
:消息队列是大型网站必用中间件,如ActiveMQ、RabbitMQ、Kafka等流行的消息队列中间件,主要用于业务解耦、流量削峰及异步处理实时性低的业务。Redis提供了发布/订阅及阻塞队列功能,能实现一个简单的消息队列系统。另外,这个不能和专业的消息中间件相比。
mysql查询索引:SHOW INDEX FROM table_name;
消息队列应用场景:异步处理,应用解耦,流量削锋,日志处理和消息通讯。具体可见 https://segmentfault.com/a/11...
tcp udp区别:
泛型的好处:1,类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。2,消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。3,潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。
感谢以下几篇文章: https://m.php.cn/redis/422103... https://crazyfzw.github.io/20... https://www.jianshu.com/p/c40...
原文
https://segmentfault.com/a/1190000020268176
正文到此结束
赞
0
赏
分享
本文标签:
代码
key
文章
id
缓存
tab
集群
GitHub
消息队列
删除
MQ
字节码
编译
网站
管理
代码注释
http
AOP
JVM
PHP
互联网
程序员
src
IO
索引
java
压力
redis
UDP
电商网站
ioc
session
spring
数据库
数据
TCP
总结
bean
分布式锁
浏览量
sql
注释
锁
社交网络
rabbitmq
mysql
https
安全
时间
value
ActiveMQ
分布式
并发
git
京东
版权声明:
本文为互联网转载文章,出处已在文章中说明(部分除外)。如果侵权,请
联系本站长
删除,谢谢。
本文海报:
生成海报一
生成海报二
上一篇
Java Builder 模式,你搞明白了么?
下一篇
日志排查问题困难?分布式日志链路跟踪来帮你
热门推荐
openfire数据库安装指南
浏览(13,739)
评论(0)
Caffe 深度学习框架上手教程
浏览(10,453)
评论(0)
ReactiveCocoa入门教程:第一部分
浏览(11,285)
评论(0)
开源HIDS-OSSEC使用实例:监测CC攻击
浏览(11,192)
评论(0)
Decorators in ES7
浏览(15,735)
评论(4)
用Electron(Atom编辑器的兄弟项目)开发桌面应用
浏览(28,761)
评论(0)
Windows下JetBrains CLion中文输出乱码的解决方法
浏览(12,212)
评论(1)
同步-@synchronized, NSLock, pthread, OSSpinLock性能比较
浏览(11,176)
评论(0)
Seaweedfs之Volume读请求重定向
浏览(25,453)
评论(3)
HTML、CSS及JavaScript : 有Promise,不会搞大肚子
浏览(13,312)
评论(0)
相关文章
视频演讲: UC浏览器研发实践分享
CoachRetreats:一种实践教练技术的方式
【译文】数据科学的统计学入门
CollectionView列表性能优化
Linux LVM文件系统管理的创建和扩展
java在CPU中的一些个破事
快速排序递归
Spring MVC 验证码后台实现验证以及它的安全性
gradle下mybatis自动生成框架的使用
RedHat 推出 Mandrel:使 Java 本地化
说给你听
本文目录
随机标签
SolrQuery
rrdtools
ES6
RFC3921
装备
部署
QtWebkit
驼峰函数
用户指南
final
Full Stack
solrj
Flink SQL
SpringMVC
SpringMVC
元素动画
equals
drools
solopreneur
红包
ScheduledExecutorService
Entry
学生
时间
幂等
前端团队
升级版本
operating system
cors
自己动手实现IOC和MVC
entitytransactioninstance
笔记本电脑
研究评估
VMware
Keycloak
企业级web代码安全架构
junit5
秋色
BSON
CRM
长整数
OpenStack
好软件
LinkedBlockingQueue
拉勾网
分布式资源管理
SaaS
集群方案
收件邮箱
抽烟
右手
书籍教程
springboot-demo
Java入门教程
bootstrap3
CSS
Apache基础教程
php
ionic 教程
Python
mysql教程
eclipse
Ubuntu VPS系统配置
AngularJS 教程
MongoDB教程
Struts2教程
Redis教程
Spring教程
Git教程
Jenkins进阶系列
openfire参考指南
Java设计模式
HBase教程
Maven教程
hibernate教程
Docker 教程
memcached教程
Quartz指南
Hive教程
Ant教程
ANTLR教程
SpringCloud
java实例教程
springcloud-demo
XStream教程
Hazelcast教程
Elastic-Job-Lite
深入浅出MyBatis
SVN教程
ibaties教程
rabittmq教程
solr教程
Hadoop教程
WebService CXF学习
JPA教程
ActiveMQ中文指南
java-demo
Java内存模型
dubbo教程
python3-demo
Linux入门视频教程
近期评论
admin
文章和留言都翻到11页了 没有OOM
admin
我试一下
匿名
朋友,翻页到11页,及以后,会出现OOM,无法访问
可以
搞个gitee的项目
匿名
666
admin
版本号是多少,你可以下载哪个代码仓库,jdk选1.8 直接跑就行
极客青年
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'demo.et.mysql.MysqlTests': Unsatisfied dependency expressed through field 'userMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'demo.et.mysql.mapper.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:393) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:119) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:43) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'demo.et.mysql.mapper.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1695) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1253) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ... 30 more
极客青年
原封不动的代码报错如下:
极客青年
一股清流,敬佩
随机文章
站长推荐
近期文章
1
iOS开发实战教学:在Swift怎样创建CocoaPod?
2
大规模数据集成: Linked Data
3
IBM Business Analytics 最佳实践: SPSS Collaboration and Deployment Services - 五大用途
4
使用 Bluemix 和 DevOps Services 的十大理由
5
计数排序、桶排序和基数排序
6
OpenShift 3 : 基于docker的私有平台即服务
7
【妙用协程】 - 可resume的异常处理
8
Pwnie Awards:2015漏洞奥斯卡奖提名名单
9
基于OpenCL的深度学习工具:AMD MLP及其使用详解
10
游戏引擎网络开发者的64做与不做(二A):协议与API
1
VPS 自我监控
2
springboot接入多个ES启动时候自检报错
3
配置虚拟站点
4
openfire协议支持指南
5
修改上传文件权限
6
OpenVZ VPS 额外支持
7
2015年北京下第一场雪留念
8
openfire定制指南
9
mysql存储过程实例一:游标的使用
10
Linux删除或者新增SWAP分区
1
Spring Cloud Consul实现选举机制
2
Spring Boot集成ShedLock实现分布式定时任务
3
利用oss进行数据库和网站图片备份
4
Spring Cloud Stream实现数据流处理
5
Python3访问MySQL数据库快速入门Demo
6
Github开源项目作者可以免费申请 JetBrains 全家桶
7
Spring Cloud Vault快速入门Demo
8
Spring Cloud Gateway快速入门Demo
9
Spring Cloud Contract快速入门Demo
10
Spring Cloud Consul快速入门Demo
网站信息
文章总数:82,714 篇
文件总数:284,287 个
标签总数:2,393 个
分类总数:85 个
留言数量:2,560 条
在线人数:670 人
运行天数:4,408天
最后更新:2024年11月21日19点
×
输入密码查看文章详情
×
搜索文章
搜索
热门搜索:
Java
Springboot
Linux
Maven
Bootstrap
阿里云
×
评论信息框
可以通过QQ号实时获取昵称和头像
QQ
昵称
邮箱
网址
提交评论
×
山无棱江水为竭,冬雷震震夏雨雪,才敢请君舍
支付宝
微信
转账时请备注“
博客赞助
”
Loading...