首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
谈谈专题
谈谈我的8年编程自学辛酸史
2008年:第一个脚印 2008年的一个周末,我一如既往读着最爱的《电脑迷》和《电脑爱好者》,不经意间看见一篇文章,教读者如何自己制作一个exe来说生日快乐,于是,或许是我一生的道路就从这里开始了。 当时已经痴迷于电脑软件,但是身为初中生的我并没有机会玩电脑,只能苦苦地看着杂志记录好玩的软件,并没有想过真的要自己去制作软件。直到去新华书店买辅导书的一次契机,我看见了一本《Java语言教程》
阅读更多...
作为面试官的一点点感悟,谈谈技术人的成长之路
因为工作上的原因,做过几次面试官,面试的同学有应届生,也有工作3-5年的老技术人。最近也频繁作为面试官帮助筛选候选人,中间有很多值得深思的东西,我记录了下来分享给大家。 以下观点仅为个人观点,不代表任何公司的立场。 01 面试不是简单的你问我答 一般来讲,作为面试官和候选人进行沟通的第一个问题是一般是自我介绍,整个自我介绍的情况应该控制在2分钟左右,阐述自己的教育背景,项目经历
阅读更多...
谈谈经典限流方法—漏桶、令牌桶与Guava RateLimiter的实现
大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 高并发的业务系统经常要接受大流量的考验,为了保证系统的响应度和稳定性,往往都需要对有风险的接口实施限流(rate limiting),更高大上的说法则是“流量整形”(traffic shaping)。限流的思想最初来源于计算机网络,有两种经典的方法:漏桶和令牌桶。本文先来稍微研究一下它们。
阅读更多...
uni-app 扫码优化:谈谈我是如何提升安卓 App 扫码准确率的
一. 前言 之前的一个项目遭到用户吐槽:“你们这个 App 扫码的正确率太低了,尤其是安卓的设备。经常性的扫码扫不出来,就算是扫出来了,也是错误的结果!” 由于之前是扫描二维码的需求,所以没有对扫描条形码做严格的测试,客户提示说是条形码扫描效率低下。随即,我用自己的手机测试了一下,在安卓手机上确实有这样的问题,扫码准确率确实是低,尤其是条形码,扫码效率慢且不准确。扫描二维码的的效率还算可以
阅读更多...
谈谈singelton单例模式
单例模式是一种常用设计模式。该类只有一个实例,而且该类自行创建实例。 很多时候,服务器都只需要一个全局对象,这样方便协调系统的整体行为。比如系统的配置文件,系统只需要一个单例对象读取加载,其他对象只需要通过该单例对象获取配置信息。这样方便在复杂模式下对系统配置的管理。 java中常用单例模式: public class Singleton(
阅读更多...
谈谈函数返回值为什么不能重载
一、函数的定义: 函数将有效的输入值变换为唯一的输出值,同一输入总是对应同一输出。 计算机本质是对抽象数学公式的具体实现,并以此具体实现来解决现实生活中的实际问题。 注:wiki百科对 “函数” 的定义如图,图比较大,请点击打开详情,左右拖动查看 全部内容。 二、悖论 反过来设想一下,如果返回值的类型 能用来 重载,那么对于相同的输入值,程序怎么决定
阅读更多...
谈谈分组:sql的group by+聚集函数 和 python的groupby+agg
直接举例子+分析例子+总结来说,我先给几个表: 学生表:student(学号,姓名,年龄,院系); 课程表:course(课程号,课程名,学分); 学生选课表:sc(学号,课程号,分数); 啥时候用分组呢? 我由简至深来谈。 1、比如让我们查询各个课程号及相应的选课人数。 首先定位到sc表上,“各个”很明显就是要按课程分组,group by出场了,分组后对每组去统计选课人数,聚集函数出场了。
阅读更多...
谈谈你对 Java 平台的理解?
谈谈你对 Java 平台的理解? 先谈谈我的理解: 一次编译,永久执行。依赖于jre的运行环境,jdk提供核心类库,java源代码经过javac编译为.class文件,.class文件经过JVM解析或编译运行,无需过多关心不同操作系统的差异性。 典型回答 Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run any
阅读更多...
谈谈最近一段时间的工作
被原来的公司派出去做一个天津的项目,一个多月了,平均每天加班加到10点左右,周末都不休息,感觉好累啊。 最累的是心了,原来辛苦付出的四个月不是很被认可, 我是实习生,但是我不想一直做实习生, 这个月收获很多,把自己以前不敢尝试的后台狠狠的做了一次, 希望以后的日子自己能够越来越厉害! 近期打算辞职,过年以后向着北京出发!
阅读更多...
谈谈nvm、nrm、pnpm的理解
谈一谈目前用的最多的也是主流的工具nvm、nrm以及pnpm的理解。 nvm 一般我们在公司开发,公司一般可能会有多个项目,可能有新项目也有老项目,不同的前端工程可能依赖的node版本不一样。这个时候就需要我们拥有多个node版本来开发不同的工程,如何安装多个node版本并可以随意的切换我们的node开发环境,这个时候nvm就能完美的发挥出自己的优势。nvm版本过低是不兼容vue3的项目的,我
阅读更多...
谈谈如何研究指针 怎么克服指针带来的困难
刚刚写完指针的博客,总是感觉没有完全把我的所有想法讲给大家。 第一,C++的指针对于所有编程人员都是难点,不会或是经常出错是正常的,你的老师也会经常出错。 第二,指针是C++特别的,也是最重要的,如果要学习C++就必须要学指针,如果学C++而不学指针的话,就像学油画不知道色彩一样。 第三,指针可能是所有C++实际编程中最常出现的问题,到时候,你就知道什么就“内存耗尽”
阅读更多...
【Python】谈谈Python多线程
本文环境: Python 2.7.10 (CPython)。 文章目录 一、GIL简介二、Python多线程是否鸡肋1. 为什么需要多线程呢?2. 计算密集型 vs. IO密集型计算密集型验证例子 3.小结 三、锁与线程安全四、总结参考资料: 因为GIL的存在,Python多线程是否鸡肋?既然已有GIL,是否Python编程不需要关注线程安全的问题?不需要使用锁?为什么P
阅读更多...
谈谈Grunt,NPM,Gulp
随着前端工程化的趋势,产生了越来越多的构建工具,而其中比较优秀的就是grunt,npm,gulp,今天我来说说这三者间的区别以及他们的优缺点. 相信一般前端开发者选择构建工具的时候,更多的是看个人习惯以及团队的情况.相信这三个构建工具总有一个会适合你的,我们先来看看grunt. Grunt grunt是目前社区最成熟,插件支持最多的一个构建工具,不过它的配置项之多也常常被人诟病.下面
阅读更多...
【设计模式 7】从公司的目前框架和API Gateway,谈谈对外观模式的理解
我,第一次用到外观模式,应该是3年多以前。那时候是做一个收费系统,在当时的U层和B层之间,加了一层Facade。当时,在一些复杂的业务逻辑处理时,感受到了加入外观层的好处,但对于一些简单的(我指的是,当时很多facade里面的方法都只是简单的返回了B层的方法执行结果)业务,总感觉是没有必要了。那么,外观模式,究竟可以发挥出多大的威力呢???? 一、目前的框架 后来,在项目的开发中,用到的设计模
阅读更多...
请你谈谈:从宏任务微任务的角度谈谈js代码的执行顺序
JavaScript(JS)在浏览器环境中确实是单线程的,这主要出于以下几个原因: JavaScript 的主要作用之一是处理用户的交互,如点击按钮、填写表单等。如果JavaScript是多线程的,那么在处理这些事件时可能会出现竞态条件(race conditions),导致用户体验的不可预测性和不一致性。例如,如果两个线程同时尝试修改同一个DOM元素,那么最终的结果将是不可预测的。 我们可以
阅读更多...
请你谈谈:async与await是如何控制异步操作的执行顺序
async/await 是 JavaScript 中用于处理异步操作的一种语法糖,它使得异步代码的编写、阅读和维护变得更加容易和直观。async 和 await 关键字是在 ES2017(ES8)中引入的,旨在简化基于 Promise 的异步操作。 1 async async 是一个函数声明的前缀,用于指定一个函数是异步的(promise.then等回调)。这意味着函数内部可能包含异步操作,如
阅读更多...
谈谈hash算法
哈希算法的设计是一个需要考虑许多因素的复杂问题。然而对于某些要求不高的场景,我们也能设计一些简 单的哈希算法。 加法哈希:对输入的每个字符的 ASCII 码进行相加,将得到的总和作为哈希值。 乘法哈希:利用了乘法的不相关性,每轮乘以一个常数,将各个字符的 ASCII 码累积到哈希值中。 异或哈希:将输入数据的每个元素通过异或操作累积到一个哈希值中。 **旋转哈希 **:将每个字符的 ASCII
阅读更多...
谈谈组件化-从源码到理解
这几天一直在组件化架构方面的知识点,下面主要分析一下“得到”的组件化方案和Arouter实现组件间路由的功能。 组件化涉及到的知识点 得到的方案 最近一会在探索组件化的实现方案,得到是在每个组件的build.gradle给annotationProcessorOptions设置host参数,这个参数就是我们当前组件的Group,apt拿到这个Group名称拼接需要生成的路由表类的全路径(不同
阅读更多...
谈谈大型网站架构
本次分享大纲如下 大型网站的特点大型网站架构目标大型网站架构模式高性能架构高可用架构可伸缩架构可扩展架构安全架构敏捷架构大型架构举例 一、大型网站的特点 用户多,分布广泛大流量,高并发海量数据,服务高可用安全环境恶劣,易受网络攻击功能多,变更快,频繁发布从小到大,渐进发展以用户为中心免费服务,付费体验 二、大型网站架构目标 高性能:提供快速的访问体验。高可用:网站服务一直可以
阅读更多...
面试官:谈谈你对javascript事件循环机制的理解
掌握JavaScript的事件循环机制是面试中不可或缺的一部分。事件循环(Event Loop)是JavaScript异步编程的核心,理解它对于编写高效、可维护的代码至关重要。本文将深入探讨JS的事件循环机制,帮助你更好地准备面试。 1. JavaScript运行时 JavaScript是单线程语言,这意味着它同时只能执行一个任务。为了处理异步操作,如网络请求、文件读写等,JavaScript使
阅读更多...
源码分析 --- 谈谈Java中的线程安全集合
首先集合中线程安全的有如下: Vector Stack HashTable Enumeration 一、为什么Vector线程安全? Vector的所有操作都被同步了,既然被同步了,多线程就不可能同时访问Vector中的数据,只能一个一个地方问,所以不会出现数据混乱的情况,线程是安全的。 下图是Vector源码的部分,其中Vector is synchronized,
阅读更多...
谈谈JS中的sort方法
在js中我们可以对数组元素使用sort方法进行排序,比如下面这个程序: var values = [0,1,56,23,34,3];values.sort();alert(values); 解释:上面程序定义了一个名为values的数组,然后对values进行了sort方法调用,然后alert一下数组的内容,所以该内容是对数组进行了默认的升序排序,有的人可能会对这个结果产生误解,先来说一下这个
阅读更多...
谈谈分享
训练有素、技能精干的军人是打胜战的必要条件。对于公司同理,必要的分享和培训机制是非常有益的。 为什么需要分享 公司 培育技术干练的队伍,不断提高团队的实力下限。 开放、协作的团队文化 提升团队的凝聚力 打造公司品牌能力建设 个人 学习新知识,完善自我技术体系,扩展点、线、面、网格状思维 提升个人沟通能力,表达能力,PPT架构师能力 提升自身软技能,影响力,打造个人品牌
阅读更多...
shiro 再次通过源码谈谈登录的流程,之前理解的不是很清楚!
PrincipalCollection这个可以理解为当事人的信息!昨天在授权信息检查的时候,一直在传递这个信息,当时不是很理解,所以今天继续说说这个设计的意思到底是什么回事。以及登录流程之前疏忽的一些重要的信息,都统统的补齐。 subject.login(token);这个是今天的主要的角色,刚刚断点跟踪了一会才理解了到时是在做什么。 protected void login(String c
阅读更多...
停用多说插件,谈谈多说的利于弊
昨天已经更换了一次主题,不过在做一些修改的时候发现不是很方便,所以在今天又更换了一个备用的主题,顺便把多说这个插件也禁用了。 国内类似多说的评论插件还有友言、灯鹭、评论啦。不可否认的是这些插件做的也很诱人,都提供了漂亮的外观,丰富的自定义样式,还支持多种社会媒体账号,对数据的分析与统计。 不过也有让Joe头疼的地方,就拿多说来说,先说它的加载速度,不知道别的网站怎么样,就Joe用多说这段
阅读更多...
谈谈innodb和myisam的区别
MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。 以下是一
阅读更多...