![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 87
「已注销」
积极向上
展开
-
程序员必知:时间复杂度与空间复杂度的计算!
前言算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。算法是大厂、外企面试的必备项,也是每个高级程序员的必备技能。针对同一问题,可以有很多种算法来解决,但不同的算法在效率和占用存储空间上的区别可能会很大。那么,通过什么指标来衡量算法的优劣呢?其中,上面提到的效率可以用算法的时间复杂度来描述,而所占用的存储空间可以用算法的空间复杂度来描述。时间复杂度:用于评估执行程序所消耗的时间,可以估算出程序对处理器的使用程度。空间复杂度:用于评估执行程序所占用的内存空间,可以估算出程序对计算机内原创 2021-01-13 17:42:37 · 736 阅读 · 0 评论 -
不用看就能知道的:JAVA 中AQS原理!
前言:在面试中被问到并发知识的时候,大多都会被问到“请你说一下自己对于 AQS 原理的理解”。下面给大家一个示例供大家参考,面试不是背题,大家一定要加入自己的思想,即使加入不了自己的思想也要保证自己能够通俗的讲出来而不是背出来。下面大部分内容其实在 AQS 类注释上已经给出了,不过是英语看着比较吃力一点,感兴趣的话可以看看源码。1. AQS 原理概览AQS 核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那原创 2021-01-07 17:58:04 · 366 阅读 · 3 评论 -
JDBC的链接形式、操作执行以及脚本范文
JDBC-ODBC桥连接形式:利用微软提供的ODBC进行数据库链接,然后利用JDBC访问ODBC的函数库,实现数据操作流程:程序>JDBC>ODBC>数据库;这样操作性能差,但支持度最高,不需要配置任何第三方驱动程序JDBC连接形式:利用不同数据库的生产商提供的JDBC驱动程序进行数据库操作流程:程序>JDBC>数据库;性能很好;JDBC网络连接形式:流程:程序>JDBC连接协议>数据库,实际使用中是最多的;JDBC协议连接:使用特定数据库生产厂商提原创 2021-01-04 11:21:06 · 213 阅读 · 6 评论 -
看完这篇,保证不后悔:分布式系统的CAP理论、CAP如何三选二
引言CAP 理论,相信很多人都听过,它是指:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。为什么要理解 CAP 理论?我能说出很多理由来。如果是在职场上,也许最合适的理由是,当领导给出的任务不靠谱时,我们可以依据 CAP 去否决它。比如,有这么一个任务,给你定了三大目标:既要提升系统的可用性又要保证数据的实时可见还有提升系统的容错能力看到“既要、又要、还要”,是不是想到了原创 2021-01-03 22:15:52 · 379 阅读 · 1 评论 -
大厂面试题之—redis面试专题,值得收藏!
reids面试专题1、什么是 Redis?简述它的优缺点?2、Redis 与 memcached 相比有哪些优势?3、Redis 支持哪几种数据类型?4、Redis 主要消耗什么物理资源?5、Redis 有哪几种数据淘汰策略?6、Redis 官方为什么不提供 Windows 版本?7、一个字符串类型的值能存储最大容量是多少?8、为什么 Redis 需要把所有数据放到内存中?9、Redis 集群方案应该怎么做?都有哪些方案?10、Redis 集群方案什么情况下会导致整个集群不可用?11、MySQL 里有 20原创 2020-12-31 14:09:32 · 118 阅读 · 2 评论 -
震惊!使用spring cache让我的接口性能瞬间提升了
前言笔者之前做商城项目时,做过商城首页的商品分类功能。当时考虑分类是放在商城首页,以后流量大,而且不经常变动,为了提升首页访问速度,我考虑使用缓存。对于java开发而言,首先的缓存当然是redis。优化前系统流程图:我们从图中可以看到,分类功能分为生成分类数据 和 获取分类数据两个流程,生成分类数据流程是有个JOB每隔5分钟执行一次,从mysql中获取分类数据封装成首页需要展示的分类数据结构,然后保存到redis中。获取分类数据流程是商城首页调用分类接口,接口先从redis中获取数据,如果没有获取到再原创 2020-12-28 22:31:45 · 304 阅读 · 0 评论 -
这个可能你不知道!基于NodeJS的高性能分布式游戏日志系统
大纲:前言日志系统架构是怎样的游戏分析有什么内容为什么要自己架一个系统FEN架构 架构图 Fluentd ElasticSearch NodeJS pusher logger analyser 用户界面总结前言最近我司需要做一个统一的游戏日志系统,要求有一定的通用性,能应对公司所有的游戏业务。接下来分享一下这次日志系统的项目经验。日志系统架构是怎样的目前流行的日志系统为ELK,由Beats、Logstash、Elasticsearch、Kibana等组件共同实现,但万变不离其宗,一个原创 2020-12-23 21:38:57 · 320 阅读 · 0 评论 -
连夜让你疯狂!怎么从码农做到架构师?
最近在网上看到这么一篇文章,有好几个地方都发了不知道哪里是原文,但是总体来讲这篇看完对于我来说还是有很多收获的,特意分享出来,大家可以看看如果,欢迎评论区留言探讨工作了挺久,发现有个挺有意思的现象,从程序员、高级程序员,到现在挂着架构师、专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了。这些疑问有些来自于跟小伙伴的交流,有些是我的自问自答,有些到现在也想不清楚,这篇文章就来写一写这些问题。如何更高效的学习?很多新人程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后原创 2020-12-22 21:22:45 · 170 阅读 · 0 评论 -
关于多线程 / 高并发的致富之路:这个对你有点帮助!
1. stop() 和 suspend() 方法为何不推荐使用?反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend() 方法容易发生死锁。调用 suspend() 的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被 “挂起” 的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁原创 2020-12-18 15:43:52 · 94 阅读 · 4 评论