农历(八月廿九)
关于
友情链接
Toggle navigation
Harries Blog™
追心中的海,逐世界的梦
首页
编程技术
Java
软件架构
移动开发
后端
前端
大数据
数据库
算法
人工智能
测试
100 Days of AI Programming
代码管理
IT教程
springboot-demo
Java入门教程
bootstrap3
CSS
Apache基础教程
php
ionic 教程
Python
mysql教程
eclipse
Ubuntu VPS系统配置
AngularJS 教程
MongoDB教程
Struts2教程
springcloud-demo
Redis教程
Spring教程
Git教程
openfire参考指南
Jenkins进阶系列
Java设计模式
HBase教程
java-demo
Maven教程
hibernate教程
Docker 教程
memcached教程
Quartz指南
Ant教程
java实例教程
Hive教程
SpringCloud
ANTLR教程
XStream教程
Elastic-Job-Lite
Hazelcast教程
深入浅出MyBatis
ibaties教程
SVN教程
rabittmq教程
Hadoop教程
solr教程
WebService CXF学习
JPA教程
ActiveMQ中文指南
Java内存模型
dubbo教程
python3-demo
Linux入门视频教程
生活感悟
默认分类
博主自留地
一周一本书
一月一个人
互联网
互联网.出海
互联网.IPO
运维
Linux
docker
nginx
windows
操作系统
监控软件
vmware
虚拟化
tomcat
自动化
留言板
转载
发表于 2019年09月03日
浏览 (
1,004
)
评论 (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
赏
分享
本文标签:
git
ActiveMQ
安全
rabbitmq
TCP
spring
电商网站
压力
IO
管理
JVM
消息队列
tab
文章
京东
分布式
注释
浏览量
总结
数据库
ioc
redis
索引
代码注释
编译
删除
集群
id
时间
并发
mysql
锁
bean
数据
session
程序员
PHP
http
网站
MQ
代码
缓存
value
https
社交网络
sql
分布式锁
UDP
java
src
互联网
AOP
GitHub
字节码
key
版权声明:
本文为互联网转载文章,出处已在文章中说明(部分除外)。如果侵权,请
联系本站长
删除,谢谢。
本文海报:
生成海报一
生成海报二
上一篇
Java Builder 模式,你搞明白了么?
下一篇
日志排查问题困难?分布式日志链路跟踪来帮你
热门推荐
配置虚拟站点
浏览(8,942)
评论(20)
修改上传文件权限
浏览(10,717)
评论(18)
VPS 自我监控
浏览(9,433)
评论(23)
OpenVZ VPS 额外支持
浏览(9,478)
评论(17)
openfire数据库安装指南
浏览(19,064)
评论(0)
openfire定制指南
浏览(10,579)
评论(17)
Caffe 深度学习框架上手教程
浏览(14,965)
评论(0)
ReactiveCocoa入门教程:第一部分
浏览(15,744)
评论(0)
开源HIDS-OSSEC使用实例:监测CC攻击
浏览(15,670)
评论(0)
Decorators in ES7
浏览(20,313)
评论(4)
相关文章
数据科学中的“数据智慧”
几个 Ceph 性能优化的新方法和思路(2015 SH Ceph Day 参后感)
Java NIO系列教程(9):ServerSocketChannel
一个 ViewModel 的修改建议
Spring5源码解析-Spring中的Context loader
Springboot multipart max-file-size Exception
JFinal Undertow 1.5 发布,稳定、可靠服役于生产环境
微服务ServiceComb入门案例
Java synchronize底层实现原理及优化
温故知新-java虚拟机
说给你听
本文目录
随机标签
自媒体
邮件系统
科技
java基础
前端程序员
Spring Batch in Action
sql
原理分析
TextRank
百度权重
Java表达式引擎
GraalVM.js
豪车
子组件
互惠的心理
$nin
电子眼
ARCHPR Pro4.54
entity
拒绝策略
易居中国
execute
example
jquery-confirm
JobExecutionException
业务
JAVA教程
next.js
JAVA实例
8/2定律
个人养老金
勤奋者
selenium
UTC
最大规模
hazelcast.xml
C++11
React AJAX
小规模纳税人
学生
新浪 网
lake
Peter Wayner
现金紧缺
CDN
@ActiveProfiles
编译
远程团队
时间估算
destinationPolicy
装备
书籍教程
springboot-demo
Java入门教程
bootstrap3
CSS
Apache基础教程
php
ionic 教程
Python
mysql教程
eclipse
Ubuntu VPS系统配置
AngularJS 教程
MongoDB教程
Struts2教程
springcloud-demo
Redis教程
Spring教程
Git教程
openfire参考指南
Jenkins进阶系列
Java设计模式
HBase教程
java-demo
Maven教程
hibernate教程
Docker 教程
memcached教程
Quartz指南
Ant教程
java实例教程
Hive教程
SpringCloud
ANTLR教程
XStream教程
Elastic-Job-Lite
Hazelcast教程
深入浅出MyBatis
ibaties教程
SVN教程
rabittmq教程
Hadoop教程
solr教程
WebService CXF学习
JPA教程
ActiveMQ中文指南
Java内存模型
dubbo教程
python3-demo
Linux入门视频教程
近期评论
匿名yangdongzhen590
哥太牛了
阳光星河
是呀,看您的IP显示在美国,还以为您移民了
admin
没有呢,你是看IP发现的吧
阳光星河
对,今年在湖南老家,过完年再看吧,怎么看您去美国了呢
admin
你回老家发展了嘛?不再广东了嘛?
阳光星河
如此优秀的操作,我都没想过这个问题
阳光星河
没有项目,个人能长期使用不
Harrries
已经加上
阳光星河
阳光星河 https://www.276227.com
Harrries
域名是什么?我重新加上
随机文章
站长推荐
近期文章
1
[译] 用 Python 和 OpenCV 检测和跟踪运动对象
2
angular中的MVVM模式
3
由一次装那啥而引发的对AutoLayout探究
4
Otto产品分类挑战赛亚军:不要低估最近邻算法
5
“程序猿”聚集地Github估值达20亿美元,你知道值钱在哪么?
6
聊聊企业级 Java 应用最重要的4个性能指标
7
卡巴斯基曝以色列网络间谍入侵富士康
8
Android开发周报:Android M、iOS9比拼、多种组件源码分析
9
用示例程序介绍CQRS和事件溯源机制
10
每日文章精选 2015 06 16
1
VPS 自我监控
2
springboot接入多个ES启动时候自检报错
3
配置虚拟站点
4
openfire协议支持指南
5
修改上传文件权限
6
OpenVZ VPS 额外支持
7
2015年北京下第一场雪留念
8
openfire定制指南
9
mysql存储过程实例一:游标的使用
10
Linux删除或者新增SWAP分区
1
又学一招:Excel 数据对比及 VBA 实现方案
2
EasyExcel 读取数值精度丢失问题与解决方案
3
mongodb重命名和创建索引
4
WordPress 删除尚未附加的图片:优化网站存储空间的实用指南
5
OVHcloud 美区购买服务器指南
6
拿到兑换码后,如何在腾讯 EdgeOne 控制台兑换、接入并体验 CDN 加速?
7
如何让你的 GitHub 开源项目获得腾讯 EdgeOne 免费 CDN 加速:完整申请流程解读
8
️ Netcup 最便宜服务器购买指南(2025 最新版)
9
深入探索Java虚拟机的神秘接口:JVMTI
10
只需要75美元就可以拥有一个终身免费的邮箱服务(250G+15个域名)
网站信息
文章总数:82,778 篇
文件总数:210,936 个
标签总数:2,449 个
分类总数:86 个
留言数量:2,580 条
在线人数:681 人
运行天数:4,740天
最后更新:2025年10月19日10点
×
输入密码查看文章详情
×
搜索文章
搜索
热门搜索:
Java
Springboot
Linux
Maven
Bootstrap
阿里云
×
评论信息框
可以通过QQ号实时获取昵称和头像
QQ
昵称
邮箱
网址
提交评论
×
山无棱江水为竭,冬雷震震夏雨雪,才敢请君舍
支付宝
微信
转账时请备注“
博客赞助
”
Loading...