农历(六月廿五)
关于
友情链接
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日
浏览 (
940
)
评论 (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
赏
分享
本文标签:
社交网络
rabbitmq
mysql
https
安全
注释
锁
ActiveMQ
分布式
并发
git
京东
时间
value
id
缓存
tab
集群
代码
key
文章
MQ
字节码
编译
网站
GitHub
消息队列
删除
AOP
JVM
PHP
互联网
管理
代码注释
http
IO
索引
java
压力
redis
程序员
src
ioc
session
spring
数据库
数据
UDP
电商网站
bean
分布式锁
浏览量
sql
TCP
总结
版权声明:
本文为互联网转载文章,出处已在文章中说明(部分除外)。如果侵权,请
联系本站长
删除,谢谢。
本文海报:
生成海报一
生成海报二
上一篇
Java Builder 模式,你搞明白了么?
下一篇
日志排查问题困难?分布式日志链路跟踪来帮你
热门推荐
openfire数据库安装指南
浏览(15,585)
评论(0)
Caffe 深度学习框架上手教程
浏览(11,716)
评论(0)
ReactiveCocoa入门教程:第一部分
浏览(12,522)
评论(0)
开源HIDS-OSSEC使用实例:监测CC攻击
浏览(12,408)
评论(0)
Decorators in ES7
浏览(17,069)
评论(4)
用Electron(Atom编辑器的兄弟项目)开发桌面应用
浏览(30,016)
评论(0)
Windows下JetBrains CLion中文输出乱码的解决方法
浏览(13,466)
评论(1)
2015年北京下第一场雪留念
浏览(8,151)
评论(17)
同步-@synchronized, NSLock, pthread, OSSpinLock性能比较
浏览(12,352)
评论(0)
【开班了】JAVA培训班正式招生
浏览(8,555)
评论(12)
相关文章
技术问题分析08(5.9)
记一次类污染问题定位
Shiro Realm
spring实现静态注入(类或者属性)
学Aop?看这篇文章就够了!!!
java经纬度操作
[JAVA] Java面向对象之包装类,拆箱、装箱
一文带你入门Java Stream流,太强了
MyBatis知识总结
中文数字阿拉伯数字相互转换
说给你听
本文目录
随机标签
set
ETL
env_file
tk
Routine Load
数据仓库
兼职
match
qrcode
开源项目
opencc4j
syslog
函数式编程
E1子对象的E2。
突破
Timefold Solver
自动重启
复合索引
分布式资源管理
战略打击
mmap
一致性哈希
SimpleDocker
webflux
全球货币超发
二六三企业通信
智能手机
开源
虚拟内存
防空反导
权重
cpu负载
font
微笑
VirtualHost
Spring Batch
梅花创投
发币
阅读数
Bootstrap
自己动手实现IOC和MVC
ILock
Microsoft Project 2013
PHP
吃螃蟹
扩展
Chrome扩展
自我修养
pkill
财富蒸发
图片
书籍教程
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入门视频教程
近期评论
Harrries
已经加上
阳光星河
阳光星河 https://www.276227.com
Harrries
域名是什么?我重新加上
阳光星河
大佬,我的域名到期,没注意,也没时间更新,就放着,谁知道挂壁了,现在换域名,今天才搬家成功,之前叫言之在线,现在改阳光星河,既然域名都换了,索性也改名算了,很长时间了,我的链接肯定也不在了,不过还是得过来说一声
阳光星河
大佬,我的域名到期,没注意,也没时间更新,就放着,谁知道挂壁了,现在换域名,今天才搬家成功,之前叫言之在线,现在改阳光星河,既然域名都换了,索性也改名算了,很长时间了,我的链接肯定也不在了,不过还是得过来说一声
Wang Fang
I really enjoyed reading your post it was both informative and personal, which I think is the perfect combo. You explained things in a simple way that actually helped me understand better. It didn't feel overwhelming at all. Thanks for taking the time to share your experience. It's posts like these that make a real difference for people who are looking for genuine advice. Keep up the great work! I came across Libya's e-visa option while planning a spontaneous trip. Understanding the Libya tourist visa requirements helped me feel confident before booking. Everything was surprisingly straightforward. Once I arrived, I was amazed by the Roman ruins, local hospitality, and peaceful coastal towns. It felt like stepping into a place that time forgot, in the best way.
han25vox
Interesting post!
Harrries
暂时不支持rss
Sul
请问站点支持RSS吗,url是什么?解析不到,看了下首页源码里好像也没有。
admin
已加上
随机文章
站长推荐
近期文章
1
为什么选择OS X系统?Win 10会给你答案
2
Netty之有效规避内存泄漏
3
基于Django与Celery实现异步对列任务
4
PHP 7 ZEND_HASH_IF_FULL_DO_RESIZE Use After Free 漏洞分析
5
苹果发布 OS X El Capitan 第五个公测版
6
Review Board 2.5 RC 1 发布,在线代码评审工具
7
机器学习(三)—支持向量机(1)
8
Spring Boot 1.3.0 M4 发布
9
Introduction
10
OpenGL绘制简单的参数曲线——两点三次Hermite曲线(一)
1
VPS 自我监控
2
springboot接入多个ES启动时候自检报错
3
配置虚拟站点
4
openfire协议支持指南
5
修改上传文件权限
6
OpenVZ VPS 额外支持
7
2015年北京下第一场雪留念
8
openfire定制指南
9
mysql存储过程实例一:游标的使用
10
Linux删除或者新增SWAP分区
1
️ Netcup 最便宜服务器购买指南(2025 最新版)
2
深入探索Java虚拟机的神秘接口:JVMTI
3
只需要75美元就可以拥有一个终身免费的邮箱服务(250G+15个域名)
4
Day1:Project Kick-off Meeting Content(100 Days of AI Programming)
5
Using AI to build a recruitment website plan(100 Days of AI Programming)
6
Augment Agent:自动生成代码的未来
7
使用 acme.sh 自动更新 SSL 证书的指南
8
使用Cloudflare加速网站的具体操作步骤
9
如何开通google Free Tier长期免费云服务器(1C/1G)
10
如何获取oracle cloud永久免费的vps(4C/24G)?
网站信息
文章总数:82,771 篇
文件总数:284,424 个
标签总数:2,447 个
分类总数:86 个
留言数量:2,575 条
在线人数:686 人
运行天数:4,648天
最后更新:2025年07月19日07点
×
输入密码查看文章详情
×
搜索文章
搜索
热门搜索:
Java
Springboot
Linux
Maven
Bootstrap
阿里云
×
评论信息框
可以通过QQ号实时获取昵称和头像
QQ
昵称
邮箱
网址
提交评论
×
山无棱江水为竭,冬雷震震夏雨雪,才敢请君舍
支付宝
微信
转账时请备注“
博客赞助
”
Loading...